大小流
大小流模式是指在发布资源时上传一大一小两道视频流。
SDK 默认视频流打开发布大小流功能,即每个用户在发布视频资源时自动发布大小两个视频流。小流的分辨率默认跟随大流。
提示
在多人音视频通话过程中,大小流模式可有效减少下行带宽占用。订阅方可按需订阅小流。
小视频流与大视频流的分辨率对应关系如下:
大流分辨率 | 小流分辨率 | 比例 |
---|---|---|
176X144 | 176X144 | 11:9 |
180X180 | 180X180 | 1:1 |
256X144 | 256X144 | 16:9 |
240X180 | 240X180 | 4:3 |
320X180 | 256X144 | 16:9 |
240X240 | 180X180 | 1:1 |
320X240 | 240X180 | 4:3 |
360X360 | 180X180 | 1:1 |
480X360 | 240X180 | 4:3 |
640X360 | 256X144 | 16:9 |
480X480 | 180X180 | 1:1 |
640X480 | 240X180 | 4:3 |
720X480 | 240X180 | 3:2 |
848X480 | 256X144 | 9:5 |
960X720 | 240X180 | 4:3 |
1280X720 | 256X144 | 16:9 |
1920X1080 | 256X144 | 16:9 |
发布方开关大小流
需要在引擎创建时传入视频初始化配置指定开启或关闭大小流,开启功能后,发布资源时会发布大小两道流。
/// 创建引擎时开启大小流功能
let videoSetup = { enableTinyStream: true };
let engineSetup = { videoSetup: videoSetup };
let rtcEngine = RCRTCEngine.create(engineSetup);
/// 创建引擎时关闭大小流功能
let videoSetup = { enableTinyStream: false };
let engineSetup = { videoSetup: videoSetup };
let rtcEngine = RCRTCEngine.create(engineSetup);
设置小流属性
开启了大小流功能后,小流会自动使用默认属性。您也可以通过调用 setVideoConfig
方法,将 tiny
参数传入 true
,来单独设置小流属性。
let config = {
minBitrate: 200,
maxBitrate: 900,
fps: RCRTCVideoFps.Fps15,
resolution: RCRTCVideoResolution.Resolution_480x640,
};
rtcEngine.setVideoConfig(config, true);
订阅方切换大小流
如果远端用户在加入房间前开启了大小流功能,本地在订阅远端视频流时可以通过调用 subscribe
方法时传入 tiny
参数订阅大流或小流:
/// 订阅大流
rtcEngine.subscribe(userId, RCRTCMediaType.AudioVideo, false);
/// 订阅小流
rtcEngine.subscribe(userId, RCRTCMediaType.AudioVideo, true);