跳到主要内容

音视频协议和格式支持说明

更新时间: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 AppSDKWebRTCHLS
iOS AppSDKWebRTCHLS
HarmonyOS AppSDKWebRTCHLS
WebSDK1WebRTC2->WebCodecs3->MSE4HLS
Windows PCSDKWebRTCHLS5

备注:

  1. WebSDK支持按WebSDK->WebCodecs->MSE降级播放(不满足就使用下一个的方式)。
  2. 如果是Web浏览器或使用WebView跨平台,即内置的WebRTC版本大于或等于M136,则原生支持H265,优先使用该协议进行直播。该模式依赖原生WebRTC且控制相对有限,原生WebRTC暂不支持AAC。
  3. 如果无法满足使用高版本WebRTC,则优先降级使用WebCodecs。WebCodecs具备将H265数据解码成videoFrame对象,通过canvas或者video渲染。
  4. 如果无法满足WebCodecs,则降级使用MSE(Media Source Extensions)。该技术主要是将一帧一帧H265数据再次封装成Fmp4片段,然后喂给MediaSource来通过播放器底层硬解码音视频数据,最后渲染在video标签上面。
  5. PCSDK暂不支持HLS云回放。

WebRTC、WebCodecs和MSE三者对比总结如下:

维度WebRTCWebCodecsMSE
抽象层级高(端到端通信栈)低(编解码原语)中(媒体播放控制)
是否处理网络
是否处理编解码是(黑盒)是(白盒)否(只接受编码后数据)
是否支持播放是(通过标签)否(需手动渲染)是(通过标签)
延迟要求极低(< 500ms)任意中等(通常 >1s)
开发者控制粒度低 → 中(Insertable Streams 提升)

直播和回放音频格式

注意
  1. 相比于P2P模式,对应的就是云端流转发模式,一般简称流转发。
  2. 以下的客户端暂时主要指Android、iOS、HarmonyOS和Windows PC,都支持对WebRTC进行细粒度控制。
  3. 这里的直播,包括双向高清视频含通话场景
音频方向音频格式流转发P2P
设备端4 -> 客户端3G711A 8K/16K支持支持
G711U1 8K/16K未验证未验证
AAC支持支持
Opus支持支持
客户端 -> 设备端3G711A 8K/16K支持支持
G711U 8K/16K未验证未验证
AAC 2不支持不支持
Opus支持支持

备注:

  1. G711U音频编码,代码层面支持,但是目前基本不使用,推荐使用G711A,因此没有进行验证。
  2. 客户端到设备端方向,由于设备端基于成本考虑,一般都不集成AAC解码,因此目前暂不支持
  3. 已支持的音频编码中,设备上下行音频格式可以任意组合。例如:设备->App使用AAC,App->设备使用G711A。
  4. DeviceSDK支持针对直播和回放使用不同的音频编码格式。比如:使用WebSDK基于WebView做跨平台开发时,直播只支持G711A,而回放只支持AAC。

直播和回放视频格式

视频方向视频格式流转发P2P
设备端-> 客户端H264支持支持
H265支持支持
H2661不支持不支持
客户端 -> 设备端H264支持支持
H2652支持支持
H2663不支持不支持

备注:

  1. 目前主流的IPC视频协议就是H264、H265。芯片厂商H266支持少,暂不支持。
  2. 一般带屏设备端只支持H264播放,所以在RTC协商时,只能让客户端采集H264。但传输通道实际上可支持H265。
  3. 同1,芯片厂商H266支持少,暂不支持。