跳到主要内容

大小流

大小流模式是指在发布资源时上传一大一小两道视频流。

SDK 默认为摄像头视频流打开发布大小流功能,即每个用户在发布视频资源时自动发布大小两个视频流。小流的分辨率默认跟随大流。

提示

在多人音视频通话过程中,大小流模式可有效减少下行带宽占用。订阅方可按需订阅小流。

分辨率对应关系

小视频流与大视频流的分辨率对应关系如下:

大流分辨率小流分辨率比例
176 × 144176 × 14411:9
180 × 180180 × 1801:1
256 × 144256 × 14416:9
240 × 180240 × 1804:3
320 × 180256 × 14416:9
240 × 240180 × 1801:1
320 × 240240 × 1804:3
360 × 360180 × 1801:1
480 × 360240 × 1804:3
640 × 360256 × 14416:9
480 × 480180 × 1801:1
640 × 480240 × 1804:3
720 × 480240 × 1803:2
848 × 480256 × 1449:5
960 × 720240 × 1804:3
1280 × 720256 × 14416:9
1920 × 1080256 × 14416:9

发布方开关大小流

发布本地视频流之前,您可以通过 [RCRTCEngine sharedInstance].defaultVideoStream 取得将要发布的视频流。

接口原型

Objective C
@property (nonatomic, assign) BOOL enableTinyStream;

属性说明

属性类型说明
enableTinyStreamBOOL是否启用视频小流。摄像头视频流默认开启,自定义视频流默认关闭

代码示例

Objective C
#import <RongRTCLib/RongRTCLib.h>

// 启用视频小流
[RCRTCEngine sharedInstance].defaultVideoStream.enableTinyStream = YES;

// 禁用视频小流
[RCRTCEngine sharedInstance].defaultVideoStream.enableTinyStream = NO;

订阅方切换大小流

在订阅远端视频时或视频通话过程中,您可以通过 tinyStreamsavStreams 参数订阅或切换远端用户的大小视频流。

提示

同一个流只能填写在 avStreams 或 tinyStreams 中的一个数组中。

接口原型

Objective C
- (void)subscribeStream:(nullable NSArray<RCRTCInputStream *> *)avStreams
tinyStreams:(nullable NSArray<RCRTCInputStream *> *)tinyStreams
completion:(nullable RCRTCOperationCallback)completion;

参数说明

参数类型是否必填说明
avStreamsNSArray<RCRTCInputStream *> *视频大流数组
tinyStreamsNSArray<RCRTCInputStream *> *视频小流数组
completionRCRTCOperationCallback订阅完成后回调

代码示例

Objective C
#import <RongRTCLib/RongRTCLib.h>

// avStreams 和 tinyStreams 中的 RCRTCInputStream 对象可从远端发布流的代理方法中取得
[[RCRTCEngine sharedInstance].room.localUser subscribeStream:avStreams
tinyStreams:tinyStreams
completion:^(BOOL isSuccess, RCRTCCode code) {

}];