场景模式

对于不同的音视频实际使用场景,用户对于流量和音质的要求都是不一样的,由于人声和音乐的特性不同,音质要求也不同。我们总结归纳了四种模式:基础通话模式、高清通话模式、高清音乐模式、自适应高清音乐模式

基础通话模式:该模式主要用于对音质要求一般对流量消耗敏感的场景,该模式下音频采样率为16KHz,各个音频预处理开关打开,完全满足人声通话的音质要求,流量和电量消耗相对较小。

高清通话模式:该模式主要用于对通话音质要求较高且通话过程不存在音乐的场景,该模式下音频采样率为48KHz,各个音频预处理开关打开,满足高音质人声通话的需求。

高清音乐模式:该模式用于对音乐流畅度与音质均有高要求的场景(如在线音乐教学等场景),该模式下音频采样率为48KHz,前处理与编码器均针对音乐场景做了定制优化,在码率分配上会更多考虑音频码率,能够很好地保留乐器高音信息,此场景模式推荐以音乐为主的音频场景使用。

自适应高清音乐模式:该模式主要用于既有人声也有音乐的场景,该模式下音频采样率为48KHz,在音视频房间内只有一人发言(其他人都是观众)时,采集模块会自动关闭自带的音频预处理功能,而在多人参与互动时,采集模块会自动打开相关的音频预处理功能,需要注意此时音乐的音质可能会受到影响。此场景模式目前仅推荐不存在互动的音乐场景(如单主播音乐直播)使用。

类似的,基于用户场景对于视频清晰度与流畅度的不同要求,我们在精准探测带宽的基础上,提供两种通用视频调控策略:清晰优先策略、流畅优先策略和一种场景调控策略屏幕共享场景调控策略

清晰优先策略:该策略主要用于对视频清晰度要求较高的场景,在网络带宽受限情况下,允许通过自适应调节码率、帧率等视频参数,优先保障视频清晰度(画质),极端网络条件下将最多下调一次视频清晰度。

流畅优先策略:该策略主要用于对视频流畅度要求较高的场景,在网络带宽首先情况下,允许通过自适应调节码率、视频清晰度等视频参数,优先保障视频流畅度。

屏幕共享场景调控策略:该策略主要用于在线教育等场景下要求在任何网络状况下均不下调分辨率的情况,网络状况不佳时帧率会降到数帧,推荐在PC屏幕共享进行在线教学等特定场景下使用。

音频场景模式

对于不同的音视频使用场景,对于流量音质人声音乐的要求都不同。我们归纳了四种模式:

基础通话模式

该模式主要用于对音质要求一般对流量消耗场景,该模式下音频采样率为16KHz,完全满足人声通话的音质要求,流量和电量消耗相对较小。 在该模式下,需要开发者进行相关配置,如下:

参数
preferHDAudio NO (默认值)
scene NIMAVChatSceneDefault (默认值)

高清通话模式

该模式主要用于对通话音质要求较高且通话过程不存在音乐的场景,该模式下音频采样率为48KHz,满足高音质人声通话的需求。 在该模式下,需要开发者进行相关配置,如下:

参数
preferHDAudio YES
scene NIMAVChatSceneDefault (默认值)

自适应高清音乐模式

该模式主要用于既有人声也有音乐的场景,对人声和音乐的音质要求都很高,比如直播娱乐场景,该模式下音频采样率为48KHz,在音视频房间内只有一人发言(其他人都是观众)时,声音还原度较好,在多人参与互动时,此时音乐的音质可能会受到影响。 在该模式下,需要开发者进行相关配置,如下:

参数
preferHDAudio YES
scene NIMAVChatSceneHighQualityMusicAdaptive

高清音乐模式

该模式用于对音乐音质要求极高的场景,该模式下音频采样率为48KHz,该模式对音乐音质的还原度较好。 在该模式下,需要开发者进行相关配置,如下:

参数
preferHDAudio YES
scene NIMAVChatSceneHighQualityMusic

视频自适应策略

视频自适应策略分为 清晰优先流畅优先录屏模式 ,用户根据自己的情况选择相应模式,SDK默认为清晰优先。

清晰优先

在网络带宽有限的情况下将优先保证视频的清晰度,画面将会有所卡顿。

参数
videoAdaptiveStrategy NIMAVChatVideoAdaptiveStrategyQuality

流畅优先

在网络带宽有限的情况下将优先保证视频的流畅性,画面的清晰度将会下降。

参数
videoAdaptiveStrategy NIMAVChatVideoAdaptiveStrategySmooth

录屏模式

用于在线教育场景下通过屏幕共享方式进行不降分辨率的PPT教学的典型偏静态场景。

参数
videoAdaptiveStrategy NIMAVChatVideoAdaptiveStrategyScreenRecord

动态切换视频自适应策略

动态切换视频自适应策略。

@protocol NIMNetCallManager <NSObject>
/**
 *  选择视频调控策略
 *
 *  @param videoAdaptiveStrategy 视频调控策略
 *
 *  @return 是否设置成功.
 */
- (BOOL)selectVideoAdaptiveStrategy:(NIMAVChatVideoAdaptiveStrategy)videoAdaptiveStrategy;
@end
参数 类型 说明
videoAdaptiveStrategy NIMAVChatVideoAdaptiveStrategy 视频调控策略
//转换为流畅优先
[[NIMAVChatSDK sharedSDK].netCallManager selectVideoAdaptiveStrategy:NIMAVChatVideoAdaptiveStrategySmooth];