Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

FFMPEG Docker Container?

Featured Replies

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 by hawihoney

  • Author
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:

 

image.thumb.png.6cc58efba7d46cb1bb1c5fd43f9e10d6.png

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

 

  • Author
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.

 

...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:

 

  1. docker pull opencoconut/ffmpeg:latest
  2. alias ffmpeg='docker run -v=`pwd`:/tmp/ffmpeg opencoconut/ffmpeg'
  3. ffmpeg -h
  4. -> ...leg eine Datei unter /tmp/ffpeg/<myfile.mp4> ab.
  5. 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 by Ford Prefect

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?

  • Author
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.

 

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... :D

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.

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/

 

  • Author
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.

 

  • Author

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:

 

 

Screenshot_20211123-232220.png

  • Community Expert

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.

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.

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.

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?

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.

  • 1 year later...
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.

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.

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.

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.

  • Community Expert
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.

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.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.