ffmpeg 中的图像序列处理

ffmpeg 中的图像序列处理

我需要转换具有未编号名称的图像文件夹,例如:

11.49.18.204.jpg
11.49.28.205.jpg
11.49.38.220.jpg
11.49.48.220.jpg
11.49.58.235.jpg
11.50.08.250.jpg

FFMPEG仅接受编号输入。原始文件名对我来说很重要。我计划将它们叠加在视频源上。我想我需要使用带有文本叠加选项的 SRT 字幕输入。

我想知道如何才能实现这个功能。

例如,这将不起作用

ffmpeg -i *.jpg

答案1

好的,显然 FFMPEG 支持名称通配符,来自ffmpeg.org/wik

ffmpeg 还支持 bash 风格的通配符(* 代表任意数量的任意字符)。如果您的图像是连续的,但不一定像前面的示例那样按数字顺序排列,则此功能很有用。

ffmpeg -framerate 1 -pattern_type glob -i '*.jpg' -c:v libx264 out.mp4

答案2

如果您使用的是 Unix/Linux,此 bash 脚本行会将图像文件目录重命名为一系列可与 ffmpeg 配合使用的连续名称。基本上,它会在内存中创建一个包含所有现有文件名的缓冲区,然后循环遍历每个名​​称,将它们移动到一个递增编号的名称(在同一目录中)。

x=1; for i in *jpg; do counter=$(printf %03d $x); mv "$i" img"$counter".jpg; x=$(($x+1)); done

相关内容