- 文档首页
实时音视频
实时音视频
开发指南
视频管理
自定义视频编解码
自定义视频编解码
当你使用 RTC 实现实时音视频通信时,RTC 默认使用内部的编解码模块进行视频编解码。然而在一些场景下,你可能会发现内部编解码模块无法满足需求,比如:音视频应用中已实现了视频编解码模块,此时 RTC 再进行二次编解码有可能会产生延时和视频质量的损耗。
你可以参考本文,将自定义编码后的视频源,交由 RTC 进行传输,或对 RTC 拉取到的远端编码后视频源进行自定义解码渲染。
前提条件
你已经集成 v3.29 或更高版本的 RTC SDK。
自定义视频编码
集成步骤和时序图中的接口以 Windows 平台为例,参考对应平台的 API 文档获取更多信息。 自定义编码的流程如下图所示。
集成步骤
- 在加入音视频房间前,通过调用 setVideoSourceType 指定自定义编码视频源,你需要设置 VideoSourceType 为 kVideoSourceTypeEncodedWithoutAutoSimulcast = 3。
- 你必须自行实现视频编码逻辑。出于节约本端编码性能消耗的考虑,推荐你根据 onActiveVideoLayer,按需编码。
- 编码完成后,你需要在收到 onStart 回调通知后调用 pushExternalEncodedVideoFrame 将编码后的视频帧推送至 RTC SDK 进行传输。你必须根据实际编码时使用的参数来设置 pushExternalEncodedVideoFrame 中的 IEncodedVideoFrame。
注意
- 外部编码器推送给 SDK 的帧必须是完整的一帧,且只支持 IDR 帧和 P 帧,不支持推送多个帧拼接。
- 在收到 IExternalVideoEncoderEventHandler 回调的 onRequestKeyFrame 时,必须重新编码一个 I 帧发送,否则订阅端会因为收不到 I 帧导致解码失败。
API 调用时序
API 参考
自定义视频解码
集成步骤和时序图中的接口以 Windows 平台为例,参考对应平台的 API 参考获取更多信息。 自定义解码的流程如下图所示。
集成步骤
API 调用时序
API 参考
功能变更日志
- 自客户端版本 v3.29 起,支持自定义视频编码功能。
- 自客户端版本 v3.56 起,发送端可以根据 onActiveVideoLayer,按需编码。
相关文档
最近更新时间:2026.09.21 16:24:28