前言 #
在上一篇中,我介绍了 AVIF 格式以及它的使用方法。当时觉得这是一个非常有潜力的图片格式,压缩率很高,画质也很好。但在实际把博客图片替换为 AVIF 之后,我发现了不少兼容性问题,最终还是决定换回 WebP。
这篇就来聊聊我为什么要换回 WebP。
兼容性问题 #
先看 AVIF 在 Can I use 上的兼容性数据。

可以看到,Edge 浏览器从 121 版本才开始支持 AVIF,而这个版本 2024 年才发布。虽然写这篇文章时已过去半年,但应该还有很多人没有更新到最新版浏览器。更麻烦的是手机端,大部分移动浏览器也是刚刚支持。比如 QQ 浏览器,如果在 QQ 或微信中打开博客,很有可能看不到图片。虽然我的博客图片并不多,但这也很影响阅读体验。
其次是设备对 AV1 硬件解码的支持。在维基百科中可以查看各 CPU 和 SoC 的支持情况,这里列出一些常见的:
PC 端 #
Intel #
- 11 代及以后:从第 11 代 Tiger Lake 处理器开始,Intel 集成了 AV1 硬件解码支持。
AMD #
- Ryzen 6000 系列及以后:基于 Zen 3+ 架构,开始支持 AV1 硬件解码。
Apple Silicon #
- M3 及以后:M3、M3 Pro、M3 Max 开始支持 AV1 硬件解码1。
移动端 #
Qualcomm #
- 从 Snapdragon 888 开始支持 AV1 硬件解码。
iOS #
- 从 A17 Pro 开始支持 AV1 硬件解码2。
吐槽 #
苹果果然是牙膏厂,2023 年底发布的芯片才支持 AV1 硬件解码。虽然可以通过软件解码来弥补,但前提是系统或浏览器已经更新支持。在不支持硬解的设备上走软件解码,会导致 CPU 占用过高、设备发热,在性能较弱的旧设备上还会出现卡顿。
WebP 介绍 #
WebP3 是由谷歌开发的一种图片格式,旨在加快图片加载速度。它的核心优势是体积更小,在质量相同的情况下,WebP 格式图像的体积比 JPEG 小约 40%,大约只有 JPEG 的三分之二,可以节省大量的服务器带宽和存储空间。
同样在 Can I use 查看 WebP 的支持情况。

相比 AVIF,WebP 的支持广泛得多。除了早已被微软放弃的 IE 浏览器(应该没有人在用了吧),主流浏览器全部支持。而且 WebP 已经存在多年,生态成熟,使用它基本不用担心兼容性问题。
如何将图片转换为 WebP 格式 #
使用 FFmpeg4 即可完成转换:
# JPEG → WebP
ffmpeg -i input.jpg output.webp
# PNG → WebP
ffmpeg -i input.png output.webp调整输出质量,使用 -qscale 参数(0–100,值越大质量越高,文件也越大):
ffmpeg -i input.jpg -qscale 75 output.webp调整压缩级别,使用 -compression_level 参数(0–6,值越大压缩率越高,速度越慢):
ffmpeg -i input.jpg -compression_level 4 output.webp组合使用,同时指定质量和压缩级别:
ffmpeg -i example.png -qscale 80 -compression_level 4 example.webp