hawihoney Posted November 23, 2021 Share Posted November 23, 2021 (edited) Die Suche nach einem Docker Container für FFMPEG bringt immer nur Spezialinstallationen von FFMPEG (Verzeichnisüberwachung, etc.). Was mir fehlt ist eine FFMPEG Installation in einem Container, deren Tools man dann von außerhalb aufrufen und nutzen könnte. Etwas Ähnliches mache ich schon mit diversen Python Scripts und dem MKVToolNix Container: mkvinfo = "docker exec MKVToolNix /usr/bin/mkvinfo" mkvpropedit = "docker exec MKVToolNix /usr/bin/mkvpropedit" filename = "/mnt/..." title_new = "Bla bla" info = f' --edit info --set "title={title_new}"' command = f'{mkvpropedit} "{filename}"{info}' result = os.popen(command).read() So etwas suche ich nun für FFMPEG. Dann könnte ich das machen: ffmpeg = "docker exec ffmpeg /usr/bin/ffmpeg" filename_VC1 = "/mnt/..." filename_X264 = "/mnt/..." options = f' -i "{filename_VC1}" -map 0 -scodec copy -acodec copy -vcodec libx264 "{filename_X264}"' command = f'{ffmpeg}{options}' result = os.popen(command).read() Vielen Dank. Edited November 23, 2021 by hawihoney Quote Link to comment
Ford Prefect Posted November 23, 2021 Share Posted November 23, 2021 Hmmm... -> https://medium.com/coconut-stories/using-ffmpeg-with-docker-94523547f35c ?? Quote Link to comment
hawihoney Posted November 23, 2021 Author Share Posted November 23, 2021 19 minutes ago, Ford Prefect said: Hmmm Vielen Dank. Über den bin ich ebenfalls gestolpert. Der liegt nur ein paar (!!!) Versionen zurück: 3.0.2 vs. 4.4 (April 2021). Ehrlich gesagt habe ich auch nicht ganz verstanden wie ich damit umgehen soll. Z.B. wohin wird das installiert - mir fehlt der appdata Pfad: Quote Link to comment
Ford Prefect Posted November 23, 2021 Share Posted November 23, 2021 Ja, OK...ich habe den auch nur ge-googled Klar feht dem der appdata Pfad, denn er weiss ja nichts von unraid. Wenn Du da etwas über die Lebenszeit eines Containers hinweg persistieren möchtest, musst Du die Pfade einfach selbt hinzufügen. In dem Link steht ja kurz, wie es geht...der Container ist sozusagen "stageless", zieht den Input via "-i" parameter und schreibt nach stdout: How to use FFmpeg with Docker If you don’t have Docker installed yet, follow this guide. Once Docker is properly setup, it is pretty straightforward to use the FFmpeg image. Instead of using the ffmpeg command line, you call docker to run the opencoconut/ffmpeg image in a container. That’s it! $ docker run opencoconut/ffmpeg -i http://files.coconut.co.s3.amazonaws.com/test.mp4 -f webm -c:v libvpx -c:a libvorbis - > test.webm Quote Link to comment
hawihoney Posted November 23, 2021 Author Share Posted November 23, 2021 12 minutes ago, Ford Prefect said: docker run opencoconut/ffmpeg Zieht der dann bei jedem Aufruf die 100 MB vom Docker Hub oder liegt das dann irgendwo (wo?) in meinem Docker Subsystem. Meine Skripte werden ffmpeg ein paar tausend mal aufrufen. Das sollte dann schon persistent bei mir liegen. Bin für jeden Einblick dankbar. Quote Link to comment
Ford Prefect Posted November 23, 2021 Share Posted November 23, 2021 (edited) ...wenn das Image schon einmal gezogen wurde, dann eigentlich nicht...dann nimmt Docker standardmässig das lokale....hast Du den schon zweimal aufgerufen? Edit: nö, er nimmt das lokale Image. Edit2: mach einfach mal in der Konsole: docker pull opencoconut/ffmpeg:latest alias ffmpeg='docker run -v=`pwd`:/tmp/ffmpeg opencoconut/ffmpeg' ffmpeg -h -> ...leg eine Datei unter /tmp/ffpeg/<myfile.mp4> ab. ffmpeg -i <myfile.mp4> out.webm Edit3: OK, dieser *ist* alt.....vielleicht doch mal einen Neuen suchen Edit4: der sieht noi aus: https://hub.docker.com/r/collelog/ffmpeg Edited November 23, 2021 by Ford Prefect Quote Link to comment
ich777 Posted November 23, 2021 Share Posted November 23, 2021 5 hours ago, hawihoney said: FFMPEG Gibt's das nicht im NerdPack? Wäre es nicht für dich einfacher es direkt auf unRAID zu verwenden, brauchst du HW unterstützung von zB Intel oder Nvidia? Quote Link to comment
hawihoney Posted November 23, 2021 Author Share Posted November 23, 2021 10 minutes ago, ich777 said: Gibt's das nicht im NerdPack? Leider nein. 11 minutes ago, ich777 said: Wäre es nicht für dich einfacher es direkt auf unRAID zu verwenden, brauchst du HW unterstützung von zB Intel oder Nvidia? HW Unterstützung benötige ich nicht. Im Docker Container wäre es auf Grund der vielen Abhängigkeiten bestimmt sicherer als über das Nerd-Pack. Quote Link to comment
ich777 Posted November 23, 2021 Share Posted November 23, 2021 11 minutes ago, hawihoney said: HW Unterstützung benötige ich nicht. Im Docker Container wäre es auf Grund der vielen Abhängigkeiten bestimmt sicherer als über das Nerd-Pack. Also ich könnte evtl. eine version mit static libraries bauen die keine alle Abhängigkeiten hat wenn du interesse hast... aber das müsste ich mir ansehen, bin mir nicht mehr ganz sicher ob ich das so schnell hin bekomme... Quote Link to comment
ich777 Posted November 23, 2021 Share Posted November 23, 2021 38 minutes ago, hawihoney said: Leider nein. Grad gefunden, kannst von hier nehmen: Klick cd ~ wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz tar -xvf ffmpeg-release-amd64-static.tar.xz cd ffmpeg-release-amd64-static Wenn du das in einem unRAID terminal ausführst wird FFMPEG static runter geladen in dein root home Verzeichnis und du kannst dann damit machen was immer du willst. 3 Quote Link to comment
alturismo Posted November 23, 2021 Share Posted November 23, 2021 7 hours ago, hawihoney said: Was mir fehlt ist eine FFMPEG Installation in einem Container den hab ich als genommen wo ich noch damit experimentiert hatte (kannst übrigens mal schauen in deinen Media Dockern, Bsp. TVHeadend hat ffmpeg auch bereits drin) https://hub.docker.com/r/jrottenberg/ffmpeg/ 1 Quote Link to comment
hawihoney Posted November 23, 2021 Author Share Posted November 23, 2021 31 minutes ago, alturismo said: kannst übrigens mal schauen in deinen Media Dockern Angeblich hat der Plex Server upstream ffmpeg drin, ich finde es aber nicht. Die durch Plex erweiterte SQLite Version habe ich gefunden ffmpeg aber noch nicht. find bleibt in dem gigantischen Plex System immer hängen. Quote Link to comment
hawihoney Posted November 23, 2021 Author Share Posted November 23, 2021 Hab mich mal ran getraut. Nach jedem Aufruf von "docker run jrottenberg/ffmpeg:4.4-alpine" erhalte ich einen neuen gestoppten Container auf der Container Übersicht angezeigt. Die haben dann so lustige Namen wie "gifted bassi" oder "distracted-wright". Ganz seltsam: Quote Link to comment
mgutt Posted November 24, 2021 Share Posted November 24, 2021 Wechsel in das Verzeichnis mit der input.mkv und führe das aus: docker run --device /dev/dri:/dev/dri -v $(pwd):$(pwd) -w $(pwd) jrottenberg/ffmpeg:vaapi -y -hwaccel vaapi -hwaccel_output_format vaapi -i input.mkv -vcodec vc1_vaapi -acodec copy -b:v 10000K -c:v h264_vaapi output.mp4 Oder ersetze $(pwd) gegen absolute Pfade. Der Container stoppt nach einer Konvertierung. Das ist normal. Es gibt viele Container, die man nur pro Job startet. Ist nur in unRAID eher selten anzutreffen. 2 Quote Link to comment
alturismo Posted November 24, 2021 Share Posted November 24, 2021 7 hours ago, hawihoney said: Angeblich hat der Plex Server upstream ffmpeg drin ja, aber ich meine immer noch eine custom build ... daher nicht zu greifen wenn man jetzt nicht weiß wie die das intern benennen ansonsten sehe ich jetzt in deiner Übersicht keinen Docker wo ffmpeg mit drin ist, mkv's haben das meine ich nicht mit drin. Quote Link to comment
Ford Prefect Posted November 24, 2021 Share Posted November 24, 2021 13 hours ago, mgutt said: Der Container stoppt nach einer Konvertierung. Das ist normal. Es gibt viele Container, die man nur pro Job startet. Ist nur in unRAID eher selten anzutreffen. ...da würde ein beherztes "-rm" in der Aufrufzeile den Container wieder entfernen, wenn er fertig ist. Siehe auch oben meinen Alias um das Kommando in ein einfaches "ffmpeg .." umzusetzen. Quote Link to comment
JoergHH Posted November 26, 2021 Share Posted November 26, 2021 On 11/23/2021 at 9:29 PM, ich777 said: Grad gefunden, kannst von hier nehmen: Klick cd ~ wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz tar -xvf ffmpeg-release-amd64-static.tar.xz cd ffmpeg-release-amd64-static Wenn du das in einem unRAID terminal ausführst wird FFMPEG static runter geladen in dein root home Verzeichnis und du kannst dann damit machen was immer du willst. Hmmm, das ist dann aber nicht Reboot persistent, oder? Quote Link to comment
ich777 Posted November 26, 2021 Share Posted November 26, 2021 38 minutes ago, JoergHH said: Hmmm, das ist dann aber nicht Reboot persistent, oder? Nein, aber du kannst es auf einen share legen damit es gespeichert bleibt und persistent ist und es nach /usr/bin linken (wahlweise auch mit Befehl im go file) und dann kannst du ffmpeg direkt über das Terminal oder von einem skript aufrufen. Quote Link to comment
darkside40 Posted January 9, 2023 Share Posted January 9, 2023 On 11/23/2021 at 9:29 PM, ich777 said: Grad gefunden, kannst von hier nehmen: Klick cd ~ wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz tar -xvf ffmpeg-release-amd64-static.tar.xz cd ffmpeg-release-amd64-static Wenn du das in einem unRAID terminal ausführst wird FFMPEG static runter geladen in dein root home Verzeichnis und du kannst dann damit machen was immer du willst. Der Tipp war Gold wert. Brauche ffmpeg nur ab und zu um 5.1 Tonspuren etc runterzurechnen etc. Dafür brauche ich keine große Software wie unmanic etc. Quote Link to comment
ich777 Posted January 9, 2023 Share Posted January 9, 2023 38 minutes ago, darkside40 said: Der Tipp war Gold wert. Brauche ffmpeg nur ab und zu um 5.1 Tonspuren etc runterzurechnen etc. Dafür brauche ich keine große Software wie unmanic etc. Aber bitte beachte das Unraid kein Common Purpose Server ist und es eigentlich so gedacht ist das du alles in Docker Containern oder VMs ausführst. Wenn du zB Emby/Jellyfin am laufen hast, hättest du zB ein ffmpeg das du verwenden könntest und müsstest nur dein skript in dem Container ausführen. Deshalb würd ich dir diesen Tip hier ans Herz legen: Vergiss nicht, auf Unraid wird alles als root ausgeführt und das Terminal hat Zugriff auf alles also ist auch die Wahrscheinlichkeit groß das du dir was zerschießt wenn du mal auch nur einen kleinen Fehler machst. Quote Link to comment
darkside40 Posted January 9, 2023 Share Posted January 9, 2023 Ich weiss, ich nutze unRaid seit 2011. Aber alles in Docker oder VM's zu packen ist auch nicht immer Sinn der Sache, da die zusätzliche Abstraktionsschicht es nicht einfacher macht. Wobei man auch sagen muss das unRaid ohne Docker heutzutage wahrscheinlich in der Form garnicht mehr existieren würde. Wenn ich noch daran denke was für ein Akt es war unRaid in Version 4 oder 5 um ein paar grundlegende Linux Programme zu erweitern wird mir heute schlecht. Ohne den super Docker Support würde ich unRaid heute wahrscheinlich garnicht mehr nutzen. Quote Link to comment
ich777 Posted January 9, 2023 Share Posted January 9, 2023 42 minutes ago, darkside40 said: Ich weiss, ich nutze unRaid seit 2011. Aber alles in Docker oder VM's zu packen ist auch nicht immer Sinn der Sache, da die zusätzliche Abstraktionsschicht es nicht einfacher macht. Also es gibt doch eigene FFMPEG container und das du einen Pfad da rein mountest ist auch nicht wirklich schwer, gibt es nicht mittlerweile einen FFMPEG container in der CA App? 42 minutes ago, darkside40 said: Wenn ich noch daran denke was für ein Akt es war unRaid in Version 4 oder 5 um ein paar grundlegende Linux Programme zu erweitern wird mir heute schlecht. Naja, sieh dir auch mal un-get an... ...aber das hab ich nur für Fortgeschrittene User gemacht die wissen was sie tuhen und nicht einfach alles blind installieren, ist ein apt-get Style Paket Manager (ohne Abhängigkeitscheck) der auch andere Slackware repositories einbinden kann. Quote Link to comment
mgutt Posted January 9, 2023 Share Posted January 9, 2023 6 hours ago, darkside40 said: da die zusätzliche Abstraktionsschicht es nicht einfacher macht. Docker Container haben keine extra Schicht. Nur ein eingeschränktes Rechtemodell. Alle Prozesse laufen direkt auf dem Host. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.