Jump to content

AMD GPU Transcoding für Jellyfin/Emby


themarv

Recommended Posts

Moin,

Ich betreibe daheim einen Unraid- Server mit einem Ryzen 3200G. Darauf läuft ein Docker von Jellyfin. Beim Streamen von Medien muss der Ryzen ganz schön arbeiten, deshalb hab ich mich etwas mit dem Thema GPU Encoding auseinander gesetzt und bin auf folgenden Eintrag auf Reddit gestoßen: AMD APU Transcoding Results

Das sieht ja ganz nett aus. Leider sind für mich Docker eine Art Neuland(Ich hatte vorher einen Synology Server).

Deshalb einfach die Frage: Gibt es eine Möglichkeit mit einer AMD iGPU auf Unraid Transcoding im Jellyfindocker zu aktivieren? Die iGPU kann laut Reddit VAAPI, was schon hilfreich wäre: GPU Transcoding with iGPU

Gibt es dafür vielleicht eine Anleitung? Die vielleicht nicht so viele Vorkenntnisse voraus setzt?

 

Gruß Marv. :)

Link to comment
12 minutes ago, themarv said:

Deshalb einfach die Frage: Gibt es eine Möglichkeit mit einer AMD iGPU auf Unraid Transcoding im Jellyfindocker zu aktivieren? Die iGPU kann laut Reddit VAAPI, was schon hilfreich wäre: GPU Transcoding with iGPU

Momentan nicht, ich versuche im moment irgendwo ein günstiges Ryzen system zu ergattern oder eins für Testzwecke zu bekommen nur leider sieht das aufgrund der Hardwareverfügbarkeit im moment nicht so rosig aus da ich ein Paket schnüren kann.

 

Soweit ich weiß wäre es schon möglich nur brauchst du entweder den OpenSource oder den ClosedSource Treiber und OpenCL (korrigiert mich wenn ich falsch liege).

 

Da ich aber keine passende Hardware habe kann ich leider kein Plugin oder besser gesagt kein Paket schnüren damit man die VA-API benutzen kann/könnte und das dann in der CA App anbieten so wie Intel-GPU-TOP oder Nvidia-Driver (wenn sich jemand anders findet der das macht oder mir erklären kann was man dazu alles genau braucht gerne... :D ).

Würd mich gern damit auseinandersetzen, meines Wissenstandes wäre es möglich.

  • Like 1
Link to comment

Das sollte mit Emby und Jellyfin, aber noch nicht mit Plex gehen.

 

Hier speziell Emby Docker und Unraid:

https://forums.unraid.net/topic/92603-emby-in-docker-vaapi-not-working/

 

Was mir da auffällt, dass die iGPU von Unraid ausgeschlossen wird (igfx_off). Dadurch wird die iGPU wohl 1:1 an den Emby Container durchgeschliffen und dieser installiert dann den iGPU Treiber (statt Unraid). Da könnte dann evtl auch der AMD Treiber installiert werden?!

 

Eventuell muss man die Mesa Treiber innerhalb vom Container nachinstallieren?!

https://www.reddit.com/r/jellyfin/comments/i7zan3/getting_vaapi_to_work_inside_docker/

 

25 minutes ago, themarv said:

Die vielleicht nicht so viele Vorkenntnisse voraus setzt?

Ja, kauf dir ein Intel System und nutze Plex. ^^

 

Andere Option: Nvidia GPU installieren und die für das Transcoding nutzen.

 

 

Link to comment
4 minutes ago, mgutt said:

Was mir da auffällt, dass die iGPU von Unraid ausgeschlossen wird (igfx_off). Dadurch wird die iGPU wohl 1:1 an den Emby Container durchgeschliffen und dieser installiert dann den iGPU Treiber (statt Unraid).

Soweit ich weiß sollte es mit dem offiziellen Emby bzw Jellyfin Container OOB funktionieren solange am host die Treiber installiert sind.

 

EDIT: Im verlinkten thread geht es aber um Intel oder?

Link to comment
11 minutes ago, mgutt said:

Gibt es denn die Mesa 3D Treiber für Slackware?

Schätze schon und wenn nicht kompilier ich sie einfach, mach das ja schon bei meinen DVB-Treibern, hpsahba,... auch so für die unterschiedlichen Kernel versionen.

Aber soweit ich weiß gibt's die Mesa Treiber für Slackware, ich hab wie gesagt keine Hardware sonst hätt ich das schon längst getestet. 😃

Link to comment
3 minutes ago, mgutt said:

Ja. Version 11.2.2:

http://ftp.slackware.com/pub/slackware/slackware64-14.2/slackware64/x/

 

Und Version 20.3.4:

http://ftp.slackware.com/pub/slackware/slackware64-current/slackware64/x/

 

Sollte demnach sogar in Slackware / Unraid enthalten sein?!

Die Frage ist nur ob dazu noch irgendwas gebraucht wird...

