O que deve verificar quando a transcodificação por hardware H.264 funciona, mas a AV1 não?

Eva Wong é a Redatora Técnica e e entusiasta residente na ZimaSpace. Uma geek de longa data com paixão por homelabs e software de código aberto, ela é especialista em traduzir conceitos técnicos complexos em guias acessíveis e práticos . Eva acredita que o auto-hospedagem deve ser divertida, não intimidante. Através dos seus tutoriais, ela capacita a comunidade adesmistificar configurações de hardware , desde a construção do seu primeiro NAS até dominar os contêineres Docker., from building their first NAS to mastering Docker containers.

O sucesso com H.264 prova que o caminho da GPU funciona para H.264, mas não prova que o mesmo hardware suporta descodificação, codificação, perfil ou profundidade de bits AV1.

A transcodificação por hardware é uma cadeia de operações específicas do codec: descodificar a fonte, aplicar redimensionamento ou mapeamento de tons e codificar o formato de saída selecionado para o cliente. GPUs mais antigas e de gerações intermédias aceleram frequentemente H.264, mas podem suportar apenas descodificação AV1 por software, descodificação AV1 por hardware sem codificação AV1, ou nenhuma das duas. Comece por identificar qual fase do AV1 falha antes de alterar as definições globais de aceleração.

Determine se a descodificação ou a codificação AV1 está a falhar

Inspecione o comando FFmpeg ativo e o motivo da transcodificação. Registe o codec de entrada, o descodificador de hardware, o percurso dos filtros, o codec de saída, o codificador de hardware e a primeira linha de erro.

Um servidor pode descodificar AV1 e codificar H.264, ou descodificar H.264 e tentar codificar AV1. Estas são capacidades diferentes. Uma discussão sobre hardware no Jellyfin inclui um sistema em que os percursos AV1 QSV e VA-API eram não suportados na GPU instalada, enquanto outros percursos de hardware continuavam utilizáveis.

Execute um teste de entrada AV1 para saída H.264 e outro de entrada H.264 para saída AV1, apenas quando o servidor multimédia disponibilizar ambas as opções. Se o primeiro for bem-sucedido e o segundo falhar, existe descodificação AV1, mas não codificação AV1.

Verifique a capacidade de hardware por direção e perfil do codec

Consulte a geração real da GPU e o ID do dispositivo e, em seguida, compare separadamente o suporte para descodificação e codificação. Inclua o perfil AV1 Main, 8 bits versus 10 bits, o formato de croma, a resolução e o nível máximo.

O suporte de codecs pode ser parcial mesmo em dispositivos mais recentes. Um relatório do media-driver da Intel mostra que a descodificação de hardware AV1 falhava no Tiger Lake, enquanto a descodificação por software funcionava, demonstrando que um percurso de código AV1 disponível pode continuar a falhar com uma determinada combinação de kernel e controlador.

Não deduza a capacidade AV1 a partir da utilização de H.264, da família do modelo da GPU ou de uma caixa de seleção da aplicação. Confirme o perfil exato da fonte e o ponto de entrada de saída solicitado, comparando-os com o que a pilha instalada comunica.

Leia os perfis de descodificação e codificação expostos pelo anfitrião

Execute a ferramenta de capacidades da plataforma no dispositivo de renderização ou CUDA pretendido. Para VA-API, recolha o resultado dos perfis e pontos de entrada; para NVIDIA, recolha o controlador instalado e os descodificadores e codificadores disponíveis no FFmpeg.

O AV1 pode aparecer para descodificação, mas não para codificação, ou um modo de codificação de baixo consumo pode exigir firmware que H.264 não exige. O repositório media-driver da Intel indica que o controlo da taxa de bits de baixo consumo para AVC, HEVC, VP9 e AV1 pode depender da disponibilidade do firmware HuC.

Se o anfitrião não expuser o ponto de entrada AV1 necessário, pare na camada do anfitrião. Alterar as permissões do contentor ou as definições do servidor multimédia não pode criar um bloco de codec que o kernel e o controlador de espaço do utilizador não disponibilizam.

-15% OFF

Compare as versões do kernel, do firmware e do controlador de espaço do utilizador

Registe o kernel, o pacote de firmware, o controlador de espaço do utilizador da GPU, a pilha libva ou CUDA, o runtime do contentor e a compilação do FFmpeg. O H.264 pode continuar estável após uma atualização, enquanto um percurso AV1 mais recente regride.

As primeiras implementações do Intel Arc registaram falhas de descodificação e codificação VA-API que afetavam o AV1 e outros codecs, até a pilha envolvente de kernel e media-driver amadurecer. O caso demonstra por que razão a compatibilidade da pilha de controladores é mais importante num percurso de codec mais recente.

Compare as versões atuais com a última configuração conhecida como funcional e com a combinação de pacotes suportada pela distribuição. Evite misturar um novo controlador multimédia de espaço do utilizador com um kernel antigo incompatível ou substituir componentes individuais do FFmpeg fornecidos pelos pacotes.

Teste o mesmo dispositivo e a mesma compilação do FFmpeg dentro do contentor

Entre no contentor do servidor multimédia e verifique o nó de renderização ou dispositivo NVIDIA, os grupos numéricos, as bibliotecas do controlador e a lista de codecs do FFmpeg incluído. A capacidade do anfitrião não prova que o contentor utiliza a mesma pilha.

Execute uma amostra AV1 curta e conhecida como funcional através da descodificação por hardware e de uma saída H.264 simples, sem HDR, legendas ou redimensionamento. Em seguida, repita o teste com o binário FFmpeg da aplicação e a seleção de dispositivo efetivamente utilizada.

O guia da ZimaSpace sobre verificação da transcodificação por hardware apresenta o teste complementar para provar que o contentor utiliza o dispositivo esperado, em vez de mudar silenciosamente para software.

Separe o processamento de vídeo AV1 dos problemas do contentor de entrega

Uma fonte AV1 pode ser descodificada corretamente, mas falhar quando o cliente exige conversão de áudio, um tipo diferente de segmento HLS, processamento HDR ou um contentor de entrega que não suporte a combinação escolhida.

Um problema do Jellyfin Web concluiu que a reprodução AV1 com transcodificação de áudio falhava com uma opção de contentor HLS, mas funcionava quando o fMP4-HLS estava ativado, mostrando que o contentor de entrega pode ser a camada com falhas.

Repita o teste com um ficheiro AV1 SDR simples, áudio compatível, sem legendas e com saída H.264. Adicione a conversão de áudio, o mapeamento de tons HDR, as legendas e o perfil normal do cliente, uma variável de cada vez.

Utilize uma alternativa por software ou uma saída compatível apenas depois da classificação

Se a GPU suportar descodificação AV1, mas não codificação, mantenha a descodificação por hardware e codifique a saída do cliente como H.264 ou HEVC, quando suportado. Se a descodificação AV1 não estiver disponível, a descodificação por software pode funcionar para resoluções mais baixas, mas ser demasiado lenta para 4K com elevada taxa de bits.

O suporte do cliente também influencia a utilidade da saída AV1. O Jellyfin Web tem acompanhado perfis de navegadores que continuam a selecionar H.264 porque o suporte AV1 do cliente continua dependente do perfil.

A reparação está concluída quando o ficheiro AV1 testado utiliza o descodificador de hardware pretendido ou uma alternativa por software medida, o codec de saída corresponde ao cliente, a velocidade de transcodificação se mantém acima do tempo real e as sessões H.264 continuam a funcionar após a alteração específica do AV1.

Suporte e Dicas

Mais para Ler

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.