效果如下
![]()
命令为
video-gif2.sh 1.avi 0 9 210 250 360 70
--------------------------------------------------------------------
[014目录结构]
--------------------------------------------------------------------
.
|-- book-2008-08-27
|-- install.sh
|-- readme
`-- video-gif2.sh
0 directories, 4 files
--------------------------------------------------------------------
[./readme]
--------------------------------------------------------------------
程序名称:
制作视频gif(2)
程序功能:
生成视频预览文件video-100.jpg及其3个缩略图于pics-`date '+%F'`内
安装方法:
./install.sh
使用说明:
1.video-gif2.sh
运行:
video-gif2.sh 目标视频文件 开始秒数 结束秒数 截屏后的图片宽 截屏后的图片宽 相对屏幕位移x 相对屏幕位移y
注意:
1.
程序运行前会删除当前目录的jpg后缀文件
2.
gif文件会比较大
--------------------------------------------------------------------
[./video-gif2.sh]
--------------------------------------------------------------------
#!/bin/sh
gifdir="pics-`date "+%F"`"
fileframes=
filesize=
filetotalframes=
framenums=
makeseconds=
begin=0
end=
info="程序异常退出!"
if [ $# -gt 7 ] ; then
echo "usage: video-gif2.sh video_file_name begin_seconds end_seconds cut_weight cut_height cut_from_x cut_from_y"
exit 1
fi
if [ $# -ge 1 ] ; then
if [ ! -e $1 ] ; then
echo "$1不存在于当前目录"
echo "$info"
exit 1
fi
fi
fileframes=`mplayer -identify "$1" -nosound -vc dummy -vo null | grep ID_VIDEO_FPS | sed -n -e 's/ID_VIDEO_FPS=\(.*\)\..*$/\1/p'`
filesize=`mplayer -identify "$1" -nosound -vc dummy -vo null | grep ID_LENGTH | sed -n -e 's/ID_LENGTH=\(.*\)\..*$/\1/p'`
end=$filesize
makeseconds=$(($3-$2+1))
framenums=$(($makeseconds*$fileframes))
filetotalframes=$(($fileframes*$filesize))
if [ $# -ge 2 ] ; then
begin=$2
fi
if [ $# -ge 3 ] ; then
end=$3
fi
echo "删除当前目录jpg后缀文件"
rm -f *.jpg
if [ -e "$gifdir" ] ; then
echo "删除当前文件夹的子目录$gifdir"
rm -f -R "$gifdir"
fi
echo "创建文件夹$gifdir"
mkdir "$gifdir"
mplayer -ss 0 -noframedrop -nosound -vo jpeg -frames $framenums "$1"
if [ $# -gt 3 ] && [ $# -lt 7 ] ; then
echo "截图功能不启动"
fi
if [ $# -eq 7 ] ; then
echo "截取当前目录所有jpg文件"
for name in *.jpg
do
#[root@localhost temp]# convert -crop 210x250+360+70 5.jpg 5.jpg
convert -crop $4x$5+$6+$7 "$name" "$name"
done
fi
echo "开始制作gif文件到$gifdir"
echo "开始制作video-100.gif"
convert `ls *.jpg | sort -n` "$gifdir"/video-100.gif
echo "开始制作video-25.gif"
convert -resize %25x%25 "$gifdir"/video-100.gif "$gifdir"/video-25.gif
echo "开始制作video-50.gif"
convert -resize %50x%50 "$gifdir"/video-100.gif "$gifdir"/video-50.gif
echo "开始制作video-75.gif"
convert -resize %75x%75 "$gifdir"/video-100.gif "$gifdir"/video-75.gif
echo "[加工信息]"
echo "开始时间: $begin s 结束时间: $end s 总时间: $makeseconds s 输出总帧数: $framenums"
echo "[视频信息]"
echo " $1片长: $filesize s 每秒帧数: $fileframes 总帧数: $filetotalframes"
rm -f *.jpg
echo "程序结束!"
exit 0
--------------------------------------------------------------------
[./install.sh]
--------------------------------------------------------------------
#!/bin/sh
info="安装文件缺失,安装过程中断!"
name="制作视频gif(2)"
installdir="/usr/local/bin/"
if [ ! -e video-gif2.sh ] ; then
echo "$info"
exit 1
fi
chmod +x video-gif2.sh
cp video-gif2.sh "$installdir"
echo "$name安装成功!"
exit 0
--------------------next---------------------