Configurações para ffmpeg para melhor qualidade VP9 para publicação na Web

2

Eu tenho um vídeo no formato Apple ProRes 422 que pretendo codificar para o VP9 do Google para publicação na Web. A fonte é:

Stream #0:0(und): Video: prores (apcn / 0x6E637061), yuv422p10le(bt709), 1920x1080, 114644 kb/s, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 24k tbn, 24k tbc (default)

Meu objetivo é codificá-lo para o VP9 com a melhor qualidade possível (razoável), quase indistinguível do original. O tamanho do arquivo resultante não é uma preocupação real. Agora eu uso o seguinte, mas o vídeo no Chrome parece ruim:

ffmpeg -i Source.mov -c:v libvpx-vp9 -b:v 4M -pix_fmt yuv420p -speed 4 -frame-parallel 0 -threads 2 -c:a libopus -b:a 320K Result.webm

Eu tentei aumentar a configuração de -b:v 4M , o tamanho aumenta, mas a qualidade não. Também tentei este guia , mas provavelmente está desatualizado e não consigo obter nenhum resultado satisfatório. By the way, eu tenho mais recente ffmpeg compilado a partir da fonte.

Quais configurações de ffmpeg devo usar?

    
por TranslucentCloud 17.02.2016 / 21:15

2 respostas

2

Ok, depois de alguns experimentos, descobri que o guia que mencionei na pergunta é bastante útil. Tive sucesso com as instruções da seção Configuração recomendada de qualidade constante , e o que precisou ser ajustado foi a configuração -crf .

Depois de muitos testes, acabei com a configuração -crf 23 , com a qual o arquivo webm do resultado é de muito boa qualidade, comparado ao original.

Os comandos exatos de ffmpeg são:

  1. Primeira passagem:

    ffmpeg -i Source.mov -c:v libvpx-vp9 -pass 1 -pix_fmt yuv420p -b:v 0 -crf 15 -threads 2 -speed 4 -tile-columns 6 -frame-parallel 1 -an -y -f webm /dev/null
    
  2. Segunda passagem:

    ffmpeg -i Source.mov -c:v libvpx-vp9 -pass 2 -pix_fmt yuv420p -b:v 0 -crf 15 -threads 2 -speed 2 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -c:a libopus -b:a 320k -f webm Out.webm
    

Por alguma razão, uma primeira passagem não usa todos os núcleos da CPU (2 no meu caso), apesar da opção -threads 2 , no entanto, uma segunda usa todos eles.

    
por 18.02.2016 / 09:29
2

Você está fazendo uma codificação de 1 passagem na velocidade 4, que são parâmetros rápidos, mas longe da qualidade ideal.

O guia parece bom, você já tentou as configurações de qualidade de duas ou constantes / restrições? Obviamente, não mantenha seu exemplo de 1000k de taxa de bits.

    
por 18.02.2016 / 03:49