跳到主要内容
GifSmaller

为什么 GIF 文件这么大?

阅读约 2 分钟

一段三秒的 GIF 比一分钟的视频还大,这很常见。原因在于这个格式太老了。

这个格式诞生于 1987 年

GIF 最初是为低速网络上的静态图片设计的,动画是后来才加上的,而它一直没有获得现代的压缩手段:

  • 简单的 LZW 压缩。 每一帧单独用通用算法压缩,而不是专为图像设计的算法;
  • 没有运动预测。 视频编码会描述画面块如何在帧之间移动,GIF 做不到,只能存储变化的像素;
  • 每帧最多 256 色。 实拍画面需要抖动(dithering)来模拟更多颜色,而抖动噪点很难压缩;
  • 每个像素都要精确存储。 没有“差不多就行”的概念,除非使用有损压缩。

是什么让某个 GIF 特别大

因素 对体积的影响
尺寸 随像素面积增长:宽高各翻倍,体积约为 4 倍
帧数 大致与时长 × 帧率成正比
镜头移动 每帧所有像素都在变,什么都省不掉
噪点和抖动 杂乱的像素很难压缩
纯色、静止背景 压缩效果非常好

一段界面基本不动的录屏可以很小;同样时长的手持手机视频却可能非常大。

怎样把它变小

  1. 无损优化,只保留变化的像素;
  2. 轻度有损压缩,容忍细微差异;
  3. 缩小尺寸到实际显示的大小;
  4. 能的话剪短或降低帧率。

GifSmaller 会按顺序自动执行前三步,直到 GIF 达到你的目标。详见 如何把 GIF 变小。

什么时候不该用 GIF

如果目标平台支持视频(大多数社交平台都支持,X 也会把 GIF 转成视频),MP4 通常小得多、画质也更好。GIF 更适合它擅长的场景:表情、聊天反应图、README、文档和邮件,在哪里都能直接播放,不需要播放器。

用你的 GIF 试试

在浏览器里压缩,免费,不上传任何文件。

打开压缩工具

常见问题

为什么 GIF 比同样内容的视频大?

H.264 等视频编码会预测帧与帧之间的运动,压缩效率高得多;GIF 只能用 LZW 存储每一帧(或变化的区域),同样的内容需要多得多的数据。

应该用 MP4 或 WebP 代替 GIF 吗?

平台支持的话,视频或动态 WebP 通常小得多。但在表情、聊天软件、邮件和文档里,GIF 仍是兼容性最好的选择。

GIF 能压缩多少?

取决于内容。无损优化通常省 10%–40%;再加上有损压缩和缩放,可以减小 80%–95%。