Wat moet je controleren wanneer hardwaretranscodering van H.264 werkt, maar die van AV1 niet?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Succes met H.264 bewijst dat het GPU-pad voor H.264 werkt, maar bewijst niet dat dezelfde hardware AV1-decodering, -codering, het profiel of de bitdiepte ondersteunt.

Hardwaretranscodering is een keten van codec-specifieke bewerkingen: de bron decoderen, schalen of tonemapping toepassen en het uitvoerformaat coderen dat voor de client is geselecteerd. Oudere en GPU’s van middelbare generaties versnellen H.264 vaak, terwijl ze alleen softwarematige AV1-decodering, hardwarematige AV1-decodering zonder AV1-codering of geen van beide ondersteunen. Bepaal eerst welke AV1-fase faalt voordat je de algemene versnellingsinstellingen wijzigt.

Bepaal of AV1-decodering of AV1-codering faalt

Bekijk de actieve FFmpeg-opdracht en de reden voor de transcodering. Noteer de invoercodec, hardwaredecoder, filterroute, uitvoercodec, hardware-encoder en de eerste foutregel.

Een server kan AV1 decoderen en H.264 coderen, of H.264 decoderen en proberen AV1 te coderen. Dat zijn verschillende mogelijkheden. In een hardwarediscussie over Jellyfin wordt een systeem beschreven waarop AV1 QSV- en VA-API-paden niet werden ondersteund door de geïnstalleerde GPU, terwijl andere hardwarepaden bruikbaar bleven.

Voer één test uit van AV1-invoer naar H.264-uitvoer en één test van H.264-invoer naar AV1-uitvoer, maar alleen wanneer de mediaserver beide opties beschikbaar stelt. Als de eerste slaagt en de tweede faalt, is AV1-decodering beschikbaar, maar AV1-codering niet.

Controleer hardwaremogelijkheden per codec-richting en profiel

Zoek de exacte GPU-generatie en apparaat-ID op en vergelijk decodeer- en codeerondersteuning afzonderlijk. Neem het AV1 Main-profiel, 8-bits versus 10-bits, het chromaformaat, de resolutie en het maximale level mee.

Codec-ondersteuning kan zelfs op nieuwere apparaten gedeeltelijk zijn. Een rapport in de Intel media-driver laat zien dat hardwarematige AV1-decodering op Tiger Lake faalde terwijl softwarematige decodering werkte. Dit toont aan dat een aanwezig AV1-codecpad toch kan falen bij een specifieke combinatie van kernel en driver.

Leid AV1-ondersteuning niet af uit H.264-gebruik, de GPU-familie of een selectievakje in de applicatie. Controleer het exacte bronprofiel en de gevraagde uitvoer-entrypoint aan de hand van wat de geïnstalleerde stack meldt.

Lees de beschikbare decodeer- en codeerprofielen van de host uit

Voer de mogelijkhedenstool van het platform uit op het beoogde render- of CUDA-apparaat. Leg voor VA-API de profiel- en entrypoint-uitvoer vast; leg voor NVIDIA de geïnstalleerde driver en de beschikbare decoders en encoders van FFmpeg vast.

AV1 kan voor decodering verschijnen, maar niet voor codering, of een energiezuinige codeermodus kan firmware vereisen die voor H.264 niet nodig is. De repository van Intel media-driver vermeldt dat energiezuinige bitratebesturing voor AVC, HEVC, VP9 en AV1 afhankelijk kan zijn van beschikbaarheid van HuC-firmware.

Als de host het vereiste AV1-entrypoint niet beschikbaar stelt, stop dan op hostniveau. Het wijzigen van containermachtigingen of mediaserverinstellingen kan geen codecblok creëren dat de kernel en userspacedriver niet leveren.

-15% OFF
Single board computer zimaboard2

Vergelijk versies van kernel, firmware en userspacedriver

Noteer de kernel, het firmwarepakket, de GPU-userspacedriver, de libva- of CUDA-stack, de containerruntime en de FFmpeg-build. H.264 kan na een update stabiel blijven terwijl een nieuwer AV1-pad achteruitgaat.

Bij vroege implementaties van Intel Arc werden VA-API-decodeer- en codeerproblemen gemeld die AV1 en andere codecs betroffen, totdat de omliggende kernel- en media-driverstack verder was ontwikkeld. Deze casus laat zien waarom compatibiliteit van de driverstack belangrijker is voor een nieuwer codecpad.

Vergelijk de huidige versies met de laatst bekende werkende configuratie en de ondersteunde pakketcombinatie van de distributie. Vermijd het combineren van een nieuwe userspace-mediadriver met een incompatibele oude kernel en vervang pakketgeleverde FFmpeg-componenten niet afzonderlijk.

Test hetzelfde apparaat en dezelfde FFmpeg-build in de container

Open de mediaservercontainer en controleer het renderknooppunt of NVIDIA-apparaat, de numerieke groepen, de driverbibliotheken en de codecslijst van de meegeleverde FFmpeg. Mogelijkheden op de host bewijzen niet dat de container dezelfde stack gebruikt.

Voer een kort, bekend goed AV1-voorbeeld uit met hardwarematige decodering en eenvoudige H.264-uitvoer zonder HDR, ondertiteling of schalen. Herhaal dit vervolgens met het FFmpeg-binaire bestand van de applicatie en de daadwerkelijke apparaatselectie.

De ZimaSpace-handleiding voor het controleren van hardwaretranscodering biedt de aanvullende test om te bewijzen dat de container het verwachte apparaat gebruikt in plaats van stilletjes terug te vallen op software.

Scheid AV1-videobewerking van problemen met de leveringscontainer

Een AV1-bron kan correct worden gedecodeerd, maar toch falen wanneer de client audioconversie, een ander HLS-segmenttype, HDR-verwerking of een leveringscontainer vereist die de gekozen combinatie niet ondersteunt.

In een Jellyfin Web-issue bleek dat AV1-weergave met audiotranscodering faalde bij één HLS-containerkeuze, maar werkte wanneer fMP4-HLS was ingeschakeld. Dit toont aan dat de leveringscontainer de falende laag kan zijn.

Test opnieuw met een eenvoudig SDR-AV1-bestand, compatibele audio, zonder ondertiteling en met H.264-uitvoer. Voeg audioconversie, HDR-tonemapping, ondertiteling en het normale clientprofiel één variabele per keer toe.

Gebruik pas na classificatie een softwarematige terugval of compatibele uitvoer

Als de GPU AV1-decodering maar geen AV1-codering ondersteunt, behoud dan hardwarematige decodering en codeer de clientuitvoer als H.264 of HEVC wanneer dit wordt ondersteund. Als AV1-decodering ontbreekt, kan softwarematige decodering werken voor lagere resoluties, maar voor 4K met een hoge bitrate kan deze te traag zijn.

Ook clientondersteuning bepaalt of AV1-uitvoer nuttig is. Jellyfin Web houdt browserprofielen bij die H.264 blijven selecteren omdat AV1-clientondersteuning afhankelijk blijft van het profiel.

De reparatie is voltooid wanneer het geteste AV1-bestand de beoogde hardwaredecoder of een gemeten softwarematige terugval gebruikt, de uitvoercodec overeenkomt met de client, de transcodeersnelheid boven realtime blijft en H.264-sessies blijven werken na de AV1-specifieke wijziging.

Ondersteuning & Tips

Meer om te lezen

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.