Cosa controllare quando la transcodifica hardware H.264 funziona, ma quella AV1 no?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Il corretto funzionamento di H.264 dimostra che il percorso GPU funziona per H.264, ma non dimostra che lo stesso hardware supporti la decodifica, la codifica, il profilo o la profondità di bit AV1.

La transcodifica hardware è una catena di operazioni specifiche per codec: decodificare la sorgente, applicare il ridimensionamento o il tone mapping e codificare il formato di output selezionato per il client. Le GPU più vecchie e quelle di generazione intermedia accelerano comunemente H.264, supportando però solo la decodifica AV1 via software, la decodifica AV1 hardware senza codifica AV1 oppure nessuna delle due. Inizia identificando quale fase AV1 non funziona prima di modificare le impostazioni globali di accelerazione.

Determina se il problema riguarda la decodifica o la codifica AV1

Esamina il comando FFmpeg attivo e il motivo della transcodifica. Annota il codec di input, il decodificatore hardware, il percorso dei filtri, il codec di output, il codificatore hardware e la prima riga dell’errore.

Un server può decodificare AV1 e codificare H.264, oppure decodificare H.264 e tentare di codificare AV1. Si tratta di capacità diverse. Una discussione sull’hardware di Jellyfin include un sistema in cui i percorsi AV1 QSV e VA-API erano non supportati dalla GPU installata, mentre gli altri percorsi hardware restavano utilizzabili.

Esegui un test da input AV1 a output H.264 e un test da input H.264 a output AV1 solo quando il server multimediale espone entrambe le opzioni. Se il primo riesce e il secondo fallisce, la decodifica AV1 è disponibile, ma la codifica AV1 no.

Verifica le capacità hardware in base alla direzione del codec e al profilo

Identifica la generazione effettiva della GPU e l’ID del dispositivo, quindi confronta separatamente il supporto alla decodifica e alla codifica. Includi il profilo AV1 Main, la profondità di 8 o 10 bit, il formato della crominanza, la risoluzione e il livello massimo.

Il supporto ai codec può essere parziale anche sui dispositivi più recenti. Un report del media-driver Intel mostra un errore nella decodifica hardware AV1 su Tiger Lake, mentre la decodifica software funzionava, dimostrando che un percorso AV1 presente può comunque non funzionare con una particolare combinazione di kernel e driver.

Non dedurre la capacità AV1 dall’utilizzo di H.264, dalla famiglia del modello di GPU o da una casella di controllo dell’applicazione. Conferma il profilo esatto della sorgente e il punto di ingresso dell’output richiesto confrontandoli con ciò che lo stack installato segnala.

Leggi i profili di decodifica e codifica esposti dall’host

Esegui lo strumento delle capacità della piattaforma sul dispositivo render o CUDA previsto. Per VA-API, acquisisci l’output dei profili e dei punti di ingresso; per NVIDIA, acquisisci il driver installato e i decodificatori e codificatori disponibili in FFmpeg.

AV1 può comparire per la decodifica ma non per la codifica, oppure una modalità di codifica a basso consumo può richiedere un firmware che H.264 non richiede. Il repository media-driver di Intel segnala che il controllo del bitrate a basso consumo per AVC, HEVC, VP9 e AV1 può dipendere dalla disponibilità del firmware HuC.

Se l’host non espone il punto di ingresso AV1 richiesto, interrompi la diagnosi a livello host. Modificare i permessi del container o le impostazioni del server multimediale non può creare un blocco codec che il kernel e il driver nello spazio utente non forniscono.

-15% OFF

Confronta le versioni di kernel, firmware e driver nello spazio utente

Annota il kernel, il pacchetto firmware, il driver GPU nello spazio utente, lo stack libva o CUDA, il runtime del container e la build di FFmpeg. H.264 può rimanere stabile dopo un aggiornamento mentre un percorso AV1 più recente può presentare regressioni.

Le prime implementazioni Intel Arc hanno segnalato errori di decodifica e codifica VA-API che interessavano AV1 e altri codec, finché lo stack circostante di kernel e media-driver non è maturato. Il caso dimostra perché la compatibilità dello stack dei driver è ancora più importante per un percorso codec più recente.

Confronta le versioni attuali con l’ultima configurazione sicuramente funzionante e con la combinazione di pacchetti supportata dalla distribuzione. Evita di combinare un nuovo media-driver nello spazio utente con un kernel obsoleto incompatibile o di sostituire singolarmente i componenti di FFmpeg forniti dai pacchetti.

Testa lo stesso dispositivo e la stessa build di FFmpeg all’interno del container

Accedi al container del server multimediale e verifica il nodo render o il dispositivo NVIDIA, i gruppi numerici, le librerie del driver e l’elenco dei codec FFmpeg incluso. Le capacità dell’host non dimostrano che il container utilizzi lo stesso stack.

Esegui un breve campione AV1 noto come funzionante tramite decodifica hardware e un semplice output H.264 senza HDR, sottotitoli o ridimensionamento. Ripeti quindi il test con il binario FFmpeg dell’applicazione e la selezione effettiva del dispositivo.

La guida ZimaSpace per verificare la transcodifica hardware fornisce il test complementare per dimostrare che il container utilizzi il dispositivo previsto invece di passare silenziosamente al software.

Separa l’elaborazione video AV1 dai problemi del container di distribuzione

Una sorgente AV1 può essere decodificata correttamente, ma non funzionare quando il client richiede la conversione dell’audio, un tipo diverso di segmenti HLS, l’elaborazione HDR o un container di distribuzione che non supporta la combinazione selezionata.

Un problema di Jellyfin Web ha rilevato che la riproduzione AV1 con transcodifica audio non funzionava con una scelta di container HLS, ma funzionava abilitando fMP4-HLS, dimostrando che il container di distribuzione può essere il livello responsabile del problema.

Ripeti il test con un semplice file AV1 SDR, audio compatibile, senza sottotitoli e con output H.264. Aggiungi la conversione audio, il tone mapping HDR, i sottotitoli e il normale profilo del client una variabile alla volta.

Usa il fallback software o un output compatibile solo dopo aver classificato il problema

Se la GPU supporta la decodifica AV1 ma non la codifica, mantieni la decodifica hardware e codifica l’output del client in H.264 o HEVC, quando supportato. Se la decodifica AV1 non è disponibile, la decodifica software può funzionare a risoluzioni inferiori, ma potrebbe essere troppo lenta per il 4K ad alto bitrate.

Anche il supporto del client influisce sull’utilità dell’output AV1. Jellyfin Web ha rilevato profili browser che continuano a selezionare H.264 perché il supporto AV1 del client dipende ancora dal profilo.

La riparazione è completata quando il file AV1 testato utilizza il decodificatore hardware previsto o un fallback software misurato, il codec di output corrisponde al client, la velocità di transcodifica rimane superiore alla riproduzione in tempo reale e le sessioni H.264 continuano a funzionare dopo la modifica specifica per AV1.

Supporto e consigli

Altro da leggere

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.