最近更新时间:2024.02.26 14:50:27
首次发布时间:2021.07.18 15:06:31
在推送视频流时,你可能遇到以下场景:
此时,发送端需要向房间内的其他用户,同时编码并推送多路内容相同、规格不同的视频流。
RTC SDK 支持同一用户发布至多 4 条编码规格不同的摄像头采集视频流,以满足订阅端不同的订阅需求,你可以:
setVideoEncoderConfig(1/2)
仅设置 1 路期望发布的最大分辨率的视频流,由 SDK 智能补齐另外 3 条视频流的参数setVideoEncoderConfig(2/2)
至多设置 3 条视频流的参数(设置的参数为各路流的分辨率上限),另外 1 路视频流则由 SDK 根据网络环境自动判断是否发布以满足性能回退的需求,该条视频流的参数固定为:分辨率 160px × 90px,帧率 15fps,最大码率 100kbps。当发布端开启推送多分辨率视频流的功能时,SDK 会根据发布端的设置,将分辨率自动划分为四个等级,系统默认的等级划分如下:
视频流等级 | 长度(px) | 宽度(px) | 帧率(fps) | 最大码率(kbps) |
---|---|---|---|---|
大流 | 1920 | 1080 | 30 | 3000 |
1280 | 720 | 30 | 1200 | |
1120 | 630 | 30 | 1000 | |
960 | 540 | 30 | 900 | |
中流 | 800 | 450 | 30 | 800 |
640 | 360 | 30 | 600 | |
480 | 270 | 15 | 400 | |
小流 | 320 | 180 | 15 | 300 |
256 | 144 | 15 | 200 | |
弱流 | 160 | 90 | 15 | 100 |
发布端设置了编码参数后,默认的等级划分将会依据发布端设置的各路流最大分辨率进行重新划分,具体划分规则参看视频流等级划分示例。
在允许性能回退的场景下,发布的视频流会根据网络环境,按照上表中各等级的档位进行自动降级,具体参看音视频流回退,否则 SDK 仅会发送设置的分辨率值的流。
订阅端可以设置期望订阅的流参数,所有订阅端的期望订阅流配置最终决定发布端发送的流数。
你已经集成 v3.36 或更高版本的 RTC SDK,实现了基本的音视频通话。
微信小程序端 SDK 不支持本功能。
在设置发送多分辨率视频流后,建议你配合设置音视频流在弱网情况下的回退策略,参看音视频流回退 。
enableSimulcastMode
开启发送多分辨率视频流的模式。setVideoEncoderConfig(1/2)
或 setVideoEncoderConfig(2/2)
设置 1 路或多路期望发布的流的分辨率上限。注意,需在发布流之前设置方可生效。setScreenVideoEncoderConfig
进行设置,发布端只能设置/发布 1 路屏幕共享视频流。订阅端设置期望订阅的流的参数需在发布端开启发送多分辨率视频流的情况下方可生效
joinRoom
时对 roomConfig
中的 remoteVideoConfig
进行设置setRemoteVideoConfig
设置或更新设置功能/平台 | Android | iOS | Windows |
---|---|---|---|
开启发送多分辨率视频流的模式 | enableSimulcastMode | enableSimulcastMode: | enableSimulcastMode |
设置期望发布的最大分辨率视频流参数 | setVideoEncoderConfig(1/2) | setMaxVideoEncoderConfig: | setVideoEncoderConfig(1/2) |
设置期望发布的多分辨率视频流参数 | setVideoEncoderConfig(2/2) | setVideoEncoderConfig: | setVideoEncoderConfig(2/2) |
设置屏幕共享视频流的期望编码参数 | setScreenVideoEncoderConfig | setScreenVideoEncoderConfig: | SetScreenVideoEncoderConfig |
设置期望订阅的远端视频流的参数 | setRemoteVideoConfig | setRemoteVideoConfig:remoteVideoConfig: | setRemoteVideoConfig |
你也可以联系技术支持同学,帮助你在 RTC 服务端进行推送多分辨率视频流的相关配置。当使用服务端下发配置实现时,下发配置优先级高于在客户端使用 API 设定的配置。
视频流等级 | 长度(px) | 宽度(px) | 帧率(fps) | 最大码率(kbps) |
---|---|---|---|---|
大流 | 1280 | 720 | 30 | 1200 |
1120 | 630 | 30 | 1000 | |
960 | 540 | 30 | 900 | |
800 | 450 | 30 | 800 | |
中流 | 640 | 360 | 30 | 600 |
480 | 270 | 15 | 400 | |
320 | 180 | 15 | 300 | |
小流 | 256 | 144 | 15 | 200 |
弱流 | 160 | 90 | 15 | 100 |
视频流等级 | 长度(px) | 宽度(px) | 帧率(fps) | 最大码率(kbps) |
---|---|---|---|---|
大流 | 1280 | 720 | 30 | 1200 |
中流 | 1120 | 630 | 30 | 1000 |
小流 | 960 | 540 | 30 | 900 |
800 | 450 | 30 | 800 | |
640 | 360 | 30 | 600 | |
480 | 270 | 15 | 400 | |
320 | 180 | 15 | 300 | |
256 | 144 | 15 | 200 | |
弱流 | 160 | 90 | 15 | 100 |
视频流等级 | 长度(px) | 宽度(px) | 帧率(fps) | 最大码率(kbps) |
---|---|---|---|---|
大流 | 1920 | 1080 | 30 | 3000 |
1280 | 720 | 30 | 1200 | |
1120 | 630 | 30 | 1000 | |
960 | 540 | 30 | 900 | |
800 | 450 | 30 | 800 | |
中流 | 640 | 360 | 30 | 600 |
480 | 270 | 15 | 400 | |
小流 | 320 | 180 | 15 | 300 |
256 | 144 | 15 | 200 | |
弱流 | 160 | 90 | 15 | 100 |
视频流等级 | 长度(px) | 宽度(px) | 帧率(fps) | 最大码率(kbps) |
---|---|---|---|---|
大流 | 640 | 360 | 30 | 600 |
中流 | 480 | 270 | 15 | 400 |
小流 | 320 | 180 | 15 | 300 |
256 | 144 | 15 | 200 | |
弱流 | 160 | 90 | 15 | 100 |
当发布端的设置为例 1 所示时