Aqui está um exemplo que deve fornecer a você a mais alta qualidade de vídeo (não estou falando sobre o tamanho do arquivo resultante). Tenha em atenção que este vídeo pode não ser reproduzido em todos os dispositivos ou jogadores:
ffmpeg -i MyMovie.mkv -vf scale=-1:720 -c:v libx264 -crf 0 -preset veryslow -c:a copy MyMovie_720p.mkv
Para obter uma qualidade "visualmente sem perdas", você pode usar:
ffmpeg -i MyMovie.mkv -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow -c:a copy MyMovie_720p.mkv
Agora vamos ver o que temos aqui:
O filtro de vídeo em escala é para redimensionar o vídeo. Você acabou de definir um tamanho - que é a altura neste exemplo - e usa -1
para a outra dimensão. O ffmpeg irá recalcular o valor correto automaticamente enquanto preserva a proporção.
Qualidade controlada com a opção -crf
:
The range of the quantizer scale is 0-51: where 0 is lossless, 23 is default, and 51 is worst possible. A lower value is a higher quality and a subjectively sane range is 18-28. Consider 18 to be visually lossless or nearly so: it should look the same or nearly the same as the input but it isn't technically lossless.
The range is exponential, so increasing the CRF value +6 is roughly half the bitrate while -6 is roughly twice the bitrate. General usage is to choose the highest CRF value that still provides an acceptable quality. If the output looks good, then try a higher value and if it looks bad then choose a lower value.
Você pode encontrar mais informações no guia de codificação x264 .
Você controla a compensação entre velocidade de codificação de vídeo e eficiência de compactação com as opções -preset
. Esses são ultra-rápidos, super-rápidos, muito rápidos, rápidos, médios, lentos, mais lentos, mais baixos . O padrão é médio . A opção veryslow oferece a melhor eficiência de compactação (resultando em um tamanho de arquivo menor para a mesma qualidade), mas é muito lenta - como o nome diz.
O áudio será fluxo copiado diretamente do arquivo de entrada para o arquivo de saída sem nenhuma alteração.