Note: This information is based on the FFmpeg Wiki on VP9 encoding. Please refer to that article for more information – it will be continuously maintained and extended. For the best results you should use the a recent version of
ffmpeg
by downloading it from their website (a static build will suffice; it contains thelibvps-vp9
encoder).
Taxa de bits variável
A codificação VBR oferece a melhor qualidade geral, já que o codificador pode escolher livremente quantos bits serão atribuídos a um quadro. Escolha este modo, a menos que esteja preparando vídeos para streaming de taxa de bits constante.
Opção 1: Codificação de qualidade constante
Normalmente, se você não deseja segmentar um tamanho de arquivo específico, deixe a taxa de bits variar livremente, pois isso levará à mais alta qualidade. Você pode fazer isso definindo a taxa de bits como 0 e o fator de taxa constante ( CRF ) para o nível de qualidade alvo:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 output.webm
O valor de CRF pode ser de 0 a 63. Valores mais baixos significam melhor qualidade. Os valores recomendados variam de 15 a 35, sendo 31 recomendados para vídeo em HD de 1080p. O Google tem um guia com mais informações sobre isso .
Opção 2: codificação de duas passagens com uma taxa de bits de destino
Se você deseja que seu arquivo tenha uma taxa de bits de destino específica ou um tamanho de arquivo, é necessário especificar a taxa e usar a codificação de duas passagens (o que garantirá uma distribuição de qualidade ideal). Aqui estamos escolhendo 5 MBit / s, o que deve ser suficiente para o conteúdo de 1080p.
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 5M -pass 1 -f webm /dev/null && \
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 5M -pass 2 output.webm
Os usuários do Windows precisam usar NUL
em vez de /dev/null
e ^
em vez de \
.
Taxa de bits constante
Em primeiro lugar, o libvpx oferece modos de codificação de taxa de bits e bitrate variável constantes . A taxa de bits constante deve ser evitada sempre que possível (a menos que você segmente um tamanho de arquivo específico ou um cenário de streaming), já que a qualidade média por tamanho de arquivo será pior. Ainda assim, você poderia tentar definir uma taxa de bits constante se nada mais funcionar para você, por exemplo com 1 MBit / s:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -minrate 5M -maxrate 5M -b:v 5M output.webm
Observe a saída e aumente ou diminua a taxa de bits ao seu gosto (ou restrições de tamanho de arquivo). Por exemplo, você pode usar 500K
ou 5M
, et cetera.
Você precisa especificar -minrate
, -maxrate
e a taxa de bits -b:v
para que o codificador use CBR. Todos eles têm que ter o mesmo valor - caso contrário, ele escolherá uma taxa de bits de destino diferente e fará a codificação VBR, mas com má qualidade.
Áudio
O codec de áudio atual escolhido para a codificação VP9 é o Opus. O FFmpeg irá escolher o codificador necessário e suas opções por padrão. Se você quiser definir explicitamente -c:a libopus
, também poderá fazer isso. Consulte a libopus
documentação para obter mais opções.