Hardware-Transcoding verschwindet nach einem Update meist, weil der neu erstellte Container nicht mehr dasselbe Gerät, dieselbe Berechtigungsgruppe, dieselben Laufzeitfunktionen oder denselben kompatiblen Userspace-Stack sieht.
Die Host-GPU kann weiterhin funktionieren, während Plex, Jellyfin, Emby oder eine Kamera-App nach dem Ersetzen des Images unbemerkt auf die CPU zurückfällt. Zunächst muss nachgewiesen werden, ob das Gerät im neuen Container vorhanden ist und ob dessen Dienstbenutzer darauf zugreifen kann. Anschließend lassen sich Laufzeitzuordnung und Berechtigungen von einem image-spezifischen Codec- oder Treiberregressionsfehler abgrenzen.
Bestätigen, dass die Anwendung tatsächlich auf Software-Transkodierung zurückgefallen ist
Erzwingen Sie die Transkodierung einer Datei und protokollieren Sie das Dashboard des Medienservers, das FFmpeg- oder Transcoder-Log, die CPU-Auslastung des Hosts sowie die Aktivität der GPU-Engines. Direct Play testet den Hardwarepfad nicht.
Ein Fall aus der LinuxServer-Community empfiehlt, einen eindeutigen Hardwareindikator und die GPU-Telemetrie zu prüfen, da die CPU-Aktivität allein irreführend sein kann. Der entscheidende Hinweis ist die aktive GPU-Engine-Nutzung während einer kontrollierten Transkodierung.
Wenn die Logs das erfolgreiche Öffnen des Hardware-Encoders zeigen, untersuchen Sie nicht unterstützte Filter, Untertitel, Tone Mapping oder eine nur teilweise Hardwarebeschleunigung. Wenn das Gerät nicht geöffnet werden kann, fahren Sie mit der Erkennung auf dem Host und dem Containerzugriff fort.
GPU-Geräte auf dem Host und im Container vergleichen
Listen Sie die erwarteten Gerätedateien auf dem Host und im aktualisierten Container auf. Vergleichen Sie bei Intel oder AMD VA-API /dev/dri/card* und /dev/dri/renderD*; bei NVIDIA vergleichen Sie die Sichtbarkeit zur Laufzeit und die von dessen Verwaltungstool gemeldeten Geräte.
Ein Unraid-Quick-Sync-Fall zeigt, dass auf dem Host zunächst das richtige Kernelmodul erforderlich sein kann, bevor /dev/dri vorhanden ist. Außerdem muss dieses Gerät an den Container weitergereicht werden. Die fehlende Verbindung ist häufig die Gerätezuordnung für /dev/dri und nicht die Medienbibliothek oder die App-Datenbank.
Wenn das Gerät auf dem Host fehlt, reparieren Sie zuerst den Zustand von Hosttreiber, BIOS, Kernel oder Hardware. Wenn es auf dem Host vorhanden ist, aber nicht im Container, vergleichen Sie die alte und die neue Compose- oder UI-generierte Gerätekonfiguration.
Zugriff auf die Gruppen render und video überprüfen
Erfassen Sie die numerische Besitzer- und Gruppen-ID der GPU-Gerätedateien auf dem Host und prüfen Sie anschließend die Gruppen, denen der Dienstbenutzer im Container zugewiesen ist. Namen wie render können je nach Image auf unterschiedliche numerische IDs verweisen.
Ein Fall zur Fehlerbehebung bei Jellyfin in Docker zeigt eine funktionierende Konfiguration, die die ID der Render-Gruppe auf dem Host ausdrücklich abgleicht und die Berechtigungen von renderD128 prüft. Diese numerische Zuordnung der Render-Gruppe kann sich ändern, wenn ein Image seine internen Benutzer oder Gruppen ändert.
Fügen Sie die erforderliche zusätzliche Gruppe über die Containerdefinition hinzu, statt das Gerät für alle Benutzer beschreibbar zu machen. Erstellen Sie den Container neu und testen Sie den Zugriff als der tatsächliche Benutzer des Medienservers.
Laufzeitoptionen und image-spezifische Funktionen überprüfen
Vergleichen Sie die Definitionen des vorherigen und des aktuellen Images hinsichtlich devices, group_add, GPU-Laufzeiteinstellungen, Variablen für GPU-Funktionen, dem privilegierten Modus sowie Änderungen an Vorlagen des Container-Managers.
Ein Emby-Bericht beschreibt, wie die Hardwarebeschleunigung in Docker ausfiel, während die App weiterhin verfügbar war. Dies veranschaulicht den Software-Fallback nach dem Verlust der GPU, durch den dieses Problem leicht unbemerkt bleibt.
Beheben Sie ein eng begrenztes Zugriffsproblem auf das Gerät nicht durch die Vergabe umfassender privilegierter Zugriffsrechte. Stellen Sie die kleinsten Geräte- und Gruppenberechtigungen wieder her, die der Encoderpfad benötigt.
Regression im Container-Image von einem Hostfehler unterscheiden
Führen Sie einen einfachen GPU- oder FFmpeg-Test im aktualisierten Container aus und vergleichen Sie ihn anschließend mit dem vorherigen festgelegten Image. Verwenden Sie dabei dieselben Einbindungen, Gerätezuordnungen, Mediendateien und App-Konfigurationen.
Wenn das alte Image sofort funktioniert und das neue bei identischem Laufzeitstatus fehlschlägt, sichern Sie die Logs und behandeln Sie das Update als Regression im Userspace, Codec, FFmpeg oder in der Anwendung. Ändern Sie die Berechtigungen nicht wiederholt, wenn der kontrollierte Image-Vergleich die Version bereits als Ursache isoliert.
Löschen Sie nur dokumentierte, regenerierbare Codec-Caches, wenn die Logs darauf hindeuten, und lassen Sie die App-Datenbank sowie die Medienmetadaten unangetastet. Fixieren Sie das bekannte funktionierende Image, bis die Regression verstanden oder behoben ist.
Nach der Reparatur die vollständige Pipeline validieren
Testen Sie Hardware-Decodierung, -Codierung, Tone Mapping, das Einbrennen von Untertiteln und mindestens einen Client, der eine Transkodierung erzwingt. Bestätigen Sie, dass das erwartete GPU-Gerät in den Logs erscheint und der Host eine anhaltende Aktivität der GPU-Engine anzeigt.
Die ZimaSpace-Anleitung zur Überprüfung einer echten Hardware-Transkodierung bietet einen zuverlässigeren Abschlusstest als ein Schalter auf einer Einstellungsseite.
Das Problem ist erst behoben, wenn der aktualisierte oder festgelegte Container den Gerätezugriff auch nach einer Neuerstellung und einem Neustart behält, die GPU für den vorgesehenen Codecpfad verwendet und nicht mehr unbemerkt zurückfällt. Bewahren Sie den Digest des vorherigen Images und die Laufzeitdefinition als Rückfallgrenze für das nächste Update auf.
Support & Tipps
Mehr zum Lesen

Kann Plex eine GPU mit einem anderen Docker-Container gemeinsam nutzen?
Plex und ein weiterer Container können häufig auf dieselbe GPU zugreifen, aber du musst die Treiberunterstützung, die Gerätezuordnung, die Auslastung der Video-Engine, den Speicher...

So erkennst du, ob ein Plex-Fehler vom Client oder vom Server verursacht wird
Reproduziere dasselbe Element auf einem anderen Client, vergleiche den Sitzungspfad und sammle Serverbelege erst, nachdem der Geltungsbereich dir gezeigt hat, wo der Fehler tatsächlich...

So konfigurierst du den Plex-Cache und den temporären Transcodierungs-Speicher
Schütze den persistenten Plex-Zustand, indem du temporäre Transcodierungsdateien auf geeignetem lokalem Speicher ablegst, und überprüfe anschließend die Bereinigung, den freien Speicherplatz und das Verhalten...

