视频流回退
更新时间: 2024/09/18 16:26:13
实际场景中,网络状况并非始终处于理想状态,当网络信号弱、链路不稳定时,通常会造成音视频通信的延时和丢包等问题,从而造成通话质量下降等现象,影响用户的音视频体验。网易云信 NERTC SDK 支持视频流回退的相关方法,可以在弱网环境下自动将视频主流从大流切换为小流,或者将媒体流回退为音频流,优先保障通话流畅平稳、维持用户体验;在网络环境恢复时,音频流会自动切换回音视频媒体流、小流切换回大流,提升音视频通话质量。
注意事项
- 在实现视频流回退机制前,请确保已在您的项目中实现基本的音视频通话流程。
- 请在加入房间前设置视频流回退的相关方法。
实现方法
配置步骤
发流端
-
调用
EnableDualStreamMode
方法开启大小流模式。 -
调用
SetLocalPublishFallbackOption
方法。将option
设置为kNERtcStreamFallbackAudioOnly
即可指定弱网环境下本地发布的媒体流自动回退为音频流。 -
加入房间后,当网络状态不理想、无法同时维持视频流和音频流质量时,SDK 会自动停止发布视频流,只发布音频流。当网络状态恢复时,音频流会切换回音视频媒体流。
本地发布的流从媒体流切换到音频流,或从音频流切换到媒体流时,SDK 会触发
OnPublishFallbackToAudioOnly
回调,报告当前发布的流的类型。
接收端
- 调用
SetRemoteSubscribeFallbackOption
方法设置弱网环境下接收媒体流的回退选项。- 设置
kNERtcStreamFallbackVideoStreamLow
,则下行网络较弱时,只接收视频小流。 - 设置
kNERtcStreamFallbackAudioOnly
,则下行网络较弱时,先尝试只接收视频小流。如果网络环境无法显示视频,则只接收音频流。
- 设置
- 加入房间后,如果弱网环境下触发了音视频流回退,用户接收到的流从媒体流切换到音频流,或从音频流切换到媒体流时,SDK 会触发
OnSubscribeFallbackToAudioOnly
回调,报告当前接收流的回退状态。
示例代码
C#//设置弱网下的视频流回退选项
private void setVideoFallbackOption()
{
//开启视频双流模式
rtcEngine.EnableDualStreamMode(true);
// 发送端指定弱网环境下本地发布的媒体流自动回退为音频流。
rtcEngine.SetLocalPublishFallbackOption(RtcStreamFallbackOption.kNERtcStreamFallbackAudioOnly);
// 接收端指定弱网环境下先尝试接收小流;若当前网络环境无法显示视频,则只接收音频流。
rtcEngine.SetRemoteSubscribeFallbackOption(RtcStreamFallbackOption.kNERtcStreamFallbackAudioOnly);
}
此文档是否对你有帮助?