FFmpeg: Mantendo a qualidade durante a conversão

FFmpeg: Mantendo a qualidade durante a conversão

Possível duplicata:
Converta AVI para MP4 mantendo a mesma qualidade

Gostaria de converter uma boa quantidade de arquivos wmv, mpg e avi (com diferentes codificações de áudio e vídeo) para mp4/x264/aac com qualidade equivalente. Fiz alguns testes com o seguinte comando:

ffmpeg.exe -i "test.avi" -c:v libx264 -c:a libvo_aacenc "test.mp4"

(Como você pode ver, omiti opções que especificam a taxa de bits e a qualidade do áudio e do vídeo)

Usando este comando, o FFmpeg preserva automaticamente as dimensões do vídeo, mas ainda não tenho certeza de como ele lida com coisas como taxa de bits quando elas são omitidas. Qual é a melhor maneira de manter a qualidade de um vídeo ao convertê-lo para um formato e codec diferente?

Estou usando o Windows 7 de 64 bits e ffmpeg-20121230-git-518239c-win64-shared

Responder1

O FFmpeg define a -crfopção como 23 por padrão.

Tentar:

ffmpeg.exe -i "test.avi" -c:v libx264 -crf 20 -c:a aac -strict -2 "test.mp4"

OCRFopção define a qualidade da codificação. A taxa de bits variará conforme necessário para fornecer uma qualidade consistente em todo o vídeo. 51 sendo o pior e 0 sendo o melhor – sem perdas.

Costumo definir todas as minhas codificações para 20, que é o padrão do Handbrake e estou satisfeito com a qualidade. Sugiro brincar com esse valor para encontrar um nível de qualidade que seja aceitável para você.

Você pode querer usar as opções -sse -tpara criar codificações de teste curtas. -sssendo a hora de início e -ta duração - ambas em segundos. Você provavelmente não precisa codificar o vídeo inteiro para determinar o que é aceitável.

Para criar um clipe de 1 minuto começando com 1 minuto de vídeo:

ffmpeg.exe -i "test.avi" -c:v libx264 -crf 20  -c:a aac -strict -2 -ss 60 -t 60 "test.mp4"

informação relacionada