![ffmpeg 复制帧](https://linux22.com/image/1542506/ffmpeg%20%E5%A4%8D%E5%88%B6%E5%B8%A7.png)
非常烦人的情况...
我有一个 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_mode
是auto
,因此它可能会自动更改您的 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