WebRTC 超低延迟直播:WHEP 播放实战
秀场直播里的「主播念观众ID」永远慢半拍、监控画面比现场晚十几秒、拍卖出价镜头滞后——这些场景里,HLS 的 5~30 秒延迟是硬伤。要亚秒级端到端,业界答案只有一个:WebRTC。本文讲 ZWPlayer 的 WebRTC 播放接入——标准 WHEP 信令 + 三家私有云协议支持,
rtc://地址粘上就播。
延迟阶梯:为什么必须是 WebRTC
图 1:主流直播协议延迟对比与 WHEP 播放链路
- HLS/DASH(5~30 秒):切片 + 清单机制为稳定而生,延迟是结构性的——切片越长延迟越高,压不动;
- LL-HLS(2~5 秒):部分切片 + 阻塞请求换延迟,复杂度陡增,天花板仍在秒级;
- WebRTC(亚秒级):为实时通信设计的传输(SRTP + 拥塞控制 + jitter buffer),端到端延迟天然在几百毫秒量级。
一句话选型:能容忍 5 秒延迟的选 HLS(稳定、可 CDN 扩容);不能容忍的选 WebRTC。
WHEP:把 WebRTC 拉流标准化了
WebRTC 播放过去贵在信令——每家流媒体服务器一套 SDP 交换接口,播放端各写各的。WHEP(WebRTC-HTTP Egress Protocol) 把「播放端拉流信令」标准化为简单的 HTTP 交互,SRS、ZLMediaKit、mediamtx 等主流服务器均已支持。
ZWPlayer 内置 WHEP 客户端,播放只需给地址:
new ZWPlayer({
playerElm: 'player',
url: 'rtc://your-server.com:1985/rtc/v1/whep/?app=live&stream=lesson01',
// 或直接给含 /whep/ 的 HTTP 地址
});
推流端(OBS、无人机、会议系统)经 WHIP 推到服务器,观众侧 ZWPlayer 经 WHEP 拉流——全链路标准化,换服务器厂商零改动。
私有云协议:ARTC / TRTC / BRTC
国内云厂商的超低延迟直播走各自的私有协议。ZWPlayer 直接支持三种:
| 协议 | 厂商 | 地址前缀 |
|---|---|---|
| ARTC | 阿里云 | artc:// |
| TRTC | 腾讯云 | trtc:// |
| BRTC | 百度智能云 | brtc:// |
已在云厂商侧开通超低延迟直播的团队,把播放地址的前缀换成对应 xxx:// 交给 ZWPlayer 即可——不需要在网页里引入任何厂商 SDK,播放器内部完成信令与传输。这意味着:
- 页面体积不因厂商 SDK 膨胀(省掉几百 KB 到数 MB);
- 换云厂商只改 URL 前缀,播放层代码零改动;
- 多厂商混用(华东走 A 家、华南走 B 家)在一个页面里天然可行。
实战场景
- 电商直播:主播喊「三二一上链接」,观众端必须同刻看到——亚秒级延迟直接关联转化;
- 远程鉴赏/拍卖:出价画面滞后等于流程灾难;
- 监控慢直播:景区/工地画面配 WebRTC,观众「实时感」即卖点(配 VR 全景更佳——全景直播);
- 连麦互动:低延迟是连麦体验的下限。
部署要点
- 服务器选型:自建选 SRS 或 ZLMediaKit(都支持 WHIP/WHEP);云上直接用厂商超低延迟产品;
- HTTPS:浏览器要求安全上下文才开放 WebRTC 的完整能力(采集、自动播放策略同理);
- CDN 与扩容:WebRTC 的分发成本高于 HLS——大流量场景常见架构是「WebRTC 主流 + HLS 降级流」,ZWPlayer 的 multiStreams 可以做延迟档位切换;
- 自动播放:带声音的自动播放会被浏览器拦截——ZWPlayer 内置静音自动播放探测与微信内降级,但仍建议直播页首帧静音起播。