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.
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

Perché il ripristino di un volume Docker ricrea il contenuto dei file, ma elimina gli attributi estesi?
Una diagnosi del ripristino del volume che copre l’inventario degli xattr, le opzioni di tar e Rsync, gli spazi dei nomi, il supporto della...

Perché un container in esecuzione mantiene il vecchio limite di memoria dopo la modifica del file Compose?
Una diagnosi dei limiti di memoria che copre i cgroup attivi, il riavvio rispetto alla ricreazione, i campi di Compose, i limiti rigidi e...

Perché il riavvio di un proxy inverso invalida ogni sessione per una determinata app self-hosted?
Una diagnosi della perdita di sessione che copra l’ambito dei riavvii, la gestione dei cookie, la rotazione dei segreti, le sessioni basate sulla cache,...

