音视频协议和格式支持说明
更新时间:2026-01-08 21:25:39
客户端:指Android、iOS、HarmonyOS、Web、PC。音视频协议支持情况依赖手机、Pad、中控屏或电脑等的硬件支持情况。针对手机、Pad的Android、iOS、HarmonyOS和Windows PCSDK只支持WebRTC直播。WebSDK情况比较特殊,视使用场景不同支持降级播放方案(详见后续说明)。所有客户端的云端回放都使用HLS协议,一般视频支持H264和H265,音频支持AAC。
设备端:指集成了DeviceSDK的硬件产品,音视频协议支持情况依赖摄像头、中控屏等硬件设备支持情况。
直播&云端回放协议
| 客户端类型 | 直播协议 | 云端回放协议 |
|---|---|---|
| Android AppSDK | WebRTC | HLS |
| iOS AppSDK | WebRTC | HLS |
| HarmonyOS AppSDK | WebRTC | HLS |
| WebSDK1 | WebRTC2->WebCodecs3->MSE4 | HLS |
| Windows PCSDK | WebRTC | HLS5 |
备注:
- WebSDK支持按WebSDK->WebCodecs->MSE降级播放(不满足就使用下一个的方式)。
- 如果是Web浏览器或使用WebView跨平台,即内置的WebRTC版本大于或等于M136,则原生支持H265,优先使用该协议进行直播。该模式依赖原生WebRTC且控制相对有限,原生WebRTC暂不支持AAC。
- 如果无法满足使用高版本WebRTC,则优先降级使用WebCodecs。WebCodecs具备将H265数据解码成videoFrame对象,通过canvas或者video渲染。
- 如果无法满足WebCodecs,则降级使用MSE(Media Source Extensions)。该技术主要是将一帧一帧H265数据再次封装成Fmp4片段,然后喂给MediaSource来通过播放器底层硬解码音视频数据,最后渲染在video标签上面。
- PCSDK暂不支持HLS云回放。
WebRTC、WebCodecs和MSE三者对比总结如下:
| 维度 | WebRTC | WebCodecs | MSE |
|---|---|---|---|
| 抽象层级 | 高(端到端通信栈) | 低(编解码原语) | 中(媒体播放控制) |
| 是否处理网络 | 是 | 否 | 否 |
| 是否处理编解码 | 是(黑盒) | 是(白盒) | 否(只接受编码后数据) |
| 是否支持播放 | 是(通过标签) | 否(需手动渲染) | 是(通过标签) |
| 延迟要求 | 极低(< 500ms) | 任意 | 中等(通常 >1s) |
| 开发者控制粒度 | 低 → 中(Insertable Streams 提升) | 高 | 中 |
直播和回放音频格式
注意
- 相比于P2P模式,对应的就是云端流转发模式,一般简称流转发。
- 以下的客户端暂时主要指Android、iOS、HarmonyOS和Windows PC,都支持对WebRTC进行细粒度控制。
- 这里的直播,包括双向高清视频含通话场景
| 音频方向 | 音频格式 | 流转发 | P2P |
|---|---|---|---|
| 设备端4 -> 客户端3 | G711A 8K/16K | 支持 | 支持 |
| G711U1 8K/16K | 未验证 | 未验证 | |
| AAC | 支持 | 支持 | |
| Opus | 支持 | 支持 | |
| 客户端 -> 设备端3 | G711A 8K/16K | 支持 | 支持 |
| G711U 8K/16K | 未验证 | 未验证 | |
| AAC 2 | 不支持 | 不支持 | |
| Opus | 支持 | 支持 |
备注:
- G711U音频编码,代码层面支持,但是目前基本不使用,推荐使用G711A,因此没有进行验证。
- 客户端到设备端方向,由于设备端基于成本考虑,一般都不集成AAC解码,因此目前暂不支持。
- 已支持的音频编码中,设备上下行音频格式可以任意组合。例如:设备->App使用AAC,App->设备使用G711A。
- DeviceSDK支持针对直播和回放使用不同的音频编码格式。比如:使用WebSDK基于WebView做跨平台开发时,直播只支持G711A,而回放只支持AAC。
直播和回放视频格式
| 视频方向 | 视频格式 | 流转发 | P2P |
|---|---|---|---|
| 设备端-> 客户端 | H264 | 支持 | 支持 |
| H265 | 支持 | 支持 | |
| H2661 | 不支持 | 不支持 | |
| 客户端 -> 设备端 | H264 | 支持 | 支持 |
| H2652 | 支持 | 支持 | |
| H2663 | 不支持 | 不支持 |
备注:
- 目前主流的IPC视频协议就是H264、H265。芯片厂商H266支持少,暂不支持。
- 一般带屏设备端只支持H264播放,所以在RTC协商时,只能让客户端采集H264。但传输通道实际上可支持H265。
- 同1,芯片厂商H266支持少,暂不支持。