Es muss auf jedenfall die modprobe für die in tree Kernel Treiber gemacht werden und bestenfalls vorher Mesa vorher installiert werden ob dann aber noch was dazu erforderlich ist weiß ich leider nicht.

 

Sollte dann gleich funktionieren wie bei Intel das man '/dev/dri' durchreicht und in Emby/Jellyfin VA-API wählt.

 

Ich würd einfach gerne ein Paket dafür schnüren und es in der CA App anbieten das dieses Thema mal vom Tisch ist weil man es mittlerweile ja doch öfter hier im Forum liest das Hardwarebeschleunigung für Emby und Jellyfin gewünscht wird.

 

Momentan bekomm ich nicht mal ne günstige gebrauchte AMD Karte, ist alles momentan ein wenig verrückt... :P

Link to comment
6 hours ago, ich777 said:

Die Frage ist nur ob dazu noch irgendwas gebraucht wird...

 

Ich wollte mal herausfinden wie viel VRAM sich die Intel iGPU genehmigt:

glxinfo | egrep -i 'device|memory'

 

Dafür braucht es wohl Mesa, aber ich habs nicht zum Laufen gebracht:

Error: unable to open display

 

Was ich alles installieren musste, bis es überhaupt bis dahin ging:

wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/x/mesa-11.2.2-x86_64-1.txz
upgradepkg --install-new mesa-11.2.2-x86_64-1.txz
wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/x/glew-1.13.0-x86_64-1.txz
upgradepkg --install-new glew-1.13.0-x86_64-1.txz
wget http://ftp.slackware.com/pub/slackware/slackware64-14.2/slackware64/x/glu-9.0.0-x86_64-1.txz
upgradepkg --install-new glu-9.0.0-x86_64-1.txz
wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/x/libX11-1.6.3-x86_64-2.txz
upgradepkg --install-new libX11-1.6.3-x86_64-2.txz
wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/x/libXext-1.3.3-x86_64-2.txz
upgradepkg --install-new libXext-1.3.3-x86_64-2.txz
wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/x/libXdamage-1.1.4-x86_64-2.txz
upgradepkg --install-new libXdamage-1.1.4-x86_64-2.txz
wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/patches/packages/libXfixes-5.0.3-x86_64-1_slack14.2.txz
upgradepkg --install-new libXfixes-5.0.3-x86_64-1_slack14.2.txz
wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/x/libxcb-1.11.1-x86_64-1.txz
upgradepkg --install-new libxcb-1.11.1-x86_64-1.txz
wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/x/libXxf86vm-1.1.4-x86_64-2.txz
upgradepkg --install-new libXxf86vm-1.1.4-x86_64-2.txz
wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/x/libXau-1.0.8-x86_64-2.txz
upgradepkg --install-new libXau-1.0.8-x86_64-2.txz
wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/x/libXdmcp-1.1.2-x86_64-2.txz
upgradepkg --install-new libXdmcp-1.1.2-x86_64-2.txz
wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/x/libdrm-2.4.68-x86_64-1.txz
upgradepkg --install-new libdrm-2.4.68-x86_64-1.txz
wget http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/x/libxshmfence-1.2-x86_64-2.txz
upgradepkg --install-new libxshmfence-1.2-x86_64-2.txz

 

Vielleicht hilft's ja ^^

Link to comment
3 hours ago, speedycxd said:

Warum musst du überhaupt Transcoden? 

Ich habe das noch nie gebraucht, ok mein Sat Receiver spielt auch alle Formate ab. Oder schaust du 4k über Handy? 

 

Es geht eher darum eben nicht 4k oder fhd am Handy zu gucken sondern nur 720p.

Oder anstatt eines 30mbit Streams einer blu ray auf unter 10mbit zu transcoden.

Dadurch wird Dein Server zum online Streamer wie Netflix oder ähnliche.

 

Gebraucht wird das weil der upload von zu Hause oft eher bei 10mbit oder darunter liegt.

Ich habe 20mbit und auch das reicht halt nicht für einen 30mbit Stream nach ausser Haus.

Inhouse ist das imho irrelevant da wlan ja meist locker für mehr als nur einen full quality stream ausreicht.

  • Like 1
Link to comment
5 hours ago, speedycxd said:

Warum musst du überhaupt Transcoden? 

Ich habe das noch nie gebraucht, ok mein Sat Receiver spielt auch alle Formate ab. Oder schaust du 4k über Handy? 

 

Ganz einfach, fürs streamen wenn man nicht daheim ist, ist es einfach besser. Außerdem ist das für die CPU deutlich weniger Belastung und kann mehr parallele Streams ausführen. Wenn ich z.B. von der Arbeit meinen Stream schaue, meine Freundin daheim und theoretisch meine Mutter bei sich. Das schafft man sonst nur schwer.

 

9 hours ago, ich777 said:

Hab mir grad die Packages nochmal angesehen und man könnt die evtl noch kleiner bekommen wenn man diverse sachen wie OpenGL und so weiter weglässt und nur die Sachen kompiliert die man braucht...

 

@themarv wenn du mein testkandidat sein willst bitte melden... :D

 

*Meld* Immer her, geht los.^^ Aber ich brauchs recht detailliert.^^

  • Like 1
Link to comment
2 minutes ago, speedycxd said:

Ok, ich vergaß das ja nicht alle so große Leitungen besitzen.

Nun gut dann macht es bei euch ja Sinn. Ich könnte locker 6-7 Leute außerhalb ohne Transcoding mit jeweils einem 4K Stream versorgen.  

 

Dann bleibt dir ja noch der Griff zu einer GPU. 

 

Also ich habe auch 50Mbit Up. Damit kann man auch schon was reissen. Ausserdem habe ich ja eine integrierte GPU in der CPU, die für Encoding sogar sehr taugt(siehe mein erster Link). Warum dann nicht auch nutzen? ;)

Link to comment

@ich777: Mit genauer Anleitung (bin ja noch Frischling) würde ich mich auch als Versuchskaninchen melden. Jellyfin/Emby hat bei mir zwar nicht die Priorität aber in Handbrake würde ich gerne die iGPU nutzen - das könnte ich dann ja hoffentlich nach erfolgreichen Tests entsprechend darauf übertragen.

Bin derzeit auf Unraid 6.9 RC2 da dort ja bereits die AMDGPU Treiber integriert sind - die Anleitung zum einbinden (aus dem Blog) habe ich auch schon übernommen.

Zukunftstraum wäre die iGPU für VMs nutzen zu können. Aber das sieht bei AMD ja wohl eher düster aus...

Link to comment
11 minutes ago, jj1987 said:

Handbrake

Das Problem ist eher das auch der Container die App dafür kompiliert werden muss und das unterstützen muss.

 

12 minutes ago, jj1987 said:

AMDGPU Treiber integriert

Jein, die Kernel Module sind integriert, der Treiber fehlt...

Ich würd wenn ich das mache direkt ins Plugin integrieren das man nichts mehr extra machen muss. :)

 

14 minutes ago, jj1987 said:

Zukunftstraum wäre die iGPU für VMs nutzen zu können. Aber das sieht bei AMD ja wohl eher düster aus...

Warum, das sollte doch funktionieren wenn ich mich nicht irre... Hab mich aber damit noch nicht so befasst, sollte aber so funktionieren wie mit den Intel iGPU's wenn ich mich nicht irre.

Oder wie meinst du genau, hast einen link zu einem Thread der das Thema behandelt?

Link to comment
9 hours ago, ich777 said:

Warum, das sollte doch funktionieren wenn ich mich nicht irre... Hab mich aber damit noch nicht so befasst, sollte aber so funktionieren wie mit den Intel iGPU's wenn ich mich nicht irre.

Oder wie meinst du genau, hast einen link zu einem Thread der das Thema behandelt?

Habe mich damit jetzt noch nicht ausführlich beschäftigt, aber das ist bei einer kurzen Google sowie Forums-Suche der Grundtenor gewesen.

Zumal man ja (anscheinend) auch ein BIOS-Dump braucht - das wird bei ner iGPU ja schwer (auf der anderen Seite scheint's mit Intel ja zu gehen?!).

Aber wie gesagt habe das bislang noch nicht sehr aktiv verfolgt - erstmal muss Unraid als solches laufen (das tut es eigentlich auch schon, habe im Moment noch nen nervigen USB-Boot Bug (Error code B4), da scheint nur ein UEFI-Update zu helfen oder ein neues Board, zumindest habe ich shcon alles abgeklemmt bzw die Steckplätze durchgetauscht...)

Dann muss ich mich noch näher mit mgutts Backup Script auseinander setzen um meine Backup-Strategie darüber umzusetzen.

Und wenn das alles erledigt ist, kommen die VMs 🙂

Link to comment
  • 2 weeks later...

Wollte hier auch noch mal ein Feedback hinterlassen, @ich777's Test-Container läuft bei mir bislang einwandfrei. Habe heute mal testweise 3 parallele Streams laufen gehabt und hatte eine CPU-Auslastung von 11%!

Ohne Hardware-Transcoding hatte ich sonst bei nur einem Stream schon rund 50% CPU-Last.

Das "Problem" wurde wirklich sehr schnell angegangen und ist auch für einen Anfänger verständlich umzusetzen.

Nochmal ein ganz dickes Danke an ich777 und ein Lob an die ganze Community, hier wird einem echt kompetent und unfassbar schnell geholfen!

  • Like 1
Link to comment
51 minutes ago, mgutt said:

Wie jetzt? AMD iGPU geht?

Jep hab Jellyfin einen Container bereit da funzt alles ;)

Updatestrategie muss ich mir noch überlegen aber sonst is alles bereit.

 

EDIT: habs nur mit 3 1080p Streams versucht aber liegt fast keine last an nur für die Audioumwandlung.

Am host ist nichts weiter nötig als 'modprobe amdgpu'

Link to comment

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...