RTC支持在网络不佳或设备性能不足时,开启流回退功能以保证用户的音视频体验。

功能变更日志
  1. 自客户端 SDK 3.36 起,支持更多档位的视频流回退。
功能简述

你可能在以下情况下,需要降低发送/接收的视频编码规格(流回退):

此时,发布端/订阅端可以设置流回退。设置完成后,可以实现:

说明:目前Web SDK仅支持订阅端在弱网情况下设置自动流回退,不支持订阅端在解码性能不足时,进行自动流回退。

关于分辨率等级划分参看推送多路流 。

前置条件

当设置视频流自动降级时,你必须已经在发布端设置了推送多路流。具体步骤,参看推送多路流 。

功能实现
使用客户端 API

视频发送回退策略和视频接收回退策略互不影响,你应在发布端和订阅端分别设置。

设置发布端自动流回退

发布端开启了推送多路流功能,并设置了期望参数值后,SDK 会自动为设置的值划分等级,你须开启发布端音视频流回退功能,在上行网络不佳或设备性能不足时,对视频流进行降级处理。具体而言,发送的流将从设置的大流开始逐一档位进行降级,当大流分辨率将至接近中流时,则取消大流,依次类推;在网络和设备性能正常时,将恢复发送多路流。
例:当发布端多路流的等级划分如下时:

视频流等级长度(px)宽度(px)帧率(fps)最大码率(kbps)
大流19201080303000
1280720301200
1120630301000
96054030900
中流80045030800
64036030600
48027015400
小流32018015300
25614415200
弱流1609015100

此时,发布端的大流开始从 1080——720——630——540 逐一档位进行降级,若此时网络环境依旧不满足发送 540p 的流,则大流取消,中流开始降级,依次类推,最终降至只发送一条 90p 的视频流。

API 参考
功能简述AndroidiOSWindowsmacOS
设置发布的音视频流的回退选项setPublishFallbackOptionsetPublishFallbackOption:setPublishFallbackOption/
设置订阅端自动流回退

在下行网络不佳或设备性能不足时,你可以开启订阅的音视频流自动回退策略。SDK 支持两种策略:

API 参考
功能简述AndroidiOSWindowsmacOSWeb
设置订阅的音视频流的回退选项setSubscribeFallbackOptionsetSubscribeFallbackOption:setSubscribeFallbackOption/setSubscribeFallbackOption
使用服务端下发配置

你也可以联系技术支持同学,帮助你在 RTC 服务端进行发布端/订阅端流回退配置。当使用服务端下发配置实现时,下发配置优先级高于在客户端使用 API 设定的配置。