场景模式
对于不同的音视频实际使用场景,用户对于流量和音质的要求都是不一样的,由于人声和音乐的特性不同,音质要求也不同。我们总结归纳了四种模式:基础通话模式、高清通话模式、高清音乐模式。
基础通话模式:该模式主要用于对音质要求一般对流量消耗敏感的场景,该模式下音频采样率为16KHz
,各个音频预处理开关打开,完全满足人声通话的音质要求,流量和电量消耗相对较小。
高清通话模式:该模式主要用于对通话音质要求较高且通话过程不存在音乐的场景,该模式下音频采样率为48KHz
,各个音频预处理开关打开,满足高音质人声通话的需求。
高清音乐模式:该模式用于对音乐流畅度与音质均有高要求的场景(如在线音乐教学等场景),该模式下音频采样率为48KHz
,前处理与编码器均针对音乐场景做了定制优化,在码率分配上会更多考虑音频码率,能够很好地保留乐器高音信息,此场景模式推荐以音乐为主的音频场景使用。
类似的,基于用户场景对于视频清晰度与流畅度的不同要求,我们在精准探测带宽的基础上,提供两种通用视频调控策略:清晰优先策略、流畅优先策略和一种场景调控策略屏幕共享场景调控策略。
清晰优先策略:该策略主要用于对视频清晰度要求较高的场景,在网络带宽受限情况下,允许通过自适应调节码率、帧率等视频参数,优先保障视频清晰度(画质),极端网络条件下将最多下调一次视频清晰度。
流畅优先策略:该策略主要用于对视频流畅度要求较高的场景,在网络带宽首先情况下,允许通过自适应调节码率、视频清晰度等视频参数,优先保障视频流畅度。
屏幕共享场景调控策略:该策略主要用于在线教育等场景下要求在任何网络状况下均不下调分辨率的情况,网络状况不佳时帧率会降到数帧,推荐在PC屏幕共享进行在线教学等特定场景下使用。
音频场景模式
对于不同的音视频使用场景,对于流量和音质,人声和音乐的要求都不同。我们归纳了四种模式:
基础通话模式
该模式主要用于对音质要求一般对流量消耗场景,该模式下音频采样率为16KHz
,完全满足人声通话的音质要求,流量和电量消耗相对较小。
在该模式下,需要开发者进行相关配置,如下:
参数 | 值 |
---|---|
preferHDAudio | NO (默认值) |
scene | NIMAVChatSceneDefault (默认值) |
高清通话模式
该模式主要用于对通话音质要求较高且通话过程不存在音乐的场景,该模式下音频采样率为48KHz
,满足高音质人声通话的需求。
在该模式下,需要开发者进行相关配置,如下:
参数 | 值 |
---|---|
preferHDAudio | YES |
scene | NIMAVChatSceneDefault (默认值) |
高清音乐模式
该模式用于对音乐音质要求极高的场景,该模式下音频采样率为48KHz
,该模式对音乐音质的还原度较好。
在该模式下,需要开发者进行相关配置,如下:
参数 | 值 |
---|---|
preferHDAudio | YES |
scene | NIMAVChatSceneHighQualityMusic |
视频自适应策略
视频自适应策略分为 清晰优先、流畅优先、录屏模式 ,用户根据自己的情况选择相应模式,SDK默认为清晰优先。
清晰优先
在网络带宽有限的情况下将优先保证视频的清晰度,画面将会有所卡顿。
参数 | 值 |
---|---|
videoAdaptiveStrategy | NIMAVChatVideoAdaptiveStrategyQuality |
流畅优先
在网络带宽有限的情况下将优先保证视频的流畅性,画面的清晰度将会下降。
参数 | 值 |
---|---|
videoAdaptiveStrategy | NIMAVChatVideoAdaptiveStrategySmooth |
录屏模式
用于在线教育场景下通过屏幕共享方式进行不降分辨率的PPT教学的典型偏静态场景。
参数 | 值 |
---|---|
videoAdaptiveStrategy | NIMAVChatVideoAdaptiveStrategyScreenRecord |
动态切换视频自适应策略
- API介绍
动态切换视频自适应策略。
- API原型
@protocol NIMNetCallManager <NSObject>
/**
* 选择视频调控策略
*
* @param videoAdaptiveStrategy 视频调控策略
*
* @return 是否设置成功.
*/
- (BOOL)selectVideoAdaptiveStrategy:(NIMAVChatVideoAdaptiveStrategy)videoAdaptiveStrategy;
@end
- 参数说明
参数 | 类型 | 说明 |
---|---|---|
videoAdaptiveStrategy | NIMAVChatVideoAdaptiveStrategy | 视频调控策略 |
- 示例
//转换为流畅优先
[[NIMAVChatSDK sharedSDK].netCallManager selectVideoAdaptiveStrategy:NIMAVChatVideoAdaptiveStrategySmooth];