Der Erfolg mit H.264 beweist, dass der GPU-Pfad für H.264 funktioniert. Er beweist jedoch nicht, dass dieselbe Hardware AV1-Decodierung, -Codierung, das gewünschte Profil oder die erforderliche Farbtiefe unterstützt.
Hardware-Transcodierung besteht aus einer Kette codec-spezifischer Vorgänge: Die Quelle wird decodiert, skaliert oder per Tone-Mapping verarbeitet und anschließend in das vom Client ausgewählte Ausgabeformat codiert. Ältere und GPUs mittlerer Generation beschleunigen H.264 häufig, unterstützen jedoch möglicherweise nur die AV1-Softwaredecodierung, die AV1-Hardwaredecodierung ohne AV1-Codierung oder weder das eine noch das andere. Ermitteln Sie zunächst, welche AV1-Stufe fehlschlägt, bevor Sie globale Beschleunigungseinstellungen ändern.
Feststellen, ob die AV1-Decodierung oder AV1-Codierung fehlschlägt
Prüfen Sie den aktiven FFmpeg-Befehl und den Grund für die Transcodierung. Notieren Sie den Eingabecodec, den Hardwaredecoder, den Filterpfad, den Ausgabecodec, den Hardwareencoder und die erste Fehlerzeile.
Ein Server kann AV1 decodieren und H.264 codieren oder H.264 decodieren und versuchen, AV1 zu codieren. Das sind unterschiedliche Fähigkeiten. In einer Hardwarediskussion zu Jellyfin wird ein System beschrieben, bei dem die AV1-QSV- und VA-API-Pfade auf der installierten GPU nicht unterstützt wurden, während andere Hardwarepfade weiterhin nutzbar waren.
Führen Sie einen Test von AV1-Eingabe zu H.264-Ausgabe und einen Test von H.264-Eingabe zu AV1-Ausgabe nur dann durch, wenn der Medienserver beide Optionen anbietet. Wenn der erste Test erfolgreich ist und der zweite fehlschlägt, ist die AV1-Decodierung vorhanden, die AV1-Codierung jedoch nicht.
Hardwareunterstützung nach Codec-Richtung und Profil prüfen
Ermitteln Sie die tatsächliche GPU-Generation und Geräte-ID und vergleichen Sie anschließend die Decodierungs- und Codierungsunterstützung getrennt. Berücksichtigen Sie das AV1-Main-Profil, 8 Bit gegenüber 10 Bit, das Chromaformat, die Auflösung und das maximale Level.
Die Codec-Unterstützung kann auch bei neueren Geräten teilweise sein. Ein Bericht zum Intel-Media-Treiber zeigt, dass die AV1-Hardwaredecodierung auf Tiger Lake fehlschlug, während die Softwaredecodierung funktionierte. Dies zeigt, dass ein vorhandener AV1-Codepfad dennoch fehlschlagen kann, wenn eine bestimmte Kombination aus Kernel und Treiber verwendet wird.
Leiten Sie die AV1-Fähigkeit nicht aus der H.264-Auslastung, der GPU-Produktfamilie oder einem Kontrollkästchen in der Anwendung ab. Bestätigen Sie das genaue Quellprofil und den angeforderten Ausgabe-Einstiegspunkt anhand der Angaben des installierten Stacks.
Die vom Host bereitgestellten Decodierungs- und Codierungsprofile auslesen
Führen Sie das Fähigkeitstool der Plattform für das vorgesehene Render- oder CUDA-Gerät aus. Erfassen Sie bei VA-API die Profil- und Einstiegspunkt-Ausgabe; bei NVIDIA den installierten Treiber sowie die von FFmpeg verfügbaren Decoder und Encoder.
AV1 kann für die Decodierung, nicht aber für die Codierung angezeigt werden. Auch ein stromsparender Codierungsmodus kann Firmware erfordern, die H.264 nicht benötigt. Das Repository des Intel-Media-Treibers weist darauf hin, dass die Steuerung der Bitrate im stromsparenden Modus für AVC, HEVC, VP9 und AV1 von der Verfügbarkeit der HuC-Firmware abhängen kann.
Wenn der Host den erforderlichen AV1-Einstiegspunkt nicht bereitstellt, liegt das Problem auf Host-Ebene. Änderungen an Container-Berechtigungen oder Medienserver-Einstellungen können keinen Codec-Block erzeugen, den Kernel und Userspace-Treiber nicht bereitstellen.
Kernel-, Firmware- und Userspace-Treiberversionen vergleichen
Notieren Sie Kernel, Firmwarepaket, GPU-Userspace-Treiber, libva- oder CUDA-Stack, Container-Laufzeitumgebung und FFmpeg-Build. H.264 kann nach einem Update weiterhin stabil funktionieren, während ein neuerer AV1-Pfad fehlschlägt.
Bei frühen Intel-Arc-Einsätzen wurden VA-API-Decodierungs- und -Codierungsfehler gemeldet, die AV1 und andere Codecs betrafen, bis der umgebende Kernel- und Media-Treiber-Stack ausgereift war. Dieser Fall verdeutlicht, warum die Kompatibilität des Treiber-Stacks bei einem neueren Codec-Pfad besonders wichtig ist.
Vergleichen Sie die aktuellen Versionen mit der letzten bekannten funktionierenden Konfiguration und der vom Betriebssystem unterstützten Paketkombination. Vermeiden Sie es, einen neuen Userspace-Media-Treiber mit einem inkompatiblen alten Kernel zu mischen oder einzelne FFmpeg-Komponenten aus den Distributionspaketen zu ersetzen.
Dasselbe Gerät und denselben FFmpeg-Build im Container testen
Öffnen Sie eine Shell im Medienserver-Container und prüfen Sie den Render-Knoten oder das NVIDIA-Gerät, die numerischen Gruppen, die Treiberbibliotheken und die im Container enthaltene FFmpeg-Codec-Liste. Die auf dem Host verfügbaren Fähigkeiten beweisen nicht, dass der Container denselben Stack verwendet.
Führen Sie ein kurzes, bekanntermaßen funktionierendes AV1-Beispiel mit Hardwaredecodierung und einfacher H.264-Ausgabe aus, ohne HDR, Untertitel oder Skalierung. Wiederholen Sie den Test anschließend mit der FFmpeg-Binärdatei der Anwendung und der tatsächlich ausgewählten Gerätezuordnung.
Der ZimaSpace-Leitfaden zum Überprüfen der Hardware-Transcodierung beschreibt den ergänzenden Test, mit dem sich nachweisen lässt, dass der Container das erwartete Gerät verwendet, anstatt unbemerkt auf Software zurückzufallen.
AV1-Videob Verarbeitung von Problemen mit dem Auslieferungscontainer trennen
Eine AV1-Quelle kann korrekt decodiert werden und dennoch fehlschlagen, wenn der Client eine Audiokonvertierung, einen anderen HLS-Segmenttyp, HDR-Verarbeitung oder einen Auslieferungscontainer benötigt, der die gewählte Kombination nicht unterstützt.
Ein Jellyfin-Web-Problem zeigte, dass die AV1-Wiedergabe mit Audiotranscodierung bei einer HLS-Containerwahl fehlschlug, aber mit aktiviertem fMP4-HLS funktionierte. Dies zeigt, dass der Auslieferungscontainer die fehlerhafte Ebene sein kann.
Wiederholen Sie den Test mit einer einfachen SDR-AV1-Datei, kompatiblem Audio, ohne Untertitel und mit H.264-Ausgabe. Fügen Sie Audiokonvertierung, HDR-Tone-Mapping, Untertitel und das normale Client-Profil nacheinander hinzu.
Software-Fallback oder kompatible Ausgabe erst nach der Klassifizierung verwenden
Wenn die GPU AV1 decodieren, aber nicht codieren kann, behalten Sie die Hardwaredecodierung bei und codieren Sie die Client-Ausgabe als H.264 oder, sofern unterstützt, HEVC. Wenn keine AV1-Decodierung vorhanden ist, kann die Softwaredecodierung bei niedrigeren Auflösungen funktionieren, für hochbitratiges 4K jedoch zu langsam sein.
Auch die Client-Unterstützung beeinflusst, ob eine AV1-Ausgabe sinnvoll ist. Für Jellyfin Web wurden Browserprofile dokumentiert, die weiterhin H.264 auswählen, weil die AV1-Clientunterstützung weiterhin profilabhängig ist.
Die Reparatur ist abgeschlossen, wenn die getestete AV1-Datei den vorgesehenen Hardwaredecoder oder einen gemessenen Software-Fallback verwendet, der Ausgabecodec zum Client passt, die Transcodierungsgeschwindigkeit über Echtzeit liegt und H.264-Sitzungen nach der AV1-spezifischen Änderung weiterhin funktionieren.
Support & Tipps
Mehr zum Lesen

Warum stellt eine Docker-Volume-Wiederherstellung zwar die Dateiinhalte wieder her, lässt aber erweiterte Attribute weg?
Eine Diagnose zur Wiederherstellung von Volumes mit einer Bestandsaufnahme der erweiterten Attribute, Tar- und Rsync-Optionen, Namespaces, Zielunterstützung, Berechtigungen, Labels, App-Metadaten und Tests.

Warum behält ein laufender Container sein altes Speicherlimit bei, nachdem die Compose-Datei geändert wurde?
Eine Diagnose der Speicherbegrenzung mit Erläuterungen zu aktiven cgroups, Neustart gegenüber Neuerstellung, Compose-Feldern, harten und weichen Limits, übergeordneten Bereichen, Swap sowie Laufzeit-Heaps.

Warum macht ein Neustart des Reverse-Proxys jede Sitzung für eine selbst gehostete App ungültig?
Eine Diagnose von Sitzungsverlusten mit Abdeckung des Neustartumfangs, der Cookie-Zuständigkeit, der Geheimnisrotation, cachebasierten Sitzungen, Sticky-Routing, Authentifizierungs-Gateways und der Wiederherstellung.

