大小流
大小流模式是指在发布资源时上传一大一小两道视频流。
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 |
发布方开关大小流
创建 RCRTCEngine 时,通过设置 RCRTCEngineSetup.RCRTCVideoSetup.IsEnableTinyStream 打开或关闭视频大小流,开启功能后,发布资源时会发布大小两道流,默认 true 开启小流。需要在加入房间前打开或关闭大小流。在加入房间后修改不生效。
以下以直播模式下的设置为例:
C #
var videoSetup = RCRTCVideoSetup.Builder.Create()
.WithEnableTinyStream(true); // 开启视频大小流
.Build();
var setup = RCRTCRoomSetup.Builder.Create()
.WithRole(RCRTCRole.LIVE_BROADCASTER)
.WithMediaType(RCRTCMediaType.AUDIO_VIDEO)
.WithVideoSetup(videoSetup)
.Build();
Engine.JoinRoom("Your_Room_ID", setup);
订阅方切换大小流
如果远端用户在加入房间前开启了大小流功能,本地在订阅远端视频流时可以通过 RCRTCEngine#Subscribe 方法选择订阅大流或小流。
C #
// 订阅远端用户的视频小流
bool subTinyVideo = true;
Engine.Subscribe(remoteUserId, RCRTCMediaType.AUDIO_VIDEO, subTinyVideo);