录屏转 GIF 文件太大?这样压到 1MB 以内
一、问题:录屏转出来的 GIF 怎么这么大
写文档、提 Issue、做产品介绍的时候,经常要把一小段录屏转成 GIF 贴上去。
GIF 的好处是不用点播放,鼠标一划过就能看到效果。
麻烦在体积。我之前随手找了个在线网站转,一段 10 秒的录屏,转出来居然有 5MB 左右。
这种大小往群里一发,别人加载半天出不来,IM 工具还可能直接给你压成马赛克。
目标很明确:免费、好上手、转出来的 GIF 尽量小,最好控制在 1MB 以内。
二、为什么 GIF 会这么大
先搞清楚原因,后面调参数才有方向。
GIF 的体积主要由这几个因素决定:
- 帧率(fps):帧越多文件越大。很多录屏是 30fps 甚至 60fps,但 GIF 做演示根本不需要这么流畅。
- 分辨率:1920×1080 的录屏直接转,体积会爆炸。
- 时长:每多一秒就多十几帧。
- 画面复杂度:GIF 每帧最多 256 色,画面变化越剧烈、颜色越杂,压缩率越低。
说白了,在线网站转出来大,多半是因为它默认保留了原始帧率和分辨率,没帮你做减法。
知道这点,下面几种方法本质上都是在动这几个旋钮。
三、方法一:uTools 的 GIF 插件(最省事)
如果你只是偶尔转一下,不想记命令行参数,这个最快。
uTools 是个跨平台的效率工具箱,免费,插件全在里面装。
操作就两步:
- 下载安装 uTools,打开后在插件市场搜
gif,安装 GIF 插件。 - 唤起 uTools,输入
gif进插件,把录屏拖进去,选好参数导出。
我自己那段 10 秒录屏,用它适当降了帧率和分辨率,最后压到了不到 1MB,画质看演示完全够用。对非技术的同事来说,这个方案基本零门槛。
它的短板也有:批量转、或者想精细控制每个参数的时候,GUI 就没那么灵活了。
这时候该上命令行了。
四、方法二:ffmpeg(免费、可控、能压到极致)
ffmpeg 是开源的音视频处理瑞士军刀,转 GIF 想压到多小基本都能调出来。
它的关键技巧是 两遍法:先生成一张专属调色板,再用这张调色板转,画质明显比直接转好,体积也更可控。
## 第一步:根据视频内容生成调色板
ffmpeg -i input.mp4 -vf "fps=12,scale=640:-1:flags=lanczos,palettegen" palette.png
## 第二步:用调色板转 GIF
ffmpeg -i input.mp4 -i palette.png \
-filter_complex "fps=12,scale=640:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif几个参数解释一下:
fps=12:帧率降到 12,演示类录屏基本看不出卡顿,体积能省一大截。觉得不够顺就提到 15。scale=640:-1:宽度缩到 640,高度按比例自动算(-1)。这是压体积最狠的一刀。flags=lanczos:缩放算法,画面更清晰。
我一开始嫌麻烦只用一条命令直接转,结果颜色发灰、噪点一堆。换成两遍法之后画质立马正常了,这步别省。
五、方法三:gifski(画质优先)
如果你对画质要求高,又想保持小体积,gifski 值得一试。它是 Rust 写的开源工具,专门做高质量 GIF,靠的是逐帧选最优调色板。
它不直接吃视频,得先把视频拆成帧(还是用 ffmpeg),再喂给 gifski:
## 先把视频抽成 PNG 帧
ffmpeg -i input.mp4 -vf "fps=12,scale=640:-1" frame%04d.png
## 再用 gifski 合成
gifski -o output.gif --fps 12 --quality 80 frame*.png--quality 默认 90,调到 80 左右体积和画质比较平衡。gifski 出来的画质通常比 ffmpeg 直转更细腻,代价是步骤多一点、转得稍慢。
六、几种方法怎么选
| 方法 | 上手难度 | 体积控制 | 画质 | 适合谁 |
|---|---|---|---|---|
| uTools GIF 插件 | 很低 | 中 | 中 | 偶尔转、不想碰命令行 |
| ffmpeg 两遍法 | 中 | 强 | 较好 | 想精细控制、要批量 |
| gifski | 中 | 强 | 最好 | 对画质有要求 |
我现在的习惯:临时贴个图用 uTools,正经放文档里就 ffmpeg 走一遍两遍法。
七、压缩 GIF 的通用思路
不管用哪个工具,想让 GIF 更小,无非动这几个旋钮,按效果排序:
- 降分辨率——压体积最有效,宽度砍到 600~800 通常就够看。
- 降帧率——10~15fps 对演示足够,别傻乎乎留着 30fps。
- 剪时长——前后多余的画面切掉,能短就短。
- 减颜色——画面允许的话,调色板从 256 色降到 128 甚至 64。
先动前两个,往往就能从几兆压到 1MB 以内了。
八、常见问题(FAQ)
转出来的 GIF 颜色发灰、有噪点怎么办?
多半是直接单遍转的。
改用 ffmpeg 的两遍法(先 palettegen 再 paletteuse),用专属调色板,颜色就正常了。
帧率降到多少合适?
演示类录屏 10~15fps 就够,肉眼基本看不出卡。
低于 10fps 才会有明显的顿挫感。
在线工具和 uTools 插件哪个好?
在线工具不用装东西,但很多默认不帮你降参数,转出来偏大,还有上传隐私顾虑。
uTools 插件在本地处理,参数也能调,日常更推荐。
一定要用命令行吗?
不一定。
只是偶尔转,uTools 这类带界面的工具完全够用。
只有在要批量处理、或者想把体积压到极限时,ffmpeg、gifski 才更有优势。
Mac 和 Windows 上都能用吗?
可以。
uTools、ffmpeg、gifski 三者都是跨平台的,Windows、macOS、Linux 都有对应版本。
九、小结
录屏转 GIF 体积大,根子在帧率和分辨率没做减法。
想省事就用 uTools 的 GIF 插件,想压到极致就上 ffmpeg 两遍法,追求画质再考虑 gifski。
如果你有更好用的工具或者更狠的压缩参数,欢迎在评论区交流~~~
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!
本文原文链接: https://fiveyoboy.com/articles/video-to-gif-smallest-size/
备用原文链接: https://blog.fiveyoboy.com/articles/video-to-gif-smallest-size/