2025/09/23 11:50:37
多路分辨率视频流 (ABR)
在互动直播、会议、大班课等涉及多终端、多网络环境的实时互动场景中,如果可以动态调整发布和订阅的视频分辨率,会显著提升互动体验。典型适用场景如下:
- 直播推流:主推高分辨率,弱网环境下可自动切换到低分辨率流
- 视频会议:主讲人画面用高层,缩略图用低层,提升整体体验
- 多终端适配:高性能终端拉高层,低性能终端拉低层,提升整体体验和带宽利用率
- 多屏幕适配:根据大、中、小屏,分别推不同的分辨率
本文介绍如何使用 RTC SDK 在你的项目中实现多路分辨率视频流功能。
功能简介
从 v4.6.0 起,RTC SDK 新增多分辨率视频流(Adaptive Bitrate Video Streaming,简称 ABR)功能,支持对同一视频源设置同时发送最多 4 路不同规格的视频流(1 路源流 + 3 路扩展流),并支持多频道场景。接收端可以根据渲染窗口大小或其他业务逻辑按需订阅不同层级的流,实现画质、性能、带宽、网络质量的最佳平衡。当发流端带宽或设备性能受限时,会自适应关闭多流。
和已有的视频双流模式相比,ABR 功能在可订阅流层级数和切换体验上有显著改进。如果你之前实现过视频双流模式,可以参考 ABR Vs 视频双流了解详细信息,并根据实际业务需求,选择合适的集成方案。
信息
前提条件
开始前,请确保你已经参考快速开始在项目中实现了基础的实时互动。
实现方式
你可以联系技术支持开启并使用该功能。
参考信息
ABR Vs 视频双流
ABR 和视频双流 (setDualStreamMode
) 为互斥关系;后设置的 API 行为会覆盖前者。请根据实际业务需求选择一种方案进行集成,并关闭另一种方案。
和视频双流模式相比,ABR 功能在以下方面有显著改进:
- 可订阅流从 2 条扩展到 8 条。ABR 在原有的大 (
AgoraVideoStreamTypeHigh
)、小(AgoraVideoStreamTypeHigh
)流的 2 条流的基础上,新增了 6 条扩展流,分别定义为AgoraVideoStreamTypeLayer1
到AgoraVideoStreamTypeLayer6
。 - 切换体验更平滑。相较大小流的双档切换,通过 ABR 多级分辨率的支持,用户可以获得更加平滑的切换体验,以及更多业务场景的灵活选择。
此外,为了更好平衡 ABR 的性能和网络消耗,我们还实现了如下策略:
- 在发送端性能受限的情况下,会自动关闭上行扩展流,订阅端也会自动适配到剩余的扩展流。
- 在上行带宽受限下,会优先关闭扩展流,然后按照之前大小流的码率控制策略,保证发布和订阅的平滑发送和丝滑切换。
在功能实现上,ABR 和双流模式的差异对比如下表所示。声网会在后续版本中补齐 ABR 的特性差距。
特性 | ABR | 双流模式 |
---|---|---|
支持多频道场景 | ✔ | ✔ |
小流支持自动适配视频属性 | ✘ | ✔ |
发流端根据订阅端设置的层级发布视频流 | ✔(需联系技术支持) | ✔ |
发流端性能受限时,可以关闭发布源流之外的视频流 | ✔ | ✘ |
下行网络受限时,可以自动开启上行小流 | ✘ | ✔ |