Otimização de hardware com ffmpeg

0

Eu tenho uma caixa do Linux e gostaria de codificar alguns vídeos com o ffmpeg. Eu tenho ouvido que meu processador (um segundo processador gen core i5) tem suporte de hardware para codificação h.264.

É possível fazer com que o ffmpeg use isso e, em caso afirmativo, como?

    
por Jeremy French 04.03.2011 / 16:35

3 respostas

0

Não, não é. O FFMPEG não suporta a tecnologia QuickSync da Intel. Para usar o QuickSync, um programa precisa passar pelo Intel Media SDK, que não está disponível para o Linux.

    
por 04.03.2011 / 18:41
3

A partir de hoje, a tecnologia QuickSync da Intel é suportada no Linux e é exposta por duas formas principais: o VAAPI e o SDK de mídia da Intel.

Quando configurado adequadamente, você obterá os codificadores baseados em QuickSync por meio do Intel MediaSDK, ou seja, h264_qsv e hevc_qsv . Para ver o uso do codificador:

ffmpeg -h encoder=h264_qsv

ffmpeg -h encoder-hevc_qsv

O segundo método, através das APIs do VAAPI, requer que o FFmpeg seja construído com a opção --enable-vaapi passada no estágio ./configure . Este é o padrão em distribuições como Debian e Arch Linux e, como tal, prontamente disponível para uso imediato.

Para listar os codificadores e filtros baseados em VAAPI disponíveis em uma compilação do FFmpeg, execute:

$ for i in encoders decoders filters; do
    echo $i:; ffmpeg -hide_banner -${i} | egrep -i "vaapi"
done

E no uso:

ffmpeg -h encoder=hevc_vaapi 

ffmpeg -h encoder=h264_vaapi

ffmpeg -h encoder=vp8_vaapi

ffmpeg -h encoder=vp9_vaaapi

A partir da lista acima, é óbvio o que cada codificador acima envia o codec de vídeo para a saída, desde H.265 / HEVC até VP9.

O suporte à plataforma varia de acordo com sua plataforma:

(a). A codificação H.264 é suportada desde o Sandybridge (segunda geração de processadores Intel Core) até o presente.

(b). A codificação HEVC é suportada no Skylake e além, com codificação de 10 bits disponível no Kabylake e além.

(c). A codificação VP8 está disponível pelo menos em Broadwell (Gráficos de Processadores Intel Core de 5ª Geração) e além.

(d). A codificação VP9 está disponível pelo menos no Kabylake e acima. Coffelake e além oferecerão codificação VP9 de 10 bits.

Algumas notas adicionais sobre codificação de qualidade:

E agora, pequenas notas sobre o NVENC e ajustes para codificações de alta qualidade:

O Quick Sync Encoder da Intel, como qualquer outro codificador baseado em hardware, tem várias limitações em comparação com um codificador de software puro, como x264 e x265, ou seja, controle de qualidade e uma limitação rígida nos tipos de textura de entrada suportados. Portanto, se você estiver considerando o QuickSync para qualquer fluxo de trabalho profissional, avalie o benefício de desempenho versus a qualidade de codificação perceptual antes de investir nele.

Se você estiver procurando codificações de alta qualidade no VAAPI, certifique-se de estar pelo menos no Haswell (Intel iGPUs de quarta geração), pois essa arquitetura introduziu recursos como o conceito de "Uso de destino" (TU). Esse recurso destina-se a permitir o acesso simples a uma série de gradações sem a complexidade de forçar os usuários a selecionar um método de controle de taxa de bits e taxa. Nas iterações anteriores, embora houvesse tecnicamente sete etapas, apenas três estavam realmente expostas ao consumo: qualidade (TU1), balanceada (TU4) e velocidade (TU7). Isso mudou com o último giro dos gráficos Intel HD, com cada etapa totalmente selecionável e exposta pelo SDK de mídia Intel.

Destacam-se as otimizações mais recentes em relação aos algoritmos de controle de taxa de bits, sendo conceitos notáveis o LA-BRC. Dê uma olhada nisso aqui . Veja esta resposta para mais ponteiros sobre o mesmo.

    
por 15.08.2017 / 11:20
0

x264 aceda ao QuickSync sem utilizar o MediaSDK. Intel chegou a eles e eles se ajudaram mutuamente para conseguir isso (google para x264 QuickSinc). Pode ser possível capitalizar o seu esforço e trazê-lo para ffmpeg ...

    
por 15.06.2011 / 18:09