Sukces w przypadku H.264 potwierdza, że ścieżka GPU działa dla H.264, ale nie dowodzi, że ten sam sprzęt obsługuje dekodowanie, kodowanie, profil ani głębię bitową AV1.
Transkodowanie sprzętowe to łańcuch operacji zależnych od kodeka: dekodowanie źródła, skalowanie lub mapowanie tonów oraz kodowanie do formatu wybranego dla klienta. Starsze i średniej generacji układy GPU często przyspieszają H.264, obsługując jednocześnie tylko programowe dekodowanie AV1, sprzętowe dekodowanie AV1 bez kodowania AV1 albo nie obsługując żadnej z tych funkcji. Najpierw ustal, który etap AV1 kończy się niepowodzeniem, zanim zmienisz globalne ustawienia akceleracji.
Ustal, czy problem dotyczy dekodowania, czy kodowania AV1
Sprawdź aktywne polecenie FFmpeg i przyczynę transkodowania. Zapisz kodek wejściowy, sprzętowy dekoder, ścieżkę filtrów, kodek wyjściowy, sprzętowy enkoder oraz pierwszy wiersz błędu.
Serwer może dekodować AV1 i kodować H.264 albo dekodować H.264 i próbować kodować AV1. To różne możliwości. W jednej z dyskusji dotyczących sprzętu Jellyfin opisano system, w którym ścieżki AV1 QSV i VA-API były nieobsługiwane przez zainstalowany układ GPU, podczas gdy inne ścieżki sprzętowe pozostawały użyteczne.
Wykonaj jeden test z wejściem AV1 i wyjściem H.264 oraz jeden test z wejściem H.264 i wyjściem AV1 — ale tylko wtedy, gdy serwer multimediów udostępnia obie opcje. Jeśli pierwszy test zakończy się powodzeniem, a drugi nie, dekodowanie AV1 jest dostępne, lecz kodowanie AV1 nie.
Sprawdź możliwości sprzętu pod kątem kierunku kodowania i profilu
Sprawdź dokładną generację układu GPU i identyfikator urządzenia, a następnie porównaj osobno obsługę dekodowania i kodowania. Uwzględnij profil AV1 Main, 8- i 10-bitową głębię, format chromy, rozdzielczość oraz maksymalny poziom.
Obsługa kodeka może być częściowa nawet w nowszych urządzeniach. Zgłoszenie dotyczące sterownika Intel media-driver pokazuje, że sprzętowe dekodowanie AV1 kończyło się niepowodzeniem na Tiger Lake, podczas gdy dekodowanie programowe działało, co dowodzi, że istniejąca ścieżka kodu AV1 może nadal zawodzić przy określonej kombinacji jądra i sterownika.
Nie wyciągaj wniosków o obsłudze AV1 na podstawie wykorzystania H.264, rodziny modeli GPU ani pola wyboru w aplikacji. Potwierdź dokładny profil źródła i żądany punkt wejścia wyjścia w odniesieniu do informacji zgłaszanych przez zainstalowany stos.
Sprawdź udostępniane przez hosta profile dekodowania i kodowania
Uruchom narzędzie do sprawdzania możliwości platformy dla docelowego urządzenia renderującego lub urządzenia CUDA. W przypadku VA-API zarejestruj informacje o profilach i punktach wejścia; w przypadku NVIDIA zarejestruj zainstalowany sterownik oraz dekodery i enkodery dostępne w FFmpeg.
AV1 może być dostępny do dekodowania, ale nie do kodowania, albo tryb kodowania o niskim poborze mocy może wymagać oprogramowania układowego, którego H.264 nie potrzebuje. Repozytorium Intel media-driver informuje, że kontrola przepływności o niskim poborze mocy dla AVC, HEVC, VP9 i AV1 może zależeć od dostępności oprogramowania układowego HuC.
Jeśli host nie udostępnia wymaganego punktu wejścia AV1, zatrzymaj się na poziomie hosta. Zmiana uprawnień kontenera ani ustawień serwera multimediów nie utworzy bloku kodeka, którego nie zapewniają jądro i sterownik przestrzeni użytkownika.
Porównaj wersje jądra, oprogramowania układowego i sterownika przestrzeni użytkownika
Zapisz wersję jądra, pakietu oprogramowania układowego, sterownika GPU w przestrzeni użytkownika, stosu libva lub CUDA, środowiska uruchomieniowego kontenera oraz kompilacji FFmpeg. H.264 może działać stabilnie po aktualizacji, podczas gdy nowsza ścieżka AV1 ulegnie regresji.
We wczesnych wdrożeniach Intel Arc zgłaszano awarie dekodowania i kodowania VA-API dotyczące AV1 oraz innych kodeków, dopóki otaczający stos jądra i media-driver nie dojrzał. Ten przypadek pokazuje, dlaczego zgodność stosu sterowników ma większe znaczenie w przypadku nowszego kodeka.
Porównaj bieżące wersje z ostatnią znaną jako działająca konfiguracją oraz obsługiwaną przez dystrybucję kombinacją pakietów. Unikaj łączenia nowego sterownika multimediów przestrzeni użytkownika ze starym, niezgodnym jądrem oraz pojedynczej wymiany komponentów FFmpeg dostarczanych w pakietach.
Przetestuj to samo urządzenie i tę samą kompilację FFmpeg w kontenerze
Wejdź do kontenera serwera multimediów i zweryfikuj węzeł renderujący lub urządzenie NVIDIA, grupy numeryczne, biblioteki sterowników oraz listę kodeków dołączonego FFmpeg. Możliwości hosta nie dowodzą, że kontener korzysta z tego samego stosu.
Przepuść krótki, znany jako działający, próbny plik AV1 przez sprzętowe dekodowanie i proste wyjście H.264, bez HDR, napisów ani skalowania. Następnie powtórz test za pomocą pliku binarnego FFmpeg używanego przez aplikację i z jej rzeczywistym wyborem urządzenia.
Poradnik ZimaSpace dotyczący sprawdzania transkodowania sprzętowego opisuje powiązany test potwierdzający, że kontener korzysta z oczekiwanego urządzenia, zamiast niejawnie przechodzić na oprogramowanie.
Oddziel przetwarzanie wideo AV1 od problemów z kontenerem dostarczania
Źródło AV1 może być dekodowane poprawnie, ale odtwarzanie może zakończyć się niepowodzeniem, gdy klient wymaga konwersji dźwięku, innego typu segmentów HLS, przetwarzania HDR albo kontenera dostarczania, który nie obsługuje wybranej kombinacji.
W zgłoszeniu dotyczącym Jellyfin Web stwierdzono, że odtwarzanie AV1 z transkodowaniem dźwięku kończyło się niepowodzeniem przy jednym wyborze kontenera HLS, lecz działało po włączeniu fMP4-HLS, co pokazuje, że warstwa kontenera dostarczania może być przyczyną problemu.
Powtórz test z prostym plikiem AV1 SDR, zgodnym dźwiękiem, bez napisów i z wyjściem H.264. Następnie dodawaj konwersję dźwięku, mapowanie tonów HDR, napisy i standardowy profil klienta — po jednej zmiennej naraz.
Dopiero po sklasyfikowaniu problemu użyj awaryjnego dekodowania programowego lub zgodnego wyjścia
Jeśli GPU obsługuje dekodowanie AV1, ale nie kodowanie, pozostaw sprzętowe dekodowanie i koduj wyjście klienta jako H.264 lub HEVC, jeśli są obsługiwane. Jeśli dekodowanie AV1 nie jest dostępne, dekodowanie programowe może działać przy niższych rozdzielczościach, ale może być zbyt wolne dla materiałów 4K o wysokiej przepływności.
Obsługa po stronie klienta również wpływa na użyteczność wyjścia AV1. W Jellyfin Web śledzono profile przeglądarek, które nadal wybierają H.264, ponieważ obsługa AV1 przez klienta nadal zależy od profilu.
Naprawę można uznać za zakończoną, gdy testowany plik AV1 korzysta z zamierzonego dekodera sprzętowego lub zmierzonego awaryjnego dekodowania programowego, kodek wyjściowy odpowiada klientowi, szybkość transkodowania pozostaje wyższa niż rzeczywista szybkość odtwarzania, a sesje H.264 nadal działają po zmianie dotyczącej AV1.
Wsparcie i wskazówki
Więcej do przeczytania

Dlaczego przywracanie woluminu Dockera odtwarza zawartość plików, ale usuwa atrybuty rozszerzone?
Diagnoza przywracania woluminu obejmująca inwentaryzację atrybutów xattr, opcje tar i Rsync, przestrzenie nazw, obsługę miejsca docelowego, uprawnienia, etykiety, metadane aplikacji i testy.

Dlaczego uruchomiony kontener zachowuje stary limit pamięci po zmianie pliku Compose?
Diagnoza limitu pamięci obejmująca aktywne grupy cgroup, ponowne uruchamianie w porównaniu z odtwarzaniem, pola Compose, limity twarde i miękkie, zakresy nadrzędne, pamięć wymiany oraz...

Dlaczego ponowne uruchomienie odwrotnego proxy unieważnia każdą sesję w jednej samodzielnie hostowanej aplikacji?
Diagnoza utraty sesji obejmująca zakres restartu, własność plików cookie, rotację sekretów, sesje oparte na pamięci podręcznej, przekierowanie do serwera przyklejonego, bramy uwierzytelniania oraz przywracanie...

