Answers:
使用ffmpeg 0.11.1就像这样简单:
ffmpeg -f image2 -i %*.png out.avi
在man
页面的“视频和音频文件格式转换”下的示例中:
导入图像序列时,
-i
还支持在内部扩展类似外壳的通配符模式(globbing)。为了降低您的实际文件名和shell的水珠扩张干扰的机会,你是用一个单一的前缀他们需要激活水珠元字符%
的字符,像foo-%*.jpeg
,foo-%?%?%?.jpeg
或foo-00%[234%]%*.jpeg
。
每个注释的更新:在最新版本上,您现在应该使用-i '*.png'
语法。
glob_sequence
模式类型已过时,但glob
图案类型不是。Mulvya和Peter Cordes的答案有效。
Pattern type 'glob_sequence' is deprecated: use pattern_type 'glob' instead
Pattern type 'glob_sequence' is deprecated
...)在Google中的最佳搜索结果:rymo上面的命令(特别是-i %*.png
)会引起警告。要消除它,请使用Peter Cordes答案(-i '*.png'
)中稍有不同的语法。
除了我的评论中的解决方法外,您还应该可以使用ffmpeg 文档中的以下语法:
ffmpeg -f image2 -pattern_type glob -i '*.png' out.avi
引号很重要,您需要ffmpeg来查看*
,而不是让shell对其进行扩展。
*.png
单引号(so '*.png'
)以避免它被Unix样式的shell(例如OSX和linux等)扩展。
从http://www.ffmpeg.org/faq.html:如果您有大量要重命名的图片,则可以使用以下命令来减轻负担。该命令使用bourne shell语法,以'img001.jpg','img002.jpg'等顺序,将与* jpg匹配的当前目录中的所有文件符号链接到'/ tmp'目录。
x=1; for i in *jpg; do counter=$(printf %03d $x); ln -s "$i" /tmp/img"$counter".jpg; x=$(($x+1)); done
seqA-[0001-n].png
,seqB-[0001-n].png
等等。比弄乱image2 globlob和concat过滤器要容易得多。
for i in *jpg
用for i in /full/path/*jpg
,因为所有的符号链接被打破
我实际上会建议穆尔维亚建议的同样的事情。每当处理3D动画渲染时需要执行此类操作时,我都会将文件重命名以使其连续。除非您出于某种原因需要保留文件名,否则在许多不同的软件中使用该方法会更容易。Total Commander还是进行多重重绘的绝佳工具。