使用场景

在推送视频流时,你可能遇到以下场景:

此时,发送端需要向房间内的其他用户,同时编码并推送多路内容相同、规格不同的视频流。

功能介绍
发布端设置

RTC SDK 支持同一用户发布至多 4 条编码规格不同的摄像头采集视频流,以满足订阅端不同的订阅需求,你可以:

当发布端开启推送多路流的功能时,SDK 会根据发布端的设置,将分辨率自动划分为四个等级,系统默认的等级划分如下:

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

发布端设置了编码参数后,默认的等级划分将会依据发布端设置的各路流最大分辨率进行重新划分,具体划分规则参看视频流等级划分示例。

在允许性能回退的场景下,发布的视频流会根据网络环境,按照上表中各等级的档位进行自动降级,具体参看音视频流回退,否则 SDK 仅会发送设置的分辨率值的流。

订阅端设置

订阅端可以设置期望订阅的流参数,所有订阅端的期望订阅流配置最终决定发布端发送的流数。

前提条件

你已经集成 v3.36 或更高版本的 RTC SDK,实现了基本的音视频通话。

微信小程序端 SDK 不支持本功能。

集成步骤
使用客户端 API

在设置发送多路流后,建议你配合设置音视频流在弱网情况下的回退策略,参看音视频流回退 。

发布端
  1. 进房前调用 enableSimulcastMode 开启发送多路视频流的模式。
  2. 对于摄像头采集的视频流,调用 setVideoEncoderConfig(1/2) 或 setVideoEncoderConfig(2/2)设置 1 路或多路期望发布的流的分辨率上限。注意,需在发布流之前设置方可生效。
  3. 屏幕共享视频流的分辨率需通过 setScreenVideoEncoderConfig 进行设置,发布端只能设置/发布 1 路屏幕共享视频流。
订阅端

订阅端设置期望订阅的流的参数需在发布端开启发送多路流的情况下方可生效

  1. 若想在进房前设置,则需在调用 joinRoom 时对 roomConfig 中的 remoteVideoConfig 进行设置
  2. 进房后可以通过调用 setRemoteVideoConfig 设置或更新设置
API 参考
功能/平台AndroidiOSWindows
开启发送多路流的模式enableSimulcastModeenableSimulcastMode:EnableSimulcastMode
设置期望发布的最大分辨率视频流参数setVideoEncoderConfig(1/2)setMaxVideoEncoderConfig:SetVideoEncoderConfig(1/2)
设置期望发布的多路视频流参数setVideoEncoderConfig(2/2)SetVideoEncoderConfig:SetVideoEncoderConfig(2/2)
设置屏幕共享视频流的期望编码参数setScreenVideoEncoderConfigSetScreenVideoEncoderConfig:SetScreenVideoEncoderConfig
设置期望订阅的远端视频流的参数setRemoteVideoConfigsetRemoteVideoConfig:remoteVideoConfig:SetRemoteVideoConfig
使用服务端下发配置

你也可以联系技术支持同学,帮助你在 RTC 服务端进行推送多路流的相关配置。当使用服务端下发配置实现时,下发配置优先级高于在客户端使用 API 设定的配置。

视频流等级划分示例
发布端
视频流等级长度(px)宽度(px)帧率(fps)最大码率(kbps)
大流1280720301200
1120630301000
96054030900
80045030800
中流64036030600
48027015400
32018015300
小流25614415200
弱流1609015100
视频流等级长度(px)宽度(px)帧率(fps)最大码率(kbps)
大流1280720301200
中流1120630301000
小流96054030900
80045030800
64036030600
48027015400
32018015300
25614415200
弱流1609015100
视频流等级长度(px)宽度(px)帧率(fps)最大码率(kbps)
大流19201080303000
1280720301200
1120630301000
96054030900
80045030800
中流64036030600
48027015400
小流32018015300
25614415200
弱流1609015100
视频流等级长度(px)宽度(px)帧率(fps)最大码率(kbps)
大流64036030600
中流48027015400
小流32018015300
25614415200
弱流1609015100
订阅端

当发布端的设置为例 1 所示时