Web 媒体格式全解:JPEG-XL、AVIF、HEIC 与 MSE 优化
Explore media formats for the web
2023年6月5日
一句话判断
Safari 17 新增 JPEG-XL、AVIF、HEIC 支持,配合 picture 元素你不需要做格式选择——让浏览器自己挑。
这场 Session 讲了什么
Jean-Yves Avenard 从 WebKit 团队出发,全面梳理了 Safari 支持的图片和视频格式:
传统三剑客。GIF(36 年历史,8 位色,适合简单动画但文件大)、JPEG(30 年历史,支持渐进加载,适合照片但无法透明)、PNG(26 年历史,支持透明和动画,适合 Logo 和插图但压缩率低)。这三个格式所有浏览器都支持,短期内不会消失。
Safari 17 新增四种现代格式。WebP(从 Safari 14 开始支持,压缩率优于传统格式,支持动画);JPEG-XL(全新支持,可以从现有 JPEG 无损转换且体积减少最多 60%,支持渐进加载、宽色域和 HDR);AVIF(基于 AV1 编解码器,广泛支持,比 JPEG 小最多 10 倍,支持 12 位色深和 HDR);HEIC(iPhone 原生照片格式,硬件加速渲染,适合 WKWebView 内展示)。
picture 元素的优雅降级。不需要用 JavaScript 检测浏览器支持,用 <picture> 元素声明多个格式源,浏览器从上到下选择第一个支持的格式。
MSE(Media Source Extensions)优化和 AirPlay 支持。Safari 17 对 MSE 做了性能优化,并支持通过 MSE 实现 AirPlay 投屏。
值得深挖的点
JPEG-XL 的无损转换。这是 JPEG-XL 最杀手级的特性——你可以把现有的 JPEG 文件无损地转换为 JPEG-XL,体积减少最多 60%,画质完全不损失。迁移成本几乎为零。
宽色域和 HDR 的意义。JPEG-XL、AVIF 和 HEIC 都支持宽色域和 HDR。宽色域保留更多颜色信息,HDR 允许更暗的暗部和更亮的亮部。两者结合让户外风景、高对比度场景和复杂肤色呈现得更加生动。
HEIC 在 WKWebView 中的优势。iPhone 拍摄的照片就是 HEIC 格式,直接在 WKWebView 中展示不需要格式转换,而且有硬件加速。如果你的 App 内嵌 Web 内容展示用户照片,HEIC 是最优选择。
代码片段
<!-- 使用 picture 元素实现格式优雅降级 -->
<picture>
<!-- 优先使用 HEIC(Apple 设备硬件加速) -->
<source srcset="photo.heic" type="image/heic">
<!-- 其次使用 JPEG-XL(高压缩率,渐进加载) -->
<source srcset="photo.jxl" type="image/jxl">
<!-- 再次使用 AVIF(广泛支持,高压缩率) -->
<source srcset="photo.avif" type="image/avif">
<!-- 最后使用 WebP(良好压缩率) -->
<source srcset="photo.webp" type="image/webp">
<!-- 兜底使用 JPEG(所有浏览器支持) -->
<img src="photo.jpg" alt="照片描述">
</picture>
<!-- MSE + AirPlay 支持示例 -->
<video id="player" airplay="allow">
<!-- MSE 内容通过 JavaScript 动态加载 -->
</video>
<script>
// 创建 MediaSource 并连接到 video 元素
const mediaSource = new MediaSource();
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener('sourceopen', () => {
const sourceBuffer = mediaSource.addSourceBuffer(
'video/mp4; codecs="avc1.64001f"'
);
// 追加视频片段...
});
</script>
最佳实践
- 不要只选一种现代格式——用
<picture>元素提供多种格式,让浏览器选最优的。 - JPEG-XL 的无损 JPEG 转换是降低带宽成本的捷径。
- AVIF 作为兼容性最好的现代格式,应该始终包含在备选列表中。
- 在 WKWebView 中展示 iPhone 照片时直接用 HEIC,省去转换开销。
- 传统格式(JPEG、PNG、GIF)仍然需要作为兜底,短期内不能去掉。
还有什么值得关注
- HTTP Live Streaming (HLS) 自 2009 年推出以来一直是自适应流媒体的标准方案
- Safari 17 对 MSE 的性能优化对视频网站意义重大
- WebP 的动画支持是 GIF 替代的实用选择
- HDR 内容在支持 HDR 显示的设备上会有明显的视觉提升