ffmpeg 复制帧

ffmpeg 复制帧

非常烦人的情况...
我有一个 MPG2 视频,其帧速率为 29.97,但转换为 MP4 时帧重复。

该命令(直接转换,无选项):
ffmpeg -i ~/Desktop/file.mpg ~/Desktop/file.mp4
导致重复帧...

使用以下方式设置帧速率:
ffmpeg -i ~/Desktop/file.mpg -framerate 29.97 ~/Desktop/file.mp4
也不起作用!

引导我尝试:
ffmpeg -i ~/Desktop/file.mpg -r 29.97 ~/Desktop/file.mp4
仍然有重复帧!

最后我尝试了 ffmpeg 的第三帧速率选项!:
ffmpeg -i ~/Desktop/file.mpg -vf fps=fps=29.97 ~/Desktop/file.mp4

只是,输出时音频/视频不同步!

我应该使用哪个 FPS 选项?

答案1

使用

ffmpeg -i ~/Desktop/file.mpg -vsync 0 ~/Desktop/file.mp4

这样就跳过了重复。

-vsync passthrough是 的同义词-vsync 0

答案2

-vsync现已弃用,因此您应使用-fps_mode

默认情况下,fps_modeauto,因此它可能会自动更改您的 fps。例如,原始源是可变帧速率,但 ffmpeg 可能会决定自动将其更改为恒定帧速率,这可能会导致重复和丢​​失帧。

为了防止任何 fps 变化,请设置。(它与或-fps_mode passthrough相同)。-vsync 0-vsync passthrough

有关详细信息,请参阅For more info, seeffmpeg 文档

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

相关内容