使用 ffmpeg 进行幻灯片放映会导致文件卡顿、无法搜索、长度不正确

使用 ffmpeg 进行幻灯片放映会导致文件卡顿、无法搜索、长度不正确

我用来ffmpeg在视频中显示不同时长的图像:

(命令取自本示例

ffmpeg -f concat -i input.txt -vsync vfr -pix_fmt yuv420p output.mp4

大致input.txt如下:

file '/path/to/im1.png'
duration 123
file '/path/to/im2.png'
duration 234
file '/path/to/im3.png'
duration 235
file '/path/to/im4.png'
duration 400
file '/path/to/im4.png'

mpv生成的文件在、Movies and TV(windows) 和 中播放时出现问题VLC。我凭直觉ffmpeg再次运行了文件,看看是否可以“修复”输出文件(使用的命令ffmpeg -i in.mp4 out.mp4:)。out.mp4比 大得多in.mp4(大约一个数量级),但播放流畅,正确显示进度,并且能够正确查找。这可能是什么原因造成的?

答案1

使用此-vsync vfr标志,ffmpeg 将在时间 0、123、357 等处插入图像,中间没有帧。视频播放器通常处理相邻帧相隔几厘秒的流,因此其缓冲/缓存系统是根据这一预期设计的。如果持续时间为个位数秒,您可以使用 VFR 模式,但这里不行。我建议使用低帧率的 CFR 模式。

所以,

ffmpeg -f concat -i input.txt -vsync cfr -r 2 -pix_fmt yuv420p output.mp4

相关内容