介绍
WebM 是 Google 在2010年发布、专为网页设计的开源免版税多媒体容器格式,文件后缀 .webm,MIME类型:video/webm(视频)、audio/webm(纯音频)。
容器≠编码:WebM是封装外壳,内部固定搭配开源音视频编码,基于Matroska(MKV)做精简子集,去掉MKV很多复杂功能,只保留网络播放必需能力。
一句话理解
专为网页打造的 开源免专利 视频格式,用来弥补 MP4 专利、体积、透明视频方面的短板。
有MP4,为什么还要搞WebM?
MP4只是封装容器,互联网上绝大多数MP4里面装的是 H.264视频 + AAC音频。
MP4本身格式开放,但 H.264/H.265是专利编码,这就是WebM诞生最核心的根源。
1. 专利费用,是最大导火索
H.264由MPEG‑LA专利池管理:如果你的网站对外提供视频服务,规模大了是要交专利费的。哪怕 你只是把视频转成H.264,没有卖视频,分发量大也会涉及专利授权。
Google当年做YouTube,海量视频流量,如果全部用H.264,每年要付巨额专利许可费。
- WebM(VP8/VP9/AV1):完全免专利、免费商用,没有专利池收钱。
- MP4+H.264:格式免费,但里面的视频编码有专利枷锁。
提示:MP4外壳本身不收费,但里面装的H.264编码是收费的,很多人混淆这点。
2. 压缩效率:同等画质体积更小
VP9对比H.264:同样清晰度,体积小30%‑50%。
YouTube很早就把大部分视频切到VP9‑WebM,同样清晰度,用户下载流量更少,Google服务器带宽成本直接下降。AV1更进一步,比VP9还省20‑30%。
MP4也可以封装AV1,但生态上AV1优先绑定WebM。
3. MP4做不到:Alpha透明通道
普通MP4(H.264/H.265)完全不支持透明背景。
VP9编码的WebM支持Alpha通道,可以做透明短视频,用来网页动画、悬浮动效。
对比GIF:
- GIF:画质差、色彩少、体积爆炸。
- WebM透明视频:高清、真彩色、体积小很多。
MP4‑HEVC其实理论上支持alpha,但几乎没有浏览器支持,完全没法网页用。
4. Web实时通信WebRTC刚需
浏览器之间直播、视频通话(网页版会议):
- WebRTC原生只支持VP8/VP9/AV1+Opus,输出WebM。
- 浏览器不能原生输出H.264 MP4流,MP4不适合低延迟实时流。
MP4设计偏向本地文件、点播,不是为实时通话设计。
Opus音频也很强:低码率下人声比AAC更好,延迟极低,适合通话。
5. 流式分片、网页原生优化
WebM基于MKV子集,天生适合分片DASH流媒体,适合边下边播。
MP4也支持流媒体,但早期MP4的moov元数据放在文件末尾,如果没做优化,网络差的时候播放器要等下载完头部才能播放。
类比
- MP4 = 通用充电宝,所有手机都能用,但是要交专利许可费。
- WebM = 专为网页设计的快充充电宝,免费无专利,充电更快,但是部分老苹果手机不兼容。
一、支持的编解码器
WebM不允许随便塞入编码,标准限定:
视频编码
- VP8:初代,2010,对标H.264,压缩一般,现在基本淘汰
- VP9:主力编码,2013,同画质相比H.264体积减少30‑50%,对标H.265,YouTube大量使用,支持 Alpha透明通道,可以做透明背景视频(替代GIF),支持4K/HDR
- AV1:新一代,AOM联盟开发,WebM2.0支持;比VP9再省20‑30%码率,免专利;缺点:编码速度慢,需要新硬件硬解支持
音频编码
- Vorbis:早期音频,已逐步被Opus替代
- Opus:现代首选,低码率语音效果好、延迟极低,适合直播、WebRTC通话,6kbps即可听清人声
注意
WebM不能放H.264/H.265/AAC,这是格式规范限制。
二、核心特性
✅ 完全开源、免专利费:商用不需要交专利授权费,规避H.264/H.265专利风险,网站、SaaS服务很友好
✅ 网页深度优化:支持DASH自适应流媒体、低延迟,适合HTML5 <video>标签,支持分片流式播放
✅ 支持透明Alpha通道:VP9‑WebM可以输出透明背景视频,用来做网页动效,体积远小于GIF动图
✅ 支持4K、8K、HDR、高帧率
✅ 支持纯音频webm:只封装Opus音频,后缀依然.webm
❌ 缺点
- Apple生态历史支持差:Safari从macOS11.3 / iOS15才原生支持WebM,老苹果设备无法播放;硬件解码效率不如MP4/H.264
- 部分本地播放器、剪辑软件支持弱;老旧嵌入式设备不支持
- AV1编码速度慢,老机器编码压力大
- 不支持H.264/H.265/AAC编码
三、浏览器&平台兼容性
- Chrome / Edge(Chromium) / Firefox / Opera:完整原生支持VP8/VP9/AV1,Android全版本支持WebM
- Safari:macOS ≥11.3、iOS ≥15才原生支持WebM;旧版Safari完全无法播放
四、典型使用场景
- 网页短视频、banner背景视频:webm体积小,网页加载更快,降低带宽消耗
- YouTube、维基百科:大量使用VP9‑WebM分发视频流
- WebRTC音视频通话:浏览器实时音视频默认输出WebM(VP8/VP9+Opus)
- 透明动效素材:网页透明短视频,替代GIF(GIF体积巨大)
- 录屏软件:很多网页录屏直接输出webm
- 开源项目、免费站点,规避视频专利授权问题
五、WebM vs MP4 对比
| 项目 | WebM | MP4 |
|---|---|---|
| 容器基础 | Matroska子集 | MPEG‑4 Part14 |
| 内部编码 | VP8/VP9/AV1 + Vorbis/Opus | H.264/H.265 + AAC |
| 专利 | 完全免版税 | 需要专利授权(商用) |
| 压缩效率 | VP9优于H.264;AV1更强 | H.264兼容性好,H.265压缩强 |
| 透明通道 | ✅ VP9支持 | ❌不支持 |
| 兼容性 | Chrome/Firefox好;老Safari差 | 全设备最强,手机、播放器通用 |
| 适合场景 | 网页端、流媒体、WebRTC | 通用视频、移动端、离线播放 |
误区:后缀MP4/WebM只是外壳,真正决定画质体积的是内部编码。
六、工具:编码、播放、转换
播放
- 浏览器(现代Chrome/Firefox/Edge)、VLC播放器、MPV
- Windows自带播放器旧版本不支持,需要安装扩展
转码(FFmpeg最常用)
# mp4转VP9 webm
ffmpeg -i input.mp4 -c:v libvpx-vp9 -c:a libopus output.webm
# 输出透明webm(输入带alpha)
ffmpeg -i transparent.mov -c:v libvpx-vp9 -pix_fmt yuva420p output_alpha.webm
压缩提示
- VP9编码很慢,网页素材优先用
libvpx‑vp9;追求更快编码可以选VP8,但画质体积较差。 - AV1编码速度极慢,适合离线预转码,不适合实时生成。
七、播放中长视频
1、播放中长webm的问题
快进(seek)性能差
WebM的时间索引叫Cues,很多ffmpeg/录屏导出的webm缺少Cues索引。- 没有索引:你拖动进度条跳到20分钟,浏览器必须从文件开头读到20分钟位置才能播放,转圈卡顿,体验极差。
网络差体验差:一次性加载整个大文件,不能动态切清晰度,网速慢只能卡,不能自动降码率。
兼容性老问题:Safari(iOS15以下)直接无法播放WebM。
2、webm长视频方案(YouTube)
WebM中长视频必须上 DASH(MPEG‑DASH),.mpd清单 + WebM分片
- HLS(m3u8)协议 不能用WebM容器分片;苹果设备访问时,要另外输出一套HLS(fMP4+H.265/m3u8)作为兜底。
YouTube 做法
- PC/安卓走DASH+WebM分片;
- Safari苹果设备自动切HLS(m3u8)+fMP4(H.265)
两套完全不同的分片资源。
八、国内主流视频网站技术总结
国内几乎不用WebM分片,主流是 HLS(m3u8) + fMP4 / TS分片;B站网页端用DASH,但分片容器是fMP4(m4s),不是WebM。
编码可以用H.264/H.265/AV1,但外壳容器不用WebM。
B站哔哩哔哩
- 网页端:MPEG‑DASH(
.mpd清单),分片是 fMP4(.m4s),不是WebM - 编码:H.264(AVC) / H.265(HEVC) / AV1(开源免专利)三档可选
- iOS/Safari浏览器:降级走HLS m3u8
- APP客户端:DASH/m3u8都有,DRM加密
重点:虽然用AV1编码,但封装进fMP4分片,不是WebM容器。YouTube是DASH+WebM分片;B站DASH+fMP4分片,这是两者关键区别。
爱奇艺 / 腾讯视频 / 优酷
- 主协议:HLS m3u8(TS分片 / fMP4分片),苹果、安卓、小程序全平台原生兼容
- 编码优先:H.265(HEVC),4K会员用H.265;向下兼容H.264;AV1少量试点
- 网页端靠自研播放器做MSE播放;APP原生HLS;版权视频全部DRM加密
完全不使用WebM
抖音 / 快手(短视频)
- 短视频:很多直接返回完整MP4静态文件,不用分片协议
- 长视频/剧集:HLS m3u8
- 编码H.265为主;无WebM
直播场景
- B站、抖音、快手:网页端大量用 HTTP‑FLV(flv.js),延迟1‑3秒;APP端HLS m3u8
- 几乎不用DASH,更不用WebM分片直播。
为什么国内不用WebM?
iOS/Safari历史兼容坑
国内大量苹果手机用户;HLS(m3u8)是Safari原生支持;WebM分片HLS标准不支持,DASH+WebM在旧Safari还要JS播放器,体验差。终端设备太杂
电视盒子、国产嵌入式设备、老安卓、国产浏览器,WebM/VP9硬件解码支持参差不齐;MP4(fMP4)+H.264/H.265硬件解码遍地都是。AV1编码可以塞进fMP4
AV1是编码,WebM是容器;AV1完全可以封装到fMP4分片里面跑DASH,不需要WebM外壳。B站就是这么做的,拿到AV1的压缩收益,又保留MP4容器的兼容性。CDN、转码、DRM版权生态成熟度
国内CDN、转码系统、视频加密DRM对fMP4/TS/HLS支持最完善;WebM分片的DRM、转码链路国内落地少。
九、总结
MP4胜在兼容性无敌;WebM胜在免专利、压缩好、支持透明、适合网页实时音视频。
MP4解决“在哪都能打开”,WebM解决“服务器省钱、网页体验更好”。