推荐使用gifski,
gif.ski,这个工具底层使用 pngquant 做了优化,可以较高压缩但不丢失质量地提取视频每帧内容。使用起来非常简单:gifski –fps 30 –width 320 -o anim.gif video.mp4
fps 是帧率,width 是宽度,关键是导出速度快的惊人,瞬间出来。这个命令同样也适用于对 gif 做调整,将 video.mp4 更换成 gif 原图即可:
gifski –fps 10 –width 180 -o output.gif anim.gif
它还有一个强大的功能,就是将多张图片转换成 gif,给孩子拍照后只做 gif 图片时,用的比较多:
gifski -o file.gif barret*.png
它有一个对应的非官方 GUI 客户端可供使用,Gifski,
github.com/sindresorhus/G
2. 将 gif 转换成 video
ffmpeg 是一个跨平台的针对 video/audio 进行录制、转换和处理的强大工具,使用非常广泛,它支持多种方式对视频进行截取,例如截取 START_TIME 开始长度为 DURATION 的视频片段:
ffmpeg -i input.mp4 -ss START_TIME -t DURATION -c copy output.mp4
事实上,ffmpeg 也支持将 video 转换成 gif,将 -c 参数修改成下方的 -vf 即可,相比上面的 gifski 压缩效果没那么好
ffmpeg -i input.mp4 -ss START_TIME -t DURATION -vf “fps=10,scale=320:-1” output.gif
同样也有一个非官方客户端,Axiom,github.com/MattMcManis/Ax,这个客户端还内置了 Youtube Downloader,可以直接将油管视频下载下来进行处理。
3. 在线工具推荐
ezgif,ezgif.com/video-to-gif,是一个功能强大的 gif 工具集,一般性的需求都可以满足,复杂点的需求例如合并多个 gif,我之前操作过,失败了,还是转到本地处理比较合适。
我平时更多还是使用线上工具,除非对质量有比较高的要求,或者视频过大,上传非常慢。