如何为ffmpeg提供多个输入?

tom*_*m89 5 video photos ffmpeg command-line

我正在使用 ffmpeg 创建延时摄影,效果很好。作为输入,我有名为 001.jpg、002.jpg 等的图像,然后使用命令

ffmpeg -i %3d.jpg -sameq -s 1440x1080 video.mp4
Run Code Online (Sandbox Code Playgroud)

我制作视频。但是当我想使用多组作为输入创建视频时,我的问题就出现了。例如,我在一个目录中,其中有两个文件夹 set1 和 set2,每个文件夹中都包含前面解释过的格式的照片。

我已经尝试过

ffmpeg -i ./set1/%3d.jpg -i ./set2/%3d.jpg -sameq -s 1440x1080 video.mp4
Run Code Online (Sandbox Code Playgroud)

但它最终只使用第一组来制作视频。是否有捷径可寻?

谢谢!

小智 1

您需要使用 concat 模块,在本示例中,我将帧速率设置为 10,您必须使用 filter_complex 。

ffmpeg -framerate 10 -i set1_%04d.jpg \
       -framerate 10 -i set2_%04d.jpg \
       -framerate 10 -i set3_%04d.jpg \
       -filter_complex '[0:0] [1:0] [2:0] concat=n=3:v=1:a=0 [v],[v] fps=10 [vv]' \
       -map '[vv]' -s 1440x1080 video.mp4 
Run Code Online (Sandbox Code Playgroud)

有关filter_complex语法的文档: http://ffmpeg.org/ffmpeg-filters.html#Filtergraph-syntax-1

有关concat过滤器的文档: http://ffmpeg.org/ffmpeg-filters.html#concat