MP4 vs WebM:2026 年网页视频的最佳格式
一句话总结(以及复杂之处)
如果你在 2026 年只需要一种网页视频格式,那答案就是采用 H.264 编码的 MP4。它在原生兼容性方面仍然胜出。所有浏览器、所有设备、所有智能电视都能轻松播放它。而使用 VP9 或 AV1 编码的 WebM,在同等文件大小下能提供更好的压缩率和图像质量,但它也有一些历史包袱。Safari 直到 2024 年底才完全支持 AV1 硬件解码,而一些老旧的安卓设备在播放 VP9 时仍然会卡顿。 对大多数发布者来说,真正的答案很简单:两种都提供。将 WebM 文件作为主要源,MP4 作为备用选项,这样就能覆盖 99.8% 的设备,让你在质量和带宽上两全其美。HTML5 的 <video> 元素通过多个 <source> 标签,让这个操作变得出奇地简单。真正的复杂性不在于代码,而在于后勤工作。你必须考虑编码时间、存储成本、CDN 费用,以及你的内容管理系统(CMS)或视频平台是否允许你上传同一个文件的两个版本。本文将用真实数据来剖析这些权衡,帮助你为自己的实际工作流程选择一个解决方案,而不仅仅是理论上的理想方案。
编解码器详解:每个容器里到底是什么
MP4 和 WebM 都只是容器。你可以把它们想象成装有压缩视频流和音频流的 ZIP 文件。容器格式本身远没有其内部负责繁重压缩工作的编解码器(codec)重要。 MP4 文件几乎总是包含 H.264 (AVC) 视频和 AAC 音频。H.264 是一个 2003 年的古老标准,但它经过了二十多年的不断完善。一个 4 Mbps 码率的 1080p H.264 视频流在大多数屏幕上看起来效果都很棒。虽然 MP4 也支持 H.265 (HEVC)——它能以一半的码率提供相似的画质——但其普及过程一团糟。高昂的授权费让浏览器厂商望而却步,即使到了 2026 年中,Chrome 也未在所有平台原生解码 HEVC。 谷歌设计 WebM 的初衷是为网络提供一个开放、免版税的格式。它可以使用 VP8、VP9 或 AV1 视频编解码器,搭配 Vorbis 或 Opus 音频。在同等画质下,VP9 的压缩率比 H.264 高出 30-50%。AV1 则更进一步;YouTube 的内部测试显示,与 VP9 相比,AV1 可以将文件再缩小 30%。但这种高效率是有代价的:编码时间。在使用最慢、最高质量的预设(cpu-used=0)时,用 libaom 进行 AV1 编码所需的时间可能是标准 H.264 编码的 50 到 100 倍。 因此,对于实际的网络发布场景,WebM 容器里的 VP9 成为了 2026 年的“甜点”选择。你既能获得比 H.264 显著的压缩优势,其编码速度也尚可接受,无需动用专门的服务器集群。
2026 年的浏览器和设备支持情况
浏览器支持情况总是在不断变化。以下是截至 2026 年中的概况。 MP4/H.264 的支持情况很简单:它是通用的。Chrome、Firefox、Safari、Edge、Opera、三星互联网——所有主流浏览器在所有平台上都原生支持它。没有例外,无需多言。 WebM/VP9 的支持也相当广泛,Chrome(自 v29 起)、Firefox(自 v28 起)、Edge(自 v14 起)和 Opera 都支持。苹果终于在 2020 年的 Safari 14 中加入了 VP9 支持,覆盖了 iOS 14 和 macOS Big Sur。问题在哪?那些仍在使用 iOS 13 或更早版本的设备,虽然只占一小部分流量,但确实存在,它们无法播放 VP9 WebM。别想当然地认为你的用户里没有这部分人,去查查你的网站分析数据。企业和教育领域用户的设备更新周期往往长得惊人。 WebM/AV1 的支持情况比几年前好多了。Chrome、Firefox 和 Edge 支持 AV1 解码已经有一段时间了。在苹果这边,搭载 Apple Silicon 芯片的 Mac 上的 Safari 以及 iPhone 15 Pro 及更新机型都支持 AV1 硬件加速解码。更旧的 iPhone 则会回退到软件解码,这会非常耗电,并且在播放 4K 视频时可能导致掉帧。软件解码的后果就是手机发烫和用户不爽。如果你的受众主要是 iOS 用户,而且你关心他们的电池续航,那么 VP9 是更安全的 WebM 编解码器。 底线是:对于一个拥有混合桌面和移动用户的普通网站来说,将 WebM/VP9 作为主要源,MP4/H.264 作为备用,是最安全、最明智的配置。
文件大小与画质:真实数据对比
关于压缩率的空泛说法对制定存储预算毫无帮助。让我们来看一些真实数据,这些数据来自一个 2 分钟、1080p 30fps 的源视频片段,使用 FFmpeg 和 CocoConvert 的处理流程进行编码。 我们的基准是使用 H.264 编码的 MP4(x264, CRF 23, medium 预设),文件大小为 87 MB。这是许多开发者的默认选择,画质很可靠,这个片段的 VMAF 分数在 93 左右。 切换到使用 VP9 编码的 WebM(libvpx-vp9, CRF 33, two-pass)后,文件大小降至 54 MB。其 VMAF 分数略高,为 94,这意味着文件更小,画质还略好一些。这种效率不是没有代价的;在同一台机器上,这次两遍编码(two-pass)所花的时间大约是 H.264 版本的 4 倍。 一个在 WebM 容器中的 AV1 编码(libaom-av1, CRF 30, cpu-used=4)能让文件大小降到只有 41 MB,VMAF 分数为 95。`cpu-used=4` 这个设置是一个不错的折衷方案,比几乎没法用的 `cpu-used=0` 设置快得多,但仍然比我们的 H.264 基准慢了约 12 倍。 这对你的预算意味着什么?假设一个网站有 500 个平均时长 90 秒的产品视频,从只用 H.264 切换到 VP9 优先的方案,主要视频存储空间将从大约 3.2 TB 减少到只有 2.0 TB。按照每 GB 0.02 至 0.085 美元的典型 CDN 价格计算,随着规模扩大,这些存储和带宽节省的费用会迅速累积起来。 关于 CocoConvert 的 AV1 设置,这里简单提一下:为了在共享基础设施上保持转换速度,它使用的是 `cpu-used=5`。如果你需要用于存档的绝对最高质量的 AV1 编码(`cpu-used=0` 或 `1`),你就需要一个本地的 FFmpeg 环境,或者一个允许你配置这些预设的专用转码服务。
什么时候该选择 MP4 而不是 WebM
有时候,MP4 不仅仅是备用方案——它是唯一明智的选择。WebM 很适合网络分发,但在几个关键领域却力不从心。 **电子邮件和即时消息:** 在邮件中嵌入视频是出了名的雷区。Windows 上的 Outlook 会完全忽略你的 HTML5 视频标签。虽然 Apple Mail 在 iOS 上能内联播放 MP4,但没有哪个主流客户端会碰 WebM 文件。对于邮件营销活动,MP4 是你唯一的选择。 **视频下载:** 如果你允许用户下载视频离线观看,请提供 MP4 格式。虽然有经验的用户可以用 VLC 播放任何东西,但 Windows、macOS 和大多数智能电视上的默认媒体播放器都无法处理 WebM。使用 MP4 可以让你免于收到潮水般“视频播不了”的客服工单。 **社交媒体上传:** 每个社交平台——Twitter/X、Instagram、TikTok、领英、Facebook——都是围绕 MP4 构建的。它们接受 MP4 文件并在自己的服务器上转码。大多数平台会直接拒绝 WebM 上传,或者更糟,把它处理成一团无法观看的马赛克。请务必将社交内容导出为 MP4。 **老旧的 CMS 平台:** 在你花上数小时编码一大堆 WebM 文件之前,先检查一下你的平台到底能不能用它们。一些旧的 WordPress 插件、特定的学习管理系统(LMS),甚至某些版本的 Wistia 都只接受 MP4 上传。快速查阅一下文档可以为你省去巨大的麻烦。 **硬件和剪辑:** 你从相机、屏幕录制工具和采集卡获得的源素材几乎总是 MP4 或 MOV 格式。WebM 是一个分发格式,不是一个制作格式。没有专业的视频剪辑师会在项目中使用它。它适用于终点线,而不是起跑线。
实现两种格式:HTML 与工作流
同时提供两种格式比大多数开发者想象的要简单得多。诀窍在于 HTML5 的 `<video>` 元素,它会按顺序检查每个 `<source>` 标签,并播放它能识别的第一个。 <video controls width="1280" height="720" preload="metadata"> <source src="/video/product-demo.webm" type="video/webm; codecs=vp9,opus"> <source src="/video/product-demo.mp4" type="video/mp4"> 你的浏览器不支持 HTML5 视频。 </video> 能够处理 VP9 WebM 的现代浏览器会播放第一个源。其他所有浏览器则会优雅地回退到 MP4。在 `type` 属性中包含 `codecs` 参数是一个聪明的优化;它能让浏览器更快地做出决定,而无需下载部分文件。 从一个主文件创建两种格式文件的工作流程非常直接。CocoConvert 的批量转换工具可以处理一个文件夹的源文件,并同时输出 MP4 和 WebM 两种格式。只需上传你的主文件,选择“MP4 (H.264)”和“WebM (VP9)”作为你的目标输出,调整好质量设置,你就会得到一个包含两个版本的 ZIP 文件。对于典型的 1080p 网页视频,H.264 使用 CRF 23、VP9 使用 CRF 33,可以得到几乎相同的视觉质量。 这里有一个关于自动化的关键技巧:保持你的文件名除了扩展名外完全相同(例如,`product-demo.webm` 和 `product-demo.mp4`)。这样一来,你的模板系统就可以轻松构建 `<source>` 路径,而无需为每个视频都去查数据库。 了解这种方法的局限性很重要。CocoConvert 目前不会生成像 HLS 或 DASH 这样的自适应比特率(ABR)流。如果你处理的是长视频,用户可能会拖动进度条或网络速度不稳定,那么你就需要 ABR。这需要一个专门的视频平台(如 Mux、Cloudflare Stream 或 Bunny.net)或更复杂的自托管 FFmpeg 配置。然而,对于 10 分钟以下的短片,这种单文件 WebM/MP4 的分发方法是完全没问题的。
2026 年的最终结论
仅从纯技术角度来看,采用 VP9 编码的 WebM 是 2026 年更好的网页视频格式。它以同等或更好的质量提供更小的文件,而且浏览器支持现在已经足够广泛,可以使其成为大多数网站的首选。AV1 是名正言顺的继承者,但其高昂的编码成本和 iOS 硬件支持上迟迟未能填补的空白,意味着它仍然是一个战略性选择,而不是一个简单的默认选项。 但采用 H.264 编码的 MP4 远未过时。它作为你的通用备用方案,仍然是绝对必要的。它也是唯一适用于电子邮件、社交媒体上传、下载和许多老旧平台的格式。它短期内不会消失。 所以,我的实用建议是: * **通用网站视频:** 使用 WebM/VP9 作为主要源,MP4/H.264 作为备用。 * **社交媒体和电子邮件:** 只用 MP4。没有例外。 * **可下载文件:** 只用 MP4,以最大化兼容性。 * **高流量网站:** 如果 CDN 成本是主要考量,那么探索多层备用方案是值得的:为最新浏览器提供 AV1,其次是 VP9,最后是 H.264。 * **超短片(< 30秒):** 对于非常短的视频,文件大小差异微乎其微。只用 MP4 更简单,也完全没问题。 归根结底,你是在平衡四件事:兼容性、文件大小、编码时间和工作流复杂性。正确的答案完全取决于你的受众设备、你的托管预算,以及你愿意在视频处理流程上投入多少时间。对于大多数中小型网站来说,双格式方案是一个绝佳的平衡点。设置它用不了半小时,却能立即开始节省带宽,又不会带来兼容性方面的麻烦。