Una situación muy molesta...
Tengo un vídeo MPG2 que tiene una velocidad de fotogramas de 29,97, pero al convertirlo a MP4 los fotogramas se duplican.
Ese comando (conversión directa, sin opciones):
ffmpeg -i ~/Desktop/file.mpg ~/Desktop/file.mp4
provoca fotogramas duplicados...
Al configurar la velocidad de fotogramas con:
ffmpeg -i ~/Desktop/file.mpg -framerate 29.97 ~/Desktop/file.mp4
¡Tampoco funciona!
Llevándome a intentarlo:
ffmpeg -i ~/Desktop/file.mpg -r 29.97 ~/Desktop/file.mp4
¡Aún con fotogramas duplicados!
Finalmente probé el de ffmpeg.3er¡Opción de velocidad de fotogramas!:
ffmpeg -i ~/Desktop/file.mpg -vf fps=fps=29.97 ~/Desktop/file.mp4
Excepto que, cuando salió, ¡el audio/vídeo no estaba sincronizado!
¿Qué opción de FPS debo usar?
Respuesta1
Usar
ffmpeg -i ~/Desktop/file.mpg -vsync 0 ~/Desktop/file.mp4
Esto omite la duplicación.
-vsync passthrough
es sinónimo de -vsync 0
.
Respuesta2
-vsync
está en desuso ahora, por lo que deberías usarlo -fps_mode
en su lugar.
De forma predeterminada, fps_mode
es auto
, por lo que puede cambiar tus fps automáticamente. Por ejemplo, la fuente original tiene una velocidad de fotogramas variable, pero ffmpeg puede decidir cambiarla automáticamente a una velocidad de fotogramas constante, lo que puede dar lugar a fotogramas duplicados y eliminados.
Para evitar cualquier cambio de fps, configure -fps_mode passthrough
. (Es lo mismo que -vsync 0
o -vsync passthrough
).
Para obtener más información, consultedocumentación ffmpeg.
ffmpeg -i ~/Desktop/file.mpg -fps_mode passthrough ~/Desktop/file.mp4