我的文件名为alice.png
,bob.png
,charlie.png
(有数百个),我想制作视频。我尝试的是
avconv -i alice.png -i bob.png -i charlie.png -r 25 -b:v 12M -y out.mp4
但是我只是在电影中拍摄了第一张图像,其余部分被忽略了。
有很多教程如何使用-i %03d.png
和类似的通配符,但有没有办法没有它们,在命令行上传递这些文件? mencoder
有mf://alice.png,bob.png,charlie.png
选项,所以我正在寻找类似的东西。
将文件名写入外部文件也可以。
答案 0 :(得分:0)
为了做到这一点,你需要先生成硬链接,然后再删除它们。没有这种方法,就没有办法做你想做的事。
执行以下操作:
ln -t DIR file1 file2 file3 ...
sequential-rename
脚本(见下文)<强>逐次重命名强>
#!/bin/sh
# Sequential rename - rename screen shot images sequentially
#http://www.askdavetaylor.com/sequentially_rename_files_linux_mac_script.html
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
if [ $# -ne 1 ] ; then
echo "Usage: $(basename $0) replacement-pattern-"
exit 1
fi
pattern="$1"
count="1"
for filename in $(ls * | sort)
do
if [ $count -eq 1000 ]; then
eval "rename \"s/^$pattern(\\\\d\\\\d\\\\d)\\\\.jpeg/${pattern}0\\\\1.jpeg/g\" $pattern???.jpeg"
fi
if [ $count -eq 100 ]; then
eval "rename \"s/^$pattern(\\\\d\\\\d)\\\\.jpeg/${pattern}0\\\\1.jpeg/g\" $pattern??.jpeg"
fi
if [ $count -eq 10 ]; then
eval "rename \"s/^$pattern(\\\\d)\\\\.jpeg/${pattern}0\\\\1.jpeg/g\" $pattern?.jpeg"
fi
newname="${pattern}${count}.jpeg"
echo "renaming \"$filename\" to $newname"
mv "$filename" "$newname"
count=$(( $count + 1 ))
done
IFS=$SAVEIFS
exit 0