音视频参数配置推荐

更新时间: 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(回声消除),可以更好过滤回声、噪声等环境音,且功耗低,提供更为清晰的人声语音效果。
该模式会损失音乐的音质,但是满足语音通话的要求。

视频属性
setLocalVideoConfig

以整体画布比例为 16:9 为例:

  • 分辨率:640 x 360
  • 帧率:15 fps

根据中低端手机的性能,在保证视频质量的情况下减少流量消耗和提高视频传输的稳定性。如果对清晰度要求较高,分辨率可以设置为 960 x 540,帧率为 15 fps 。

场景属性
setChannelProfile
娱乐社交/通用 1 对 1 聊天场景:kNERtcChannelProfileLiveBroadcasting (直播模式)
  • 此模式的视频编码质量和清晰度较高。
  • 在弱网环境下,优先保证高清晰、高质量的画面效果。
会议场景:kNERtcChannelProfileCommunication (通信模式)
  • 此模式对带宽要求低,延时较低。
  • 在弱网环境下,优先保证低延时、高流畅的通话体验

在 1 对 1 音视频通话场景中,请调用 enableDualStreamMode 接口关闭大小流,以避免增加功耗和带宽消耗。本场景不需要视频双流模式。

多人音视频通话

属性
推荐配置
推荐原因
音频属性
setAudioProfile
Profile:kNERtcAudioProfileStandard(单声道标准音质) 满足语音通话的要求且抗网络波动,同时尽量减少带宽消耗和性能开销。
Scenario:kNERtcAudioScenarioSpeech(语音场景) 默认使用硬件 AEC(回声消除),可以更好过滤回声、噪声等环境音,且功耗低,提供更为清晰的人声语音效果。
该模式会损失音乐的音质,但是满足语音通话的要求。

视频属性
setLocalVideoConfig

以整体画布比例为 16:9 为例:

  • 分辨率:640 x 360
  • 帧率:24 fps
  • 高帧率保障画面流畅不卡顿。
  • 若为直播场景且人数较多,可以将帧率降至 15 fps。

以整体画布比例为 4:3 为例:

  • 分辨率:640 x 480
  • 帧率:24 fps

以整体画布比例为 1:1 为例:

  • 分辨率:480 x 480
  • 帧率:24 fps
场景属性
setChannelProfile
kNERtcChannelProfileLiveBroadcasting (直播模式)
  • 此模式的视频编码质量和清晰度较高。
  • 在弱网环境下,优先保证高清晰、高质量的画面效果。

语聊房

下表的推荐配置为国内场景的配置,如果是海外数据中心,推荐配置请参见海外音视频参数配置推荐

属性
推荐配置
推荐原因
音频属性
setAudioProfile
主播使用移动设备:
Profile:kNERtcAudioProfileMiddleQuality (单声道中等音质)
在保证高音质的同时节省流量,频繁上下麦时不卡顿。 连麦时保留人声、减少杂音。
主播使用 PC:
Profile:kNERtcAudioProfileHighQualityStereo (双声道高音质)
满足娱乐场景中主播对高音质的需求。
Scenario:kNERtcAudioScenarioMusic(音乐场景) 兼顾语聊和背景音等场景,具备更好的兼容性和扩展性。
场景属性
setChannelProfile
kNERtcChannelProfileLiveBroadcasting (直播模式) 在弱网环境下,倾向于品质优先,保障观众的体感。

在线 KTV

属性
推荐配置
推荐原因

音频属性
setAudioProfile

  • Profile:kNERtcAudioProfileHighQualityStereo(双声道高音质)
  • Scenario:kNERtcAudioScenarioMusic(音乐场景)

音乐级高清音质,人声和背景音乐声音都有丰富的呈现。满足娱乐场景中主播对高音质的需求。

场景属性
setChannelProfile
kNERtcChannelProfileLiveBroadcasting (直播模式) 在弱网环境下,倾向于品质优先,保障观众的体感。

一起听

属性
推荐配置
推荐原因

音频属性
setAudioProfile

  • Profile:kNERtcAudioProfileHighQualityStereo(双声道高音质)
  • Scenario:kNERtcAudioScenarioMusic(音乐场景)

音乐级高清音质,人声和背景音乐声音都有丰富的呈现。满足娱乐场景中主播对高音质的需求。

场景属性
setChannelProfile
kNERtcChannelProfileLiveBroadcasting (直播模式) 在弱网环境下,倾向于品质优先,保障观众的体感。

小游戏

属性
推荐配置
推荐原因
音频属性
setAudioProfile
Profile:kNERtcAudioProfileStandardExtend (单声道标准扩展音质) 在网络环境不够稳定的情况下,低码率可以保证语音通话的基本需求,且人声明晰。
Scenario:kNERtcAudioScenarioChatroom(语音聊天室场景) 带耳机或蓝牙耳机时, 3A 设置和 MUSIC 场景类似。
在声音外放时,3A 会尽可能使用硬件 AEC(回声消除),消除游戏声音。
场景属性
setChannelProfile
kNERtcChannelProfileLiveBroadcasting (直播模式) 保证画质清晰度,抗弱网能力强。
延时会比 COMMUNICATION(通信模式)大。在出现资源不够的情况下,优先保障分辨率,降低帧率去匹配,流畅度会受影响。

互动直播

属性
推荐配置
推荐原因

音频属性
setAudioProfile

  • Profile:kNERtcAudioProfileHighQuality(单声道高音质) 或 kNERtcAudioProfileHighQualityStereo(双声道,伴音场景可以选择该模式)
  • Scenario:kNERtcAudioScenarioMusic(音乐场景) 下发配置中关掉 inbandfec 和 dtx。

高清音质。满足娱乐场景中主播对高音质的需求。

视频属性
setLocalVideoConfig

以整体画布比例为 16:9 为例:

  • 分辨率:1280 x 720
  • 帧率:15 fps

    或者
  • 分辨率: 960 x 540
  • 帧率:15 fps
    或者
  • 分辨率: 640 x 360
  • 帧率:24 fps

保证画质清晰度。

场景属性
setChannelProfile
kNERtcChannelProfileLiveBroadcasting (直播模式) 保证画质清晰度,抗弱网能力强。
延时会比 kNERtcChannelProfileCommunication (通信模式)大。在出现资源不够的情况下,优先保障分辨率,降低帧率去匹配,流畅度会受影响

在互动直播场景中,开启美颜功能、使用 720 P 甚至更高的分辨率和 24 fps 的帧率对设备性能要求较高,因此在低端机上容易出现瓶颈。

ClubHouse

属性
推荐配置
推荐原因

音频属性
setAudioProfile

纯语音聊天场景:

  • Profile:kNERtcAudioProfileStandard(单声道标准音质)
  • Scenario:kNERtcAudioScenarioSpeech(语音场景)

在网络环境不够稳定的情况下,低码率可以保证语音通话的基本需求,且人声明晰。

主播唱歌或播放伴音的场景:

  • Profile:kNERtcAudioProfileHighQuality(单声道高音质)
  • Scenario:kNERtcAudioScenarioChatroom

在保证高音质的同时节省流量,频繁上下麦时不卡顿。连麦时保留人声、减少杂音。

场景属性
setChannelProfile
kNERtcChannelProfileLiveBroadcasting (直播模式) -

游戏开黑

属性
推荐配置
推荐原因
音频属性
setAudioProfile
Profile:kNERtcAudioProfileStandardExtend (单声道标准扩展音质) 在网络环境不够稳定的情况下,低码率可以保证语音通话的基本需求,且人声明晰。
Scenario:kNERtcAudioScenarioChatroom(语音聊天室场景) 带耳机或蓝牙耳机时, 3A 设置和 MUSIC 场景类似。
在声音外放时,3A 会尽可能使用硬件 AEC(回声消除),消除游戏声音。
场景属性
setChannelProfile
kNERtcChannelProfileLiveBroadcasting (直播模式) 保证画质清晰度,抗弱网能力强。
延时会比 COMMUNICATION(通信模式)大。在出现资源不够的情况下,优先保障分辨率,降低帧率去匹配,流畅度会受影响。

在线会议

移动端

属性
推荐配置
推荐原因

音频属性
setAudioProfile

  • Profile:kNERtcAudioProfileStandard(单声道标准音质)
  • Scenario:kNERtcAudioScenarioSpeech(语音场景)

在网络环境不够稳定的情况下,低码率可以保证语音通话的基本需求。 Speech 模式下,回声、噪声等环境音过滤效果较好,可以提供更为清晰的人声语音效果。

视频属性
setLocalVideoConfig

以整体画布比例为 16:9 为例:

  • 不含美颜功能
    • 分辨率:1280 x 720
    • 帧率:24 fps
  • 含美颜功能
    • 分辨率:640 x 360
    • 帧率:15 fps

保证画面流畅性和画质清晰度。

场景属性
setChannelProfile
kNERtcChannelProfileCommunication (通信模式) 此模式对带宽要求低,延时较低,保证会议质量。

PC 端

属性
推荐配置
推荐原因

音频属性
setAudioProfile

  • Profile:kNERtcAudioProfileHighQuality(单声道高音质)
  • Scenario:kNERtcAudioScenarioSpeech(语音场景)

高清音质。 Speech 模式下,回声、噪声等环境音过滤效果较好,可以提供更为清晰的人声语音效果。

视频属性
setLocalVideoConfig

以整体画布比例为 16:9 为例:

  • 摄像头视频
    • 分辨率:1920 x 1080
    • 帧率:30 fps
  • 屏幕共享
    • 分辨率:1920 x 1080
    • 帧率:30 fps

高帧率保证画面流畅性和画质清晰度。

场景属性
setChannelProfile
kNERtcChannelProfileCommunication (通信模式) 此模式对带宽要求低,延时较低,保证会议质量。
此文档是否对你有帮助?
有帮助
去反馈
  • 音视频参数的基本属性
  • 场景属性
  • 分辨率
  • 帧率
  • 码率
  • 示例代码
  • 典型场景推荐配置
  • 1 对 1 音视频通话
  • 多人音视频通话
  • 语聊房
  • 在线 KTV
  • 一起听
  • 小游戏
  • 互动直播
  • ClubHouse
  • 游戏开黑
  • 在线会议