大小流
大小流模式是指在发布资源时上传一大一小两道视频流。
SDK 默认为摄像头视频流打开发布大小流功能,即每个用户在发布视频资源时自动发布大小两个视频流。小流的 分辨率默认跟随大流。
提示
在多人音视频通话过程中,大小流模式可有效减少下行带宽占用。订阅方可按需订阅小流。
分辨率对应关系
小视频流与大视频流的分辨率对应关系如下:
大流分辨率 | 小流分辨率 | 比例 |
---|---|---|
176 × 144 | 176 × 144 | 11:9 |
180 × 180 | 180 × 180 | 1:1 |
256 × 144 | 256 × 144 | 16:9 |
240 × 180 | 240 × 180 | 4:3 |
320 × 180 | 256 × 144 | 16:9 |
240 × 240 | 180 × 180 | 1:1 |
320 × 240 | 240 × 180 | 4:3 |
360 × 360 | 180 × 180 | 1:1 |
480 × 360 | 240 × 180 | 4:3 |
640 × 360 | 256 × 144 | 16:9 |
480 × 480 | 180 × 180 | 1:1 |
640 × 480 | 240 × 180 | 4:3 |
720 × 480 | 240 × 180 | 3:2 |
848 × 480 | 256 × 144 | 9:5 |
960 × 720 | 240 × 180 | 4:3 |
1280 × 720 | 256 × 144 | 16:9 |
1920 × 1080 | 256 × 144 | 16:9 |
发布方开关大小流
发布本地视频流之前,您可以通过 [RCRTCEngine sharedInstance].defaultVideoStream
取得将要发布的视频流。
接口原型
Objective C
@property (nonatomic, assign) BOOL enableTinyStream;
属性说明
属性 | 类型 | 说明 |
---|---|---|
enableTinyStream | BOOL | 是否启用视频小流。摄像头视频流默认开启,自定义视频流默认关闭 |
代码示例
Objective C
#import <RongRTCLib/RongRTCLib.h>
// 启用视频小流
[RCRTCEngine sharedInstance].defaultVideoStream.enableTinyStream = YES;
// 禁用视频小流
[RCRTCEngine sharedInstance].defaultVideoStream.enableTinyStream = NO;
订阅方切换大小流
在订阅远端视频时或视频通话过程中,您可以通过 tinyStreams
和 avStreams
参数订阅或切换远端用户的大小视频流。
提示
同一个流只能填写在 avStreams 或 tinyStreams 中的一个数组中。
接口原型
Objective C
- (void)subscribeStream:(nullable NSArray<RCRTCInputStream *> *)avStreams
tinyStreams:(nullable NSArray<RCRTCInputStream *> *)tinyStreams
completion:(nullable RCRTCOperationCallback)completion;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
avStreams | NSArray<RCRTCInputStream *> * | 否 | 视频大流数组 |
tinyStreams | NSArray<RCRTCInputStream *> * | 否 | 视频小流数组 |
completion | RCRTCOperationCallback | 否 | 订阅完成后回调 |
代码示例
Objective C
#import <RongRTCLib/RongRTCLib.h>
// avStreams 和 tinyStreams 中的 RCRTCInputStream 对象可从远端发布流的代理方法中取得
[[RCRTCEngine sharedInstance].room.localUser subscribeStream:avStreams
tinyStreams:tinyStreams
completion:^(BOOL isSuccess, RCRTCCode code) {
}];