使用 ffmpeg 将图片合并为视频

我需要合并图片为一个视频。我有很多张图片,像这样的命名:2023-03-24-105322.jpg 2023-03-24-105352.jpg … 也就是(年-月-日-时分秒.jpg) 这样的来命名的。

我可以使用这样的命令:

ffmpeg -pattern_type glob -i '*.jpg' output.mp4

没有指定帧率,默认使用 25 帧。直接使用 * 会将当前目录中的所有 jpg 文件都匹配到。

如果我目录中还有其它图片,不想合并到视频里面,那么也可以这么写:

ffmpeg -pattern_type glob -i '????-??-??-??????.jpg' output.mp4

?通配符表示匹配任意一个字符。

这样合并出来的视频,是一帧一张图片。这样太快了,一秒播放了 25 张图片。我想要它慢一点,可以通过调整帧率来实现。

此时需要使用 -r 参数,设置帧数为 10,这样一秒就只播放 10 张图片。

ffmpeg -r 10 -pattern_type glob -i '????-??-??-??????.jpg' output.mp4

注意要放在 -i 前面。如果放在 -i 后面,会导致跳帧。