视频大小流(旧版)
本部分介绍视频大小流的使用方式。
注意,自 SDK 4.0.9 版本开始,发布了新版本的大小流功能,新版本大小流功能更加丰富,使用更加简单,推荐使用新版本,具体接入参考 视频大小流(新版)。
功能介绍
当用户 A 开启大小流时,会发送多个不同分辨率的视频码流到服务端;此时,不同的用户需要订阅 A 的视频流时可以根据自己的需要或者服务端的策略来订阅到不同质量的视频流。
旧版本大小流功能开启后,会在原视频流的基础上,创建一个一路中流,一路小流,三路流共享同一个 Track,一并发布到房间。
开启大小流
在创建音视频 track 时,可以通过 track config 提供的 isMultiProfileEnabled
接口来启用大小流功能,以 QNCameraVideoTrack 为例,其启用方式如下:
QNRTC.createCameraVideoTrack({
encoderConfig: {
isMultiProfileEnabled: true
}
});
订阅大小流
订阅端可以通过 QNRemoteVideoTrack.isMultiProfileEnabled 属性判断远端用户是否发布大小流。若接口返回 true,则可通过 QNRemoteVideoTrack.setProfile 来订阅指定的 QNTrackProfile。
示例代码如下:
if (remoteVideoTrack.isMultiProfileEnabled) {
remoteVideoTrack.setProfile(QNTrackProfile.MEDIUM);
}
注意:setProfile 接口仅是设置预期的流等级,并不代表实际的订阅等级,若实际发送端还未发送指定等级的流,则将无法订阅到指定的 profile
可以监听 QNRemoteVideoTrack.profile-changed 当订阅指定 profile 生效后,将通过事件告知,具体使用方式如下:
track.on('profile-changed',function(profile){
// 当订阅的 profile 发生改变时触发,该 profile 为当前实际订阅到的 profile
console.log('profile-changed',profile)
})
注意事项
- 开启大小流功能设置编码宽高最低为 1280 x 720
- 目前仅支持在发送端发布单路视频 track 的场景下,使用大小流功能
- 对于开启大小流的用户,建议保证有良好的网络环境,保证多流发送质量
文档反馈
(如有产品使用问题,请 提交工单)