ratecontrol de 2 passagens no FFmpeg

0

Eu quero usar o 2pass ratecontrol no modo de 2ª passagem no FFmpeg, mas não sei o comando correto. Eu vi estes foram utilizados -flags , -input_preserved e -pass2 na documentação ffmpeg mas eu não como usá-los (se eu precisar usá-los de qualquer maneira). Alguma idéia?

    
por KLNy 20.03.2016 / 18:07

1 resposta

1

Suponho que você esteja usando a libx264 para codificar o vídeo H.264. O comando mais básico é algo como:

ffmpeg -i input -c:v libx264 -b:v 800k -pass 1 output.mp4
ffmpeg -i input -c:v libx264 -b:v 800k -pass 2 output.mp4

No entanto, pode ser melhorado:

ffmpeg -y -i input -c:v libx264 -preset medium -b:v 800k -an -pass 1 -f mp4 /dev/null
ffmpeg -y -i input -c:v libx264 -preset medium -b:v 800k -c:a aac -b:a 128k -pass 2 -movflags +faststart output.mp4
  • O áudio não precisa ser codificado para o primeiro passo, então -an é adicionado ao primeiro comando de passagem.

  • A primeira passagem não precisa exibir um arquivo de vídeo, portanto, ela é direcionada para /dev/null/ . Usuários do Windows podem usar NUL .

  • 2 passagens com libx264 normalmente são usadas se você estiver direcionando um tamanho de arquivo de saída específico ( file size = bitrate * duration ). Se isso não for do seu interesse, use apenas uma única passagem com -crf .

  • Use o -preset mais lento para o qual você tem paciência.

  • Veja FFmpeg Wiki: Guia de codificação de vídeo H.264 para mais informações, incluindo como obtenha o tamanho do arquivo desejado.

por 20.03.2016 / 18:57

Tags