Barret李靖 on X: “分享一个 video 和 gif 互转,以及对 gif 帧率、大小做调整的组合技能,个人使用频度还是挺高的。 1. 将 video 转换成 gif 推荐使用gifski,https://t.co/gI7uDaB0M6,这个工具底层使用 pngquant 做了优化,可以较高压缩但不丢失质量地提取视频每帧内容。使用起来非常简单: gifski –fps 30… https://t.co/ABTyIPGwiS” / X

分享一个 video 和 gif 互转,以及对 gif 帧率、大小做调整的组合技能,个人使用频度还是挺高的。

1. 将 video 转换成 gif

推荐使用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,我之前操作过,失败了,还是转到本地处理比较合适。

我平时更多还是使用线上工具,除非对质量有比较高的要求,或者视频过大,上传非常慢。