Uma situação muito chata...
Tenho um vídeo MPG2 que está na taxa de quadros de 29,97, mas ao converter para MP4 os quadros são duplicados.
Esse comando (conversão direta, sem opções):
ffmpeg -i ~/Desktop/file.mpg ~/Desktop/file.mp4
causa frames duplicados...
Ao definir a taxa de quadros com:
ffmpeg -i ~/Desktop/file.mpg -framerate 29.97 ~/Desktop/file.mp4
Também não funciona!
Levando-me a tentar:
ffmpeg -i ~/Desktop/file.mpg -r 29.97 ~/Desktop/file.mp4
Ainda com frames duplicados!
Finalmente tentei o ffmpeg3ºopção de taxa de quadros!:
ffmpeg -i ~/Desktop/file.mpg -vf fps=fps=29.97 ~/Desktop/file.mp4
Exceto que, quando foi emitido, o áudio/vídeo estava fora de sincronia!
Qual opção de FPS devo usar?
Responder1
Usar
ffmpeg -i ~/Desktop/file.mpg -vsync 0 ~/Desktop/file.mp4
Isso ignora a duplicação.
-vsync passthrough
é sinônimo de -vsync 0
.
Responder2
-vsync
está obsoleto agora, então você deve usá-lo -fps_mode
.
Por padrão, fps_mode
é auto
, então pode alterar seu fps automaticamente. Por exemplo, a fonte original tem uma taxa de quadros variável, mas o ffmpeg pode decidir alterá-la automaticamente para uma taxa de quadros constante, o que pode resultar em quadros duplicados e perdidos.
Para evitar qualquer alteração de fps, defina -fps_mode passthrough
. (É o mesmo que -vsync 0
ou -vsync passthrough
).
Para mais informações, consultedocumentação do ffmpeg.
ffmpeg -i ~/Desktop/file.mpg -fps_mode passthrough ~/Desktop/file.mp4