配置大小流
更新时间: 2024/09/18 16:26:13
实际场景中,网络状况并非始终处于理想状态,当网络信号弱、链路不稳定时,通常会造成音视频通信的延时和丢包等问题,从而造成通话质量下降等现象,影响用户的音视频体验。网易云信 NERTC SDK 支持视频大小流的相关方法,可根据网络状况或业务需求,使用大流或者小流,提升音视频通话质量。
注意事项
- 需要再发送端开启双流模式。
- 请在加入房间后,发布视频流之前设置。
- 视频小流的目标码率为 100kbps,屏幕共享小流的目标码率为 200kbps。
- SDK 会尝试使用接近 180p(240x180) 的低分辨率进行重新采集以提高编解码效率。浏览器会尽量在保证长宽比的情况下使小流的采集接近 180p。但由于浏览器和摄像头的限制,小流的分辨率也会出现 240p、480p 甚至与大流一致的情况,这些都为正常现象。
- 部分 H5 设备开启小流异常时,建议在 Client.subscribe时选择订阅大流,再通过 Client.setRemoteStreamType 切换为小流。
实现方法
发送端
调用 enableDualStream 方法开启大小流模式。
接收端
- 调用 subscribe 方法设订阅的视频媒体大小流。
- 加入房间后,如果需要切换订阅的大小流状态,调用 setRemoteStreamType 进行设置。
示例代码
js// 发送端
// 加入房间之后
rtc.localStream = NERTC.createStream({
audio: true,
video: true,
uid: 1234,
client: rtc.client,
})
await rtc.localStream.init()
await rtc.client.join({
channelName: "channelName",
token: "token",
uid: 1234
});
//开启视频双流模式。
rtc.client.enableDualStream()
js// 接收端
// 订阅
remoteStream.setSubscribeConfig({
audio: true,
video: true,
screen: true,
audioSlave: true,
highOrLow: NERTC.STREAM_TYPE.HIGH
})
rtc.client.subscribe(remoteStream)
// 在订阅状态下,将屏幕共享的大流切换为小流。
rtc.client.setRemoteStreamType(remoteStream, NERTC.STREAM_TYPE.LOW, "screen")
此文档是否对你有帮助?