配置大小流

更新时间: 2024/09/18 16:26:13

实际场景中,网络状况并非始终处于理想状态,当网络信号弱、链路不稳定时,通常会造成音视频通信的延时和丢包等问题,从而造成通话质量下降等现象,影响用户的音视频体验。网易云信 NERTC SDK 支持视频大小流的相关方法,可根据网络状况或业务需求,使用大流或者小流,提升音视频通话质量。

注意事项

  • 需要再发送端开启双流模式。
  • 请在加入房间后,发布视频流之前设置。
  • 视频小流的目标码率为 100kbps,屏幕共享小流的目标码率为 200kbps。
  • SDK 会尝试使用接近 180p(240x180) 的低分辨率进行重新采集以提高编解码效率。浏览器会尽量在保证长宽比的情况下使小流的采集接近 180p。但由于浏览器和摄像头的限制,小流的分辨率也会出现 240p、480p 甚至与大流一致的情况,这些都为正常现象。
  • 部分 H5 设备开启小流异常时,建议在 Client.subscribe时选择订阅大流,再通过 Client.setRemoteStreamType 切换为小流。

实现方法

发送端

调用 enableDualStream 方法开启大小流模式。

接收端

  1. 调用 subscribe 方法设订阅的视频媒体大小流。
  2. 加入房间后,如果需要切换订阅的大小流状态,调用 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")
此文档是否对你有帮助?
有帮助
去反馈
  • 注意事项
  • 实现方法
  • 发送端
  • 接收端
  • 示例代码