我是linux脚本的新手,我遇到了一个问题,我从网上得到了一个脚本并试图修改。
这是脚本
#!/bin/bash
if (($# ==0))
then
echo "Usage: flvto3gp [flv files] ..."
exit
fi
while (($# !=0 ))
do
ffmpeg -ss 00:00:10 -t 1 -s 400x300 -i $1 -f mjpeg /home/zavids/rawvids/thumbs/$1.jpg
shift
done
echo "Finished"
echo "\"fakap all those nonsense!\""
echo ""
所以我从视频中抓取屏幕截图并将其保存为jpeg。问题是保留了视频文件的扩展名,因此完成的文件是video.flv.jpg(例如)。我怎样才能摆脱那个视频扩展?
答案 0 :(得分:2)
更改此行
ffmpeg -ss 00:00:10 -t 1 -s 400x300 -i $1 -f mjpeg /home/zavids/rawvids/thumbs/$1.jpg
到这个
ffmpeg -ss 00:00:10 -t 1 -s 400x300 -i $1 -f mjpeg /home/zavids/rawvids/thumbs/${1%.*}.jpg
使用bash
参数扩展,在使用它来创建输出文件的名称之前,从输入文件中剥离扩展名。
答案 1 :(得分:0)
你可以尝试使用它:
${string%substring}
它从$ string后面删除$ substring的最短匹配。
对于你的情况:
${1%.flv}
此代码将替换第一个参数末尾的.flv。
您也可以在此处获得大量详细信息:http://tldp.org/LDP/abs/html/string-manipulation.html