利用 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