跳到主要内容

原创实测数据

GIF vs MP4 vs WebP

三段相同测试片,比较文件大小、实测 SSIM、透明、音频与网页播放方式。

统一测试条件

480×270
15fps
5s
ffmpeg 8.0.1

同一素材,三种输出

文件大小直接取自编码产物,单位为 KB。SSIM 越高,表示越接近原视频。

文件大小(KB)

三段标准合成测试片的文件大小实测结果
测试片GIFMP4(H.264)WebP
低运动(gradients)29583911
高运动(mandelbrot)5132423915
细节图案(testsrc2)1248205463

质量 SSIM(越高越接近原视频)

GIF 与 MP4 的 SSIM 实测结果;WebP 未测
测试片GIFMP4WebP
低运动0.8720.998N/A
高运动0.9420.988N/A
细节图案0.9670.994N/A

WebP SSIM 未测,因此只标 N/A,不据此推断质量。

数据直接支持什么?

GIF 体积是 MP4 的 6-75×、是 WebP 的 3-270×。

三段测试中,GIF 的 SSIM 均低于 MP4,文件却更大。

MP4(H.264)在本次测试里同时取得更小体积与更高 SSIM。

WebP 在低运动测试中最小,为 11 KB;另外两段则是 MP4 更小。

方法学与复现边界

结果来自标准合成测试片,不代表每一段真实视频都会得到同样的排序或差距。

测试源

ffmpeg lavfi 的 gradients、mandelbrot、testsrc2,各 5s。

统一输入

全部统一为 480×270、15fps,再分别编码为三种格式。

编码设置

GIF 使用 palettegen/paletteuse 两遍调色板与 bayer dither;MP4 使用 H.264 crf23;动画 WebP 使用 q75。

质量测量

GIF 与 MP4 对原视频测 SSIM。WebP 未测,表中明确记为 N/A。

格式事实参考: MDN image format guide / MDN autoplay guide

格式能力不是同一回事

GIF 与 WebP 是图片格式,MP4 是媒体容器。网页嵌入方式会直接影响自动播放、控件与平台接受度。

格式能力不是同一回事
能力GIFMP4(H.264)WebP
色深256 色索引调色板全彩视频全彩
透明1-bit:完全透明或不透明H.264 MP4 无透明通道Alpha 透明
动画原生图片动画视频播放原生图片动画
音频不支持支持不支持
浏览器/平台内联自动播放直接作为图片嵌入,通常自动播放需要 video 元素或播放器;自动播放受策略限制,通常还要 muted 和 playsInline现代浏览器可直接作为图片嵌入;旧平台兼容性不如 GIF 一致
循环动画内含循环设置由 video 元素或播放器设置动画内含循环设置
本次测试的体积/质量三段均最大;SSIM 均低于 MP4三段均小于 GIF,且 SSIM 更高低运动测试最小;SSIM 未测

怎么选

没有一种格式适合所有投放位置。编码结果与嵌入方式要一起考虑。

优先 MP4

当目标位置接受视频,并且体积与画面还原更重要时,本次数据支持优先考虑 H.264 MP4。它需要 video 元素或平台播放器,带声音的自动播放还会受到浏览器策略限制。

需要透明时看 WebP

动画 WebP 支持全彩与 alpha,在低运动测试中也是最小文件。它是图片式嵌入与现代压缩之间的折中,但旧平台兼容性不如 GIF 一致。

分发摩擦最低时用 GIF

GIF 在这三段测试中又大又糊,原因是 256 色调色板与较弱的 LZW 压缩。不过它能像普通图片一样到处嵌入、自动循环且无需播放器,这种兼容性与使用惯性仍然有价值。

常见问题

MP4 是否总比 GIF 小?

不能从三段测试推广到所有素材。但在本次统一设置的三段测试中,MP4 都比 GIF 小,SSIM 也都更高。

WebP 是否总是最小?

不是。本次低运动测试中 WebP 为 11 KB,是三种格式里最小;高运动与细节图案测试中 MP4 更小。

为什么 GIF 看起来更容易出现色带或抖动?

GIF 每帧使用最多 256 色的索引调色板。全彩视频需要量化与抖动来模拟更多颜色,因此渐变和复杂画面更容易受影响。

为什么 WebP 的 SSIM 是 N/A?

这组原始测试没有测 WebP SSIM。为保持数据边界,页面不补算、不估计,也不添加其他未测质量指标。