Vad bör du kontrollera när H.264-hårdvarutranskodning fungerar men AV1 inte gör det?

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

Att H.264 fungerar visar att GPU-sökvägen fungerar för H.264, men det bevisar inte att samma hårdvara stöder avkodning, kodning, profil eller bitdjup för AV1.

Hårdvarutranskodning är en kedja av codec-specifika åtgärder: avkoda källan, tillämpa skalning eller tonmappning och koda det utdataformat som klienten har valt. Äldre och mellangenerationens GPU:er accelererar ofta H.264, men stöder bara programvaruavkodning av AV1, maskinvaruavkodning av AV1 utan maskinvarukodning av AV1 eller ingetdera. Börja med att identifiera vilket AV1-steg som misslyckas innan du ändrar globala accelerationsinställningar.

Ta reda på om avkodning eller kodning av AV1 misslyckas

Granska det aktiva FFmpeg-kommandot och orsaken till omkodningen. Notera indatacodec, maskinvaruavkodare, filterväg, utdatascodec, maskinvarukodare och den första felraden.

En server kan avkoda AV1 och koda H.264, eller avkoda H.264 och försöka koda AV1. Det är olika funktioner. En hårdvarudiskussion i Jellyfin innehåller ett system där AV1 QSV- och VA-API-sökvägar var inte stödda på den installerade GPU:n, medan andra hårdvarusökvägar fortfarande kunde användas.

Kör ett test från AV1-indata till H.264-utdata och ett test från H.264-indata till AV1-utdata, men bara när medieservern visar båda alternativen. Om det första lyckas och det andra misslyckas finns avkodning av AV1, men inte kodning av AV1.

Kontrollera hårdvarustödet efter codec-riktning och profil

Ta reda på den faktiska GPU-generationen och enhets-ID:t och jämför sedan avkodnings- och kodningsstödet separat. Ta med AV1 Main-profilen, 8 bitar jämfört med 10 bitar, krominansformat, upplösning och maximal nivå.

Codec-stödet kan vara begränsat även på nyare enheter. En rapport i Intels media-driver visar att maskinvaruavkodning av AV1 misslyckades på Tiger Lake medan programvaruavkodning fungerade, vilket visar att en befintlig AV1-kodsökväg fortfarande kan misslyckas med en viss kombination av kärna och drivrutin.

Dra inte slutsatser om AV1-stöd utifrån H.264-belastning, GPU-familj eller en kryssruta i programmet. Bekräfta den exakta källprofilen och den begärda utdataingången mot vad den installerade stacken rapporterar.

Läs av värdens exponerade avkodnings- och kodningsprofiler

Kör plattformens kapacitetsverktyg mot den avsedda renderings- eller CUDA-enheten. För VA-API ska du samla in utdata för profiler och ingångspunkter. För NVIDIA ska du samla in den installerade drivrutinen samt de avkodare och kodare som FFmpeg har tillgång till.

AV1 kan visas för avkodning men inte för kodning, eller så kan ett energisnålt kodningsläge kräva fast programvara som H.264 inte behöver. Intels media-driver-arkiv påpekar att bithastighetskontroll i energisnåla lägen för AVC, HEVC, VP9 och AV1 kan bero på tillgängligheten för HuC:s fasta programvara.

Om värden inte exponerar den nödvändiga AV1-ingångspunkten ska du stanna på värdlagret. Att ändra behörigheter för containern eller inställningar i medieservern kan inte skapa ett codec-block som kärnan och användarutrymmets drivrutin inte tillhandahåller.

-15% OFF
Single board computer zimaboard2

Jämför versioner av kärna, fast programvara och drivrutin i användarutrymmet

Notera kärnan, paketet med fast programvara, GPU-drivrutinen i användarutrymmet, libva- eller CUDA-stacken, containerns körmiljö och FFmpeg-bygget. H.264 kan förbli stabilt efter en uppdatering medan en nyare AV1-sökväg försämras.

Tidiga Intel Arc-installationer rapporterade fel vid VA-API-avkodning och -kodning som påverkade AV1 tillsammans med andra codec, tills den omgivande kärn- och media-driver-stacken hade mognat. Fallet visar varför kompatibilitet i drivrutinsstacken är viktigare för en nyare codec-sökväg.

Jämför de aktuella versionerna med den senast kända fungerande konfigurationen och distributionens kombination av stödda paket. Undvik att blanda en ny mediedrivrutin i användarutrymmet med en inkompatibel gammal kärna eller att byta ut paketerade FFmpeg-komponenter individuellt.

Testa samma enhet och FFmpeg-bygge i containern

Gå in i medieservercontainern och verifiera renderingsnoden eller NVIDIA-enheten, numeriska grupper, drivrutinsbibliotek och den medföljande listan över FFmpeg-codec. Att värden har rätt kapacitet bevisar inte att containern använder samma stack.

Kör ett kort, fungerande AV1-prov genom maskinvaruavkodning och en enkel H.264-utdata utan HDR, undertexter eller skalning. Upprepa sedan testet med programmets FFmpeg-binär och dess faktiska enhetsval.

ZimaSpaces guide om kontroll av hårdvarutranskodning beskriver det kompletterande testet för att bevisa att containern använder den förväntade enheten i stället för att omärkbart falla tillbaka till programvara.

Separera AV1-videobearbetning från problem med leveranscontainern

En AV1-källa kan avkodas korrekt men misslyckas när klienten kräver ljudkonvertering, en annan typ av HLS-segment, HDR-bearbetning eller en leveranscontainer som inte kan bära den valda kombinationen.

Ett Jellyfin Web-ärende visade att AV1-uppspelning med ljudtranskodning misslyckades med ett HLS-containeralternativ men fungerade när fMP4-HLS aktiverades, vilket visar att leveranscontainern kan vara det lager som orsakar felet.

Testa igen med en enkel SDR-AV1-fil, kompatibelt ljud, inga undertexter och H.264-utdata. Lägg till ljudkonvertering, HDR-tonmappning, undertexter och den normala klientprofilen, en variabel i taget.

Använd programvaruåtergång eller ett kompatibelt utdataformat först efter klassificeringen

Om GPU:n stöder avkodning av AV1 men inte kodning, behåll maskinvaruavkodningen och koda klientens utdata som H.264 eller HEVC när det stöds. Om avkodning av AV1 saknas kan programvaruavkodning fungera för lägre upplösningar, men vara för långsam för 4K med hög bithastighet.

Klientstödet påverkar också om AV1-utdata är användbart. Jellyfin Web har dokumenterat webbläsarprofiler som fortfarande väljer H.264 eftersom AV1-klientstödet fortfarande beror på profilen.

Åtgärden är klar när den testade AV1-filen använder den avsedda maskinvaruavkodaren eller en uppmätt programvaruåtergång, när utdata-codec matchar klienten, när transkodningshastigheten förblir högre än realtid och när H.264-sessioner fortsätter att fungera efter den AV1-specifika ändringen.

Support och tips

Mer att läsa

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.