利用 FFmpeg 和 ImageMagick, AVI 转 GIF(不失真)


利用[TMPGEnc 4.0 XPress] 或 [TMPGEnc Video Mastering Works 5] 生成 AVI 

这个视频编辑软件,可对每个帧进行操作



1.生成每个帧的 PNG

ffmpeg -y -ss 5 -t 3 -i "01.avi" -s 320x132 -an -f image2 "./png/output_%%05d.png"

    -y        覆盖原有的文件

    -ss       开始位置秒 或 hh:mm:ss[.xxx]

    -t        总时间秒数 或 hh:mm:ss[.xxx] 格式

    -i        输入的视频 

    -s        要生成 png 图片大小

    -an       忽略声道信息

    -f image2 图像文件流合并写入视频帧的图像文件 在win系统中必须[%%]才可以



2.根据 png 生成 GIF(dos命令中有 convert 命令,所以convert.exe 改名为 iconvert.exe)

iconvert -quiet -delay 3 ./png/*.png -resize 190x94 -ordered-dither o8x8,23 +map out_od2.gif

    -quiet    抑制所有警告消息

    -delay    gif 帧之间延时时间,单位毫秒[这个选项必须在输入文件名前面时才有效]

    -resize   调整 gif 大小

    -ordered-dither 使用一个统一的颜色通道,减小 gif 文件大小

    例子中这样生成的 gif 大小为 (795,001 字节)



3.生成 gif 进行优化

iconvert out_od2.gif  -layers OptimizeTransparency +map out_opt.gif

    -layers   OptimizeTransparency 使用透明颜色,减少 gif 文件大小

    例子中优化后 gif 大小为 (633,112 字节)



注:	

也可以以下命令	

iconvert -delay 3 ./png/*.png -resize 190x94 -layers optimize out_od1.gif

    例子中这样生成的 gif 大小为 (733,827 字节)

iconvert out_od1.gif  -layers OptimizeTransparency +map out_opt1.gif

    例子中优化后 gif 大小为 (628,188 字节)

	

或者直接使用avi->gif

    convert -quiet -delay 3 01.avi -ordered-dither o8x8,23 +map out_od2.gif

利用png生成gif时,操作比较麻烦,但是对不需要的帧图进行删除;

直接avi->gif操作简单,但是还需要第三方软件进行编辑;

Download ImageMagick 
ImageMagick help 
ImageMagick Usage help 
ImageMagick convert help
Download ffmpeg 
ffmpeg help

你可能感兴趣的:(ImageMagick)