La réussite de H.264 prouve que le chemin GPU fonctionne pour H.264, mais elle ne prouve pas que le même matériel prend en charge le décodage, l’encodage, le profil ou la profondeur de bits AV1.
Le transcodage matériel est une chaîne d’opérations propres au codec : décoder la source, appliquer une mise à l’échelle ou un mappage de tonalité, puis encoder dans le format de sortie sélectionné pour le client. Les GPU plus anciens et de génération intermédiaire accélèrent généralement H.264 tout en ne prenant en charge que le décodage AV1 logiciel, le décodage AV1 matériel sans encodage AV1, ou aucun des deux. Commencez par identifier l’étape AV1 qui échoue avant de modifier les paramètres d’accélération globaux.
Déterminez si le décodage AV1 ou l’encodage AV1 échoue
Examinez la commande FFmpeg active et la raison du transcodage. Notez le codec d’entrée, le décodeur matériel, le chemin des filtres, le codec de sortie, l’encodeur matériel et la première ligne d’erreur.
Un serveur peut décoder l’AV1 et encoder en H.264, ou décoder le H.264 et tenter d’encoder en AV1. Il s’agit de capacités différentes. Une discussion sur le matériel Jellyfin présente un système où les chemins AV1 QSV et VA-API étaient non pris en charge par le GPU installé, tandis que d’autres chemins matériels restaient utilisables.
Effectuez un test d’entrée AV1 vers sortie H.264 et un test d’entrée H.264 vers sortie AV1 uniquement lorsque le serveur multimédia propose ces deux choix. Si le premier réussit et que le second échoue, le décodage AV1 est disponible, mais pas l’encodage AV1.
Vérifiez les capacités matérielles selon la direction et le profil du codec
Identifiez la génération exacte du GPU et son ID de périphérique, puis comparez séparément la prise en charge du décodage et de l’encodage. Tenez compte du profil AV1 Main, du 8 bits contre 10 bits, du format de chrominance, de la résolution et du niveau maximal.
La prise en charge d’un codec peut être partielle, même sur des appareils plus récents. Un rapport du pilote Intel media-driver montre que le décodage matériel AV1 échouait sur Tiger Lake alors que le décodage logiciel fonctionnait, ce qui démontre qu’un chemin de code AV1 présent peut tout de même échouer avec une combinaison particulière de noyau et de pilote.
Ne déduisez pas la prise en charge d’AV1 de l’utilisation de H.264, de la famille du modèle de GPU ou d’une case à cocher dans l’application. Confirmez le profil exact de la source et le point d’entrée de sortie demandé par rapport à ce que la pile installée expose.
Lisez les profils de décodage et d’encodage exposés par l’hôte
Exécutez l’outil de capacités de la plateforme sur le périphérique de rendu ou CUDA prévu. Pour VA-API, recueillez la sortie des profils et des points d’entrée ; pour NVIDIA, relevez le pilote installé ainsi que les décodeurs et encodeurs disponibles dans FFmpeg.
L’AV1 peut apparaître pour le décodage, mais pas pour l’encodage, ou un mode d’encodage basse consommation peut nécessiter un firmware dont H.264 n’a pas besoin. Le dépôt media-driver d’Intel indique que le contrôle du débit basse consommation pour AVC, HEVC, VP9 et AV1 peut dépendre de la disponibilité du firmware HuC.
Si l’hôte n’expose pas le point d’entrée AV1 requis, arrêtez-vous au niveau de l’hôte. Modifier les permissions du conteneur ou les paramètres du serveur multimédia ne peut pas créer un bloc de codec que le noyau et le pilote en espace utilisateur ne fournissent pas.
Comparez les versions du noyau, du firmware et du pilote en espace utilisateur
Notez le noyau, le paquet de firmware, le pilote GPU en espace utilisateur, la pile libva ou CUDA, l’environnement d’exécution du conteneur et la version de FFmpeg. H.264 peut rester stable après une mise à jour tandis qu’un chemin AV1 plus récent régresse.
Les premiers déploiements d’Intel Arc ont signalé des échecs de décodage et d’encodage VA-API affectant l’AV1 ainsi que d’autres codecs, jusqu’à la maturation de la pile composée du noyau et du media-driver. Ce cas montre pourquoi la compatibilité de la pile de pilotes est particulièrement importante pour un chemin de codec plus récent.
Comparez les versions actuelles avec la dernière configuration connue comme fonctionnelle et avec la combinaison de paquets prise en charge par la distribution. Évitez de mélanger un nouveau pilote multimédia en espace utilisateur avec un ancien noyau incompatible ou de remplacer individuellement des composants FFmpeg fournis par les paquets.
Testez le même périphérique et la même version de FFmpeg dans le conteneur
Entrez dans le conteneur du serveur multimédia et vérifiez le nœud de rendu ou le périphérique NVIDIA, les groupes numériques, les bibliothèques du pilote et la liste des codecs FFmpeg intégrée. Les capacités de l’hôte ne prouvent pas que le conteneur utilise la même pile.
Exécutez un court échantillon AV1 connu comme fonctionnel avec le décodage matériel et une sortie H.264 simple, sans HDR, sous-titres ni mise à l’échelle. Recommencez ensuite avec le binaire FFmpeg de l’application et la sélection réelle de son périphérique.
Le guide ZimaSpace consacré à la vérification du fonctionnement du transcodage matériel fournit le test complémentaire permettant de confirmer que le conteneur utilise le périphérique attendu au lieu de basculer silencieusement vers le logiciel.
Distinguez le traitement vidéo AV1 des problèmes de conteneur de diffusion
Une source AV1 peut être décodée correctement, mais échouer lorsque le client exige une conversion audio, un autre type de segment HLS, un traitement HDR ou un conteneur de diffusion qui ne prend pas en charge la combinaison choisie.
Un problème Jellyfin Web a montré que la lecture AV1 avec transcodage audio échouait avec un choix de conteneur HLS, mais fonctionnait lorsque fMP4-HLS était activé, ce qui indique que le conteneur de diffusion peut être la couche défaillante.
Refaites le test avec un fichier AV1 SDR simple, un audio compatible, sans sous-titres et avec une sortie H.264. Ajoutez ensuite la conversion audio, le mappage de tonalité HDR, les sous-titres et le profil client habituel, une variable à la fois.
Utilisez un repli logiciel ou une sortie compatible uniquement après classification
Si le GPU prend en charge le décodage AV1, mais pas l’encodage, conservez le décodage matériel et encodez la sortie client en H.264 ou HEVC lorsque ce format est pris en charge. Si le décodage AV1 est absent, le décodage logiciel peut fonctionner pour les résolutions plus faibles, mais être trop lent pour la 4K à haut débit.
La prise en charge par le client influence également l’intérêt d’une sortie AV1. Jellyfin Web a signalé des profils de navigateurs qui continuent de sélectionner H.264, car la prise en charge d’AV1 par les clients reste dépendante du profil.
La réparation est terminée lorsque le fichier AV1 testé utilise le décodeur matériel prévu ou un repli logiciel mesuré, que le codec de sortie correspond au client, que la vitesse de transcodage reste supérieure au temps réel et que les sessions H.264 continuent de fonctionner après la modification propre à l’AV1.
Assistance et conseils
Plus à lire

Pourquoi la restauration d’un volume Docker recrée-t-elle le contenu des fichiers, mais supprime-t-elle les attributs étendus ?
Un diagnostic de restauration de volume couvrant l’inventaire des xattr, les options de tar et de Rsync, les espaces de noms, la prise en...

Pourquoi un conteneur en cours d’exécution conserve-t-il son ancienne limite de mémoire après la modification du fichier Compose ?
Un diagnostic des limites mémoire couvrant les cgroups actifs, le redémarrage par rapport à la recréation, les champs Compose, les limites strictes et souples,...

Pourquoi le redémarrage d’un proxy inverse invalide-t-il toutes les sessions d’une application auto-hébergée ?
Un diagnostic de perte de session couvrant la portée des redémarrages, la propriété des cookies, la rotation des secrets, les sessions adossées au cache,...

