多路分辨率视频流 (ABR)

  • Android

更新时间不可用

了解实时互动 RTC 在不同平台上的多路分辨率视频流 (ABR)方式,包括接入流程、关键配置和平台差异。

在互动直播、会议、大班课等涉及多终端、多网络环境的实时互动场景中,如果可以动态调整发布和订阅的视频分辨率,会显著提升互动体验。典型适用场景如下:

  • 直播推流:主推高分辨率,弱网环境下可自动切换到低分辨率流
  • 视频会议:主讲人画面用高层,缩略图用低层,提升整体体验
  • 多终端适配:高性能终端拉高层,低性能终端拉低层,提升整体体验和带宽利用率
  • 多屏幕适配:根据大、中、小屏,分别推不同的分辨率

本文介绍如何使用 RTC SDK 在你的项目中实现多路分辨率视频流功能。

功能简介

从 v4.6.0 起,RTC SDK 新增多分辨率视频流(Adaptive Bitrate Video Streaming,简称 ABR)功能,支持对同一视频源设置同时发送最多 4 路不同规格的视频流(1 路源流 + 3 路扩展流),并支持多频道场景。接收端可以根据渲染窗口大小或其他业务逻辑按需订阅不同层级的流,实现画质、性能、带宽、网络质量的最佳平衡。当发流端带宽或设备性能受限时,会自适应关闭多流。

和已有的视频双流模式相比,ABR 功能在可订阅流层级数和切换体验上有显著改进。如果你之前实现过视频双流模式,可以参考 ABR Vs 视频双流了解详细信息,并根据实际业务需求,选择合适的集成方案。

信息

  • 为降低上行编码和网络资源消耗,我们强制限制了客户端设置不超过 4 路流(包括大流和小流)。如果有更多路数需求(最大支持 8 路),请联系技术支持。
  • ABR 支持根据收流端的订阅设置发布指定层级的视频流。该功能默认不开启,如需要请联系技术支持。
  • ABR 功能目前仅适用于 RTC Native 平台的视频流发布与订阅;RTC Web 平台暂不支持,如果需要请联系技术支持。
  • 在有云端录制的场景中,云端录制仅支持订阅 ABR 中的大流或小流。

前提条件

开始前,请确保你已经参考快速开始在项目中实现了基础的实时互动。

实现方式

你可以联系技术支持开启并使用该功能。

参考信息

ABR Vs 视频双流

ABR 和视频双流 (setDualStreamMode) 为互斥关系;后设置的 API 行为会覆盖前者。请根据实际业务需求选择一种方案进行集成,并关闭另一种方案。

和视频双流模式相比,ABR 功能在以下方面有显著改进:

  • 可订阅流从 2 条扩展到 8 条。ABR 在原有的大 (VideoStreamType.VIDEO_STREAM_HIGH)、小(VideoStreamType.VIDEO_STREAM_LOW)流的 2 条流的基础上,新增了 6 条扩展流,分别定义为 VIDEO_STREAM_LAYER_1 到 VIDEO_STREAM_LAYER_6。

  • 切换体验更平滑。相较大小流的双档切换,通过 ABR 多级分辨率的支持,用户可以获得更加平滑的切换体验,以及更多业务场景的灵活选择。

此外,为了更好平衡 ABR 的性能和网络消耗,我们还实现了如下策略:

  • 在发送端性能受限的情况下,会自动关闭上行扩展流,订阅端也会自动适配到剩余的扩展流。
  • 在上行带宽受限时,会优先关闭扩展流,然后按照此前大小流的码率控制策略,保证发布和订阅的平滑发送与切换。

在功能实现上,ABR 和双流模式的差异对比如下表所示。声网会在后续版本中补齐 ABR 的特性差距。

特性ABR双流模式
支持多频道场景✔✔
小流支持自动适配视频属性✘✔
发流端根据订阅端设置的层级发布视频流✔(需联系技术支持)✔
发流端性能受限时,可以关闭发布源流之外的视频流✔✘
下行网络受限时,可以自动开启上行小流✘✔
表格内容超出当前宽度,可横向滚动查看更多列。