音视频参数配置推荐
更新时间: 2024/09/18 16:26:13
本文介绍各种典型场景的音视频参数的推荐配置。
音视频参数的基本属性
场景属性
NERTC SDK 支持通过setChannelProfile
设置场景模式,支持通信模式(kNERtcChannelProfileCommunication )和直播模式(kNERtcChannelProfileLiveBroadcasting )。
- 在语音通话场景下,建议您选择通信模式,在 QoS 策略控制上以实时通信为主,保证通话的实时性,在遇到网络不佳的情况下,会降低音质、画质从而保证低延时、高流畅的通话体验。
- 在互动直播场景下,建议您选择直播模式,在 QoS 策略控制上会提升画质清晰度,且码率等都会比通信模式下的高,在遇到网络不佳的情况下,优先保证高清晰、高质量的直播画面效果,可能存在一定时延。
分辨率
-
您需要根据自己画面的大小及比例选择分辨率。
- 若您的画面占移动端全屏,建议选择 16:9 的高分辨率,比如 1280 x 720 或 1980 x 1080。
- 若您的画面是小窗口且为 4:3 比例,建议针对您的显示 dpi 选择 4:3 的分辨率,比如 640 x 480 或 360 x 720。
-
若您使用了第三方美颜等前处理模块,请尽量控制前处理的平均处理速度在 2/3 ~ 1 fps。
-
请尽量根据场景选择合适的分辨率,避免浪费用户端上的性能和带宽,同时减少网络波动等因素可能带来的影响。
帧率
- 在通信模式下,建议您将帧率设置为 24 fps,用户在视觉上不会出现卡顿现象。
- 在直播模式下,建议您将帧率适当降低至 15 fps,保证直播画面的高清晰度。
码率
一般建议您使用默认码率。
若您对画面清晰度有更高的要求,推荐将码率提升至默认码率的 1.2 倍。
示例代码
本文以 1 对 1 娱乐社交场景中的配置为例,其他场景请根据下文中的典型场景推荐配置,修改对应的参数值。
Objective-CNERtcVideoEncodeConfiguration *config = [[NERtcVideoEncodeConfiguration alloc] init];
config.width = 640;
config.height = 360;
config.frameRate = kNERtcVideoFrameRateFps15;
[coreEngine setLocalVideoConfig:config];
[coreEngine setAudioProfile:kNERtcAudioProfileStandard
scenario:kNERtcAudioScenarioSpeech];
典型场景推荐配置
在1 对 1音视频通话、多人音视频通话、互动直播等典型场景下,云信推荐使用的音视频参数配置如下。
1 对 1 音视频通话
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性setAudioProfile |
Profile:kNERtcAudioProfileStandard(单声道标准音质) | 满足语音通话的要求且抗网络波动,同时尽量减少带宽消耗和性能开销。 |
Scenario:kNERtcAudioScenarioSpeech(语音场景) | 默认使用硬件 AEC(回声消除),可以更好过滤回声、噪声等环境音,且功耗低,提供更为清晰的人声语音效果。 该模式会损失音乐的音质,但是满足语音通话的要求。 |
|
以整体画布比例为 16:9 为例:
|
根据中低端手机的性能,在保证视频质量的情况下减少流量消耗和提高视频传输的稳定性。 |
|
场景属性setChannelProfile |
娱乐社交/通用 1 对 1 聊天场景:kNERtcChannelProfileLiveBroadcasting (直播模式) |
|
会议场景:kNERtcChannelProfileCommunication (通信模式) |
|
在 1 对 1 音视频通话场景中,请调用 enableDualStreamMode
接口关闭大小流,以避免增加功耗和带宽消耗。本场景不需要视频双流模式。
多人音视频通话
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性setAudioProfile |
Profile:kNERtcAudioProfileStandard(单声道标准音质) | 满足语音通话的要求且抗网络波动,同时尽量减少带宽消耗和性能开销。 |
Scenario:kNERtcAudioScenarioSpeech(语音场景) | 默认使用硬件 AEC(回声消除),可以更好过滤回声、噪声等环境音,且功耗低,提供更为清晰的人声语音效果。 该模式会损失音乐的音质,但是满足语音通话的要求。 |
|
以整体画布比例为 16:9 为例:
|
|
|
以整体画布比例为 4:3 为例:
|
||
以整体画布比例为 1:1 为例:
|
||
场景属性setChannelProfile |
kNERtcChannelProfileLiveBroadcasting (直播模式) |
|
语聊房
下表的推荐配置为国内场景的配置,如果是海外数据中心,推荐配置请参见海外音视频参数配置推荐。
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性setAudioProfile |
主播使用移动设备: Profile:kNERtcAudioProfileMiddleQuality (单声道中等音质) |
在保证高音质的同时节省流量,频繁上下麦时不卡顿。 连麦时保留人声、减少杂音。 |
主播使用 PC: Profile:kNERtcAudioProfileHighQualityStereo (双声道高音质) |
满足娱乐场景中主播对高音质的需求。 | |
Scenario:kNERtcAudioScenarioMusic(音乐场景) | 兼顾语聊和背景音等场景,具备更好的兼容性和扩展性。 | |
场景属性setChannelProfile |
kNERtcChannelProfileLiveBroadcasting (直播模式) | 在弱网环境下,倾向于品质优先,保障观众的体感。 |
在线 KTV
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性 |
|
音乐级高清音质,人声和背景音乐声音都有丰富的呈现。满足娱乐场景中主播对高音质的需求。 |
场景属性setChannelProfile |
kNERtcChannelProfileLiveBroadcasting (直播模式) | 在弱网环境下,倾向于品质优先,保障观众的体感。 |
一起听
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性 |
|
音乐级高清音质,人声和背景音乐声音都有丰富的呈现。满足娱乐场景中主播对高音质的需求。 |
场景属性setChannelProfile |
kNERtcChannelProfileLiveBroadcasting (直播模式) | 在弱网环境下,倾向于品质优先,保障观众的体感。 |
小游戏
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性setAudioProfile |
Profile:kNERtcAudioProfileStandardExtend (单声道标准扩展音质) | 在网络环境不够稳定的情况下,低码率可以保证语音通话的基本需求,且人声明晰。 |
Scenario:kNERtcAudioScenarioChatroom(语音聊天室场景) | 带耳机或蓝牙耳机时, 3A 设置和 MUSIC 场景类似。 在声音外放时,3A 会尽可能使用硬件 AEC(回声消除),消除游戏声音。 |
|
场景属性setChannelProfile |
kNERtcChannelProfileLiveBroadcasting (直播模式) | 保证画质清晰度,抗弱网能力强。 延时会比 COMMUNICATION(通信模式)大。在出现资源不够的情况下,优先保障分辨率,降低帧率去匹配,流畅度会受影响。 |
互动直播
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性 |
|
高清音质。满足娱乐场景中主播对高音质的需求。 |
以整体画布比例为 16:9 为例:
|
保证画质清晰度。 |
|
场景属性setChannelProfile |
kNERtcChannelProfileLiveBroadcasting (直播模式) | 保证画质清晰度,抗弱网能力强。 延时会比 kNERtcChannelProfileCommunication (通信模式)大。在出现资源不够的情况下,优先保障分辨率,降低帧率去匹配,流畅度会受影响 |
在互动直播场景中,开启美颜功能、使用 720 P 甚至更高的分辨率和 24 fps 的帧率对设备性能要求较高,因此在低端机上容易出现瓶颈。
ClubHouse
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性 |
纯语音聊天场景:
|
在网络环境不够稳定的情况下,低码率可以保证语音通话的基本需求,且人声明晰。 |
主播唱歌或播放伴音的场景:
|
在保证高音质的同时节省流量,频繁上下麦时不卡顿。连麦时保留人声、减少杂音。 |
|
场景属性setChannelProfile |
kNERtcChannelProfileLiveBroadcasting (直播模式) | - |
游戏开黑
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性setAudioProfile |
Profile:kNERtcAudioProfileStandardExtend (单声道标准扩展音质) | 在网络环境不够稳定的情况下,低码率可以保证语音通话的基本需求,且人声明晰。 |
Scenario:kNERtcAudioScenarioChatroom(语音聊天室场景) | 带耳机或蓝牙耳机时, 3A 设置和 MUSIC 场景类似。 在声音外放时,3A 会尽可能使用硬件 AEC(回声消除),消除游戏声音。 |
|
场景属性setChannelProfile |
kNERtcChannelProfileLiveBroadcasting (直播模式) | 保证画质清晰度,抗弱网能力强。 延时会比 COMMUNICATION(通信模式)大。在出现资源不够的情况下,优先保障分辨率,降低帧率去匹配,流畅度会受影响。 |
在线会议
移动端
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性 |
|
在网络环境不够稳定的情况下,低码率可以保证语音通话的基本需求。 Speech 模式下,回声、噪声等环境音过滤效果较好,可以提供更为清晰的人声语音效果。 |
以整体画布比例为 16:9 为例:
|
保证画面流畅性和画质清晰度。 |
|
场景属性setChannelProfile |
kNERtcChannelProfileCommunication (通信模式) | 此模式对带宽要求低,延时较低,保证会议质量。 |
PC 端
属性 |
推荐配置 |
推荐原因 |
---|---|---|
音频属性 |
|
高清音质。 Speech 模式下,回声、噪声等环境音过滤效果较好,可以提供更为清晰的人声语音效果。 |
以整体画布比例为 16:9 为例:
|
高帧率保证画面流畅性和画质清晰度。 |
|
场景属性setChannelProfile |
kNERtcChannelProfileCommunication (通信模式) | 此模式对带宽要求低,延时较低,保证会议质量。 |