制作更好的 GIF: 另一种更好的办法
2014年3月25日
之前使用 FFmpeg 制作 GIF 被 zyo 吐槽 明显的网纹,于是找到了更好的办法。
需要:FFmpeg 以及 ImageMagick。
依旧不讨论如何截取/剪裁视频文件的问题。例如我们这里要转换的视频文件为 clip.mp4
,首先使用 ffmpeg 转换成一个个的 PNG 文件,保持纵横比,宽为320像素,帧率为20。为防止文件名混乱,先建立一个 png
目录。
1 | mkdir -p png |
接下来使用 ImageMagick 的 convert
工具来把 png 连接成 gif。顺便做优化来缩小文件体积。
1 | convert -layers Optimize png/output*.png clip.gif |
这样就得到了图象效果更好的 clip.gif
文件了。不过还有一个问题,不管是本地图象查看器还是浏览器里,这gif都像幻灯片似的。本来觉得是帧率的问题,但是就算是尝试了原帧率一样不行。Google 之发现了问题…
解决方案在这里。不使用 -delay 0
或者是大于 6/100
的值。
所以刚才的命令可以稍微修改下。几次测试后发现对于我的原视频(23fps),4/100
最合适。
1 | convert -layers Optimize -delay 4/100 png/output*.png clip.gif |
这样制作出来的 gif 效果就非常赞啦。虽然比之前多了一个步骤,但是确实是制作了更好的gif,是更好的方法。