Ubuntu avconv:从图像的子集制作视频
我正试图使用avconv将一组png制作成视频,png的编号类似于Ubuntu avconv:从图像的子集制作视频,ubuntu,video,avconv,Ubuntu,Video,Avconv,我正试图使用avconv将一组png制作成视频,png的编号类似于filename\uu,因此我通常只使用以下命令: avconv-r 10-i文件名\uu%d.png-b:v 1000k test.mp4 我现在想从文件的一个子集filename\u 8-filename\u 50制作一个视频,因此我已将这些文件复制到一个新目录中,并尝试了相同的命令,但现在出现了错误: filename_%d.png: No such file or directory 我想这是因为编号不是从1开始的 如何
filename\uu
,因此我通常只使用以下命令:
avconv-r 10-i文件名\uu%d.png-b:v 1000k test.mp4
我现在想从文件的一个子集filename\u 8
-filename\u 50
制作一个视频,因此我已将这些文件复制到一个新目录中,并尝试了相同的命令,但现在出现了错误:
filename_%d.png: No such file or directory
我想这是因为编号不是从1开始的
如何实现这一点?您可以使用cat连接文件,然后使用image2pipe demuxer在avconv中读取它们。如
cat filename*| avconv-f image2pipe-i-…
avconv -r 10 -start_number 8 -i filename_%d.png -b:v 1000k test.mp4
对于
-start\u number
选项,您需要最新的9.x版本;它不在0.8.x版中。或者,您可以使用的最新版本。或者重命名文件,使其以0到4之间的数字开头,因为默认情况下会检查这些名称。检查此项;根据ffmpeg的说法,这就是他们的做法和工作原理
img1.jpg、img2.jpg、img3.jpg,…
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
请注意,%d
被图像编号替换
img%03d.jpg
表示序列img001.jpg
,
img002.jpg
等img001.jpg
但仍以数字顺序排列。以下
示例将以img100.jpg
开头:
ffmpeg -f image2 -start_number 100 -i img%d.jpg /tmp/a.mpg
/tmp
目录
img001.jpg
,img002.jpg
等等
x=1;
for i in *jpg;
do counter=$(printf %03d $x);
ln -s "$i" /tmp/img"$counter".jpg;
x=$(($x+1));
请注意,在某些版本(我是9.16)中,此选项会被忽略
avconv
在这种情况下不一定报告错误,因为该选项可以解释为其他命令行修饰符的一部分。avconv-r 10-start_number 5-i tt_img_0%04d.jpg-b:v 1000k out.mp4
在我的情况下不起作用:“没有这样的文件或目录”,尽管文件是从tt_img_00005.jpg
mencoder“mf://*.jpg”-mf fps=10-o test.avi-ovc lavc-lavcopts vcodec=msmpeg4v2:vbitrate=800开始出现的,但这一技巧非常完美。