ffmpeg Duplicando Quadros

ffmpeg Duplicando Quadros

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 ffmpegopçã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

-vsyncestá 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 0ou -vsync passthrough).

Para mais informações, consultedocumentação do ffmpeg.

ffmpeg -i ~/Desktop/file.mpg -fps_mode passthrough ~/Desktop/file.mp4

informação relacionada