GIF 文件:256 色、没有声音,而且仍然躲不开
GIF 为什么这么大、256 色限制对视频做了什么、什么时候该改用 MP4。在浏览器里转换 GIF,不上传。
速览
- 类型
- 图片
- 压缩
- 无损
- 扩展名
- .gif
- MIME 类型
- image/gif
- 别称
- Graphics Interchange Format
GIF 来自 1987 年,它两个决定性的限制直接源于那个年代:每帧最多 256 色,以及完全没有音频轨。色彩限制就是为什么一张照片存成 GIF 会出现色带和抖动噪点——这个格式必须挑出 256 种颜色,再靠混合它们去逼近其余一切,而这在皮肤、天空和渐变上表现为细密的斑点。
展开说明
体积问题是另一回事,而且更严重。GIF 没有运动补偿——那是所有视频编码用来只存「帧间变化」的技术——所以它的体积几乎随时长和画面细节线性增长。一段 30 秒的片子可以比源 MP4 大十倍,这是三十年压缩技术差距在一个文件里的具体体现。
所以从视频做出一个好 GIF,关键几乎全在调色板。映射到固定的网页调色板,就是你见过的那种发浑结果的来源;而先用第一遍针对这个具体片段生成调色板、再用第二遍带抖动地绘制,是本站的做法——这就是「GIF 看起来像那段视频」和「GIF 看起来像它的传真件」之间的全部差别。
实话是:只在别的格式都不被接受的地方才用 GIF——缺陷跟踪系统、部分聊天客户端、邮件、老论坛。大多数曾经只认 GIF 的平台现在都接受视频上传,而同一段内容的 MP4 更小、更清晰,还能带声音。确实需要 GIF 的场合,请控制在几秒、每秒 12 帧、几百像素宽。
把 GIF 转成其他格式
把其他格式转成 GIF
GIF常见问题
为什么我的 GIF 比源视频还大?
因为 GIF 几乎逐帧独立存储,而现代视频编码存的是帧与帧之间的差异。这中间隔着三十年的压缩技术研究。
最长能把多长的片段转成 GIF?
实际上是几秒。一分钟的素材会产出大多数浏览器都难以显示的文件。更长的内容请保持视频形态。
为什么颜色看起来有斑点?
那是抖动——把可用颜色混合起来,去逼近 256 色调色板里没有的颜色。在正常观看尺寸下,这比不做抖动而出现明显色带划算得多。
GIF 有声音吗?
没有,这个格式完全没有音频轨。把视频转成 GIF 会彻底丢掉声音。需要声音请用 MP4 或 WebM。
短片段该用 GIF 还是 MP4?
只要目标接受,就用 MP4——更小、更清晰,还能带音频。只在别的都不被允许的地方用 GIF,而这仍然包括一些缺陷跟踪系统、聊天客户端和邮件。
把 GIF 转成 PNG 或 JPG 会怎样?
只有第一帧会被写出,因为那些格式只装一张图。256 色的色带会被保留而不是修复,因为它现在已是像素的一部分。
帧率和宽度该选多少?
默认每秒 12 帧、宽 480 像素,适合大多数内容。录屏和慢镜头可以降到 8 或 10 fps,那样省下的体积大于看得出的代价。
GIF 支持透明吗?
只支持一个「完全透明」的颜色索引——没有半透明,因此没有柔和边缘。PNG 和 WebP 有真正的 alpha 通道,所以 logo 应该放在那两个格式里。