视频大小流
本部分介绍视频大小流的使用方式。
功能介绍
当用户 A 开启大流时,会发送多个不同分辨率的视频码流到服务端;此时,不同的用户需要订阅 A 的视频流时可以根据自己的需要或者服务端的策略来订阅到不同质量的视频流。
开启大小流
在创建摄像头 track 时,可以通过 track config 提供的 multi_profile_enabled
成员来启用大小流功能,以 QNCameraVideoTrack 为例,其启用方式如下:
QNCameraVideoTrackConfig video_track_config;
video_track_config.id = camera_device_id;
video_track_config.capture_config = {width, height, fps};
video_track_config.encoder_config = {width, height, fps, bitrate};
video_track_config.multi_profile_enabled = true; // 是否开启大小流
QNCameraVideoTrack video_track = QNRTC::CreateCameraVideoTrack(video_track_config);
开启大小流功能后,发送端可以通过获取统计信息的接口 QNRTCClient.GetLocalVideoTrackStats 来感知发送情况。
订阅大小流
订阅端可以通过 QNRemoteVideoTrack.IsMultiProfileEnabled 接口判断远端用户是否发布大小流。若接口返回 true,则可通过 QNRemoteVideoTrack.SetProfile 来订阅指定的 QNTrackProfile。
示例代码如下:
if (remote_video_track.IsMultiProfileEnabled()) {
remote_video_track.SetProfile(qiniu::QNTrackProfile::kMedium);
}
注意:SetProfile 接口仅是设置预期的流等级,并不代表实际的订阅等级,若实际发送端还未发送指定等级的流,则将无法订阅到指定的 profile
当订阅指定 profile 生效后,将通过回调 QNTrackInfoChangedListener.OnVideoProfileChanged 告知。
注意事项
- 开启大小流功能设置编码宽高最低为 1280 x 720
- 目前仅支持在发送端发布单路 camera 视频 track 的场景下,使用大小流功能
- 对于开启大小流的用户,建议保证有良好的网络环境,保证多流发送质量
文档反馈
(如有产品使用问题,请 提交工单)