实时音视频

  • 实时音视频 > 使用指南 > iOS >视频大小流

    视频大小流

    最近更新时间: 2022-09-08 11:57:13

    本部分介绍视频大小流的使用方式。

    功能介绍

    大小流示意图

    当用户 A 开启大小流时,会发送多个不同分辨率的视频码流到服务端;此时,不同的用户需要订阅 A 的视频流时可以根据自己的需要或者服务端的策略来订阅到不同质量的视频流。

    开启大小流

    在创建音视频 Track 时,可以通过 QNCameraVideoTrackConfig.multiStreamEnable 接口来启用大小流功能,以 QNCameraVideoTrack 为例,其启用方式如下:

    QNCameraVideoTrackConfig *cameraVideoTrackConfig = [QNCameraVideoTrackConfig defaultCameraVideoTrackConfig]; 
    // 配置启用大小流
    cameraVideoTrackConfig.multiStreamEnable = YES;
    QNCameraVideoTrack *cameraVideoTrack = [QNRTC createCameraVideoTrackWithConfig:cameraVideoTrackConfig];
    

    开启大小流功能后,发送端可以通过获取统计信息的接口 QNRTCClient.getLocalVideoTrackStats 来感知发送情况。

    订阅大小流

    订阅端可以通过 QNRemoteVideoTrack.isMultiProfileEnabled 接口判断远端用户是否发布大小流。若接口返回为 YES,则可通过 QNRemoteVideoTrack.setProfile 来订阅指定的 QNTrackProfile。

    示例代码如下:

    if (remoteVideoTrack.isMultiProfileEnabled) {
    	[remoteVideoTrack setProfile:QNTrackProfileMedium];
    }
    

    注意:setProfile 接口仅是设置预期的流等级,并不代表实际的订阅等级,若实际发送端还未发送指定等级的流,则将无法订阅到指定的 profile。

    当订阅指定 profile 生效后,将通过回调 QNRemoteVideoTrackDelegate.didVideoProfileChanged 告知,具体使用方式如下:

    - (void)remoteVideoTrack:(QNRemoteVideoTrack *)remoteVideoTrack didVideoProfileChanged:(QNTrackProfile)profile {
    	// 当订阅的 profile 发生改变时触发,该 profile 为当前实际订阅到的 profile
    }
    

    注意事项

    • 开启大小流功能设置编码宽高最低为 1280 x 720
    • 目前仅支持在发送端发布单路视频 Track 的场景下,使用大小流功能
    • 对于开启大小流的用户,建议保证有良好的网络环境,保证多流发送质量

    示例代码

    大小流场景的示例代码可参考 API-Examples-iOS

    以上内容是否对您有帮助?
  • Qvm free helper
    Close