Chinaunix首页 | 论坛 | 博客
  • 博客访问: 687006
  • 博文数量: 771
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4910
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-18 11:35
文章分类

全部博文(771)

文章存档

2011年(1)

2008年(770)

我的朋友

分类:

2008-09-18 11:37:03

效果如下


命令为
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---------------------

阅读(1204) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~