场景模式

更新时间: 2024/08/23 10:24:52

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

  • 基础通话模式:该模式主要用于对音质要求一般对流量消耗敏感的场景,该模式下音频采样率为16KHz,各个音频预处理开关打开,完全满足人声通话的音质要求,流量和电量消耗相对较小。
  • 高清通话模式:该模式主要用于对通话音质要求较高且通话过程不存在音乐的场景,该模式下音频采样率为48KHz,各个音频预处理开关打开,满足高音质人声通话的需求。
  • 高清音乐模式:该模式用于对音乐流畅度与音质均有高要求的场景(如在线音乐教学等场景),该模式下音频采样率为48KHz,前处理与编码器均针对音乐场景做了定制优化,在码率分配上会更多考虑音频码率,能够很好地保留乐器高音信息,此场景模式推荐以音乐为主的音频场景使用。
  • 自适应高清音乐模式:该模式主要用于既有人声也有音乐的场景,该模式下音频采样率为48KHz,在音视频房间内只有一人发言(其他人都是观众)时,采集模块会自动关闭自带的音频预处理功能,而在多人参与互动时,采集模块会自动打开相关的音频预处理功能,需要注意此时音乐的音质可能会受到影响。此场景模式目前仅推荐不存在互动的音乐场景(如单主播音乐直播)使用。

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

  • 清晰优先策略:该策略主要用于对视频清晰度要求较高的场景,在网络带宽受限情况下,允许通过自适应调节码率、帧率等视频参数,优先保障视频清晰度(画质),极端网络条件下将最多下调一次视频清晰度。
  • 流畅优先策略:该策略主要用于对视频流畅度要求较高的场景,在网络带宽首先情况下,允许通过自适应调节码率、视频清晰度等视频参数,优先保障视频流畅度。
  • 屏幕共享场景调控策略:该策略主要用于在线教育等场景下要求在任何网络状况下均不下调分辨率的情况,网络状况不佳时帧率会降到数帧,推荐在PC屏幕共享进行在线教学等特定场景下使用。

音频场景模式

  • API介绍

在不同的音视频使用场景中,对于流量音质人声音乐的要求都不同。我们归纳了四种模式: 基础通话模式、高清通话模式、自适应高清音乐模式、强制高清音乐模式。不同的模式通过setChannelProfilesetParameters接口设置相关参数。

  • API原型
java    /**
     * 设置通话场景模式,需要在发起通话前设置。
     *
     * @param profile 通话场景
     * @return {@code true} 方法调用成功,{@code false} 方法调用失败
     * @see AVChatChannelProfile
     */
    public abstract boolean setChannelProfile(int profile);

    /**
     * 设置参数。
     * 参数类型参考 {@link AVChatParameters.Key#type()}。
     * 参数可设置时机参考 {@link AVChatParameters.Key#runtime()},支持 {@code runtime} 代表通话过程中可操作,不支持则仅能通话前操作。
     * 参数是否可设置参考 {@link AVChatParameters.Key#writable()}, 支持 {@code writable} 代表能够设置参数值,不支持则仅能获取参数值。
     *
     * @param params 设置参数
     * @throws IllegalArgumentException 参数值非法或者参数不支持运行时设置
     * @see AVChatParameters
     * @see AVChatParameters.Key
     * @see AVChatMediaCodecMode
     * @see AVChatAudioEffectMode
     */
    public abstract void setParameters(AVChatParameters params) throws IllegalArgumentException;
  • 示例
  • 基础通话模式

    在该模式下,需要开发者进行相关配置,如下:

    • 场景模式设置 AVChatChannelProfile#CHANNEL_PROFILE_DEFAULT
    • 关闭高清语音开关 AVChatParameters#KEY_AUDIO_HIGH_QUALITY
  • 高清通话模式

    在该模式下,需要开发者进行相关配置,如下:

    • 场景模式设置 AVChatChannelProfile#CHANNEL_PROFILE_DEFAULT
    • 打开高清语音开关 AVChatParameters#KEY_AUDIO_HIGH_QUALITY
  • 自适应高清音乐模式

    在该模式下,需要开发者进行相关配置,如下:

    • 场景模式设置 AVChatChannelProfile#CHANNEL_PROFILE_HIGH_QUALITY_MUSIC_ADAPTIVE
    • 打开高清语音开关 AVChatParameters#KEY_AUDIO_HIGH_QUALITY
  • 高清音乐模式

    在该模式下,需要开发者进行相关配置,如下:

    • 场景模式设置 AVChatChannelProfile#CHANNEL_PROFILE_HIGH_QUALITY_MUSIC
    • 打开高清语音开关 AVChatParameters#KEY_AUDIO_HIGH_QUALITY

视频调控模式

  • API介绍

设置视频质量调整策略,可以设置清晰优先或者流畅优先以及屏幕共享模式。

  • API原型
java    /**
     * <p>视频质量调整策略设置</p>
     *
     * <p>目前视频调整支持三种模式:
     * <ul>
     *     <li>清晰优先。 在此模式下会优先保证视频的清晰度, 网络不稳定时会优先降低帧率来保证视频的清晰度</li>
     *     <li>流畅优先。 在此模式下会优先保证视频的流畅度, 网络不稳定是会优先降低视频分辨率来保证视频的流畅度</li>
     *     <li>录屏模式。 在此模式下会保持分辨率不变, 初始码率较低,IP帧比例增大</li>
     * </ul>
     * </p>
     *
     * @param strategy 策略类型 {@link AVChatVideoQualityStrategy}
     * @return {@code true} 方法调用成功,{@code false} 方法调用失败
     * @see AVChatVideoQualityStrategy
     */
    public abstract boolean setVideoQualityStrategy(int strategy);
  • 参数说明
参数 说明
strategy 调控策略
  • 示例
java  //设置清晰优先
  AVChatManager.getInstance().setVideoQualityStrategy(AVChatVideoQualityStrategy.PreferImageQuality);
  //设置流畅优先
  AVChatManager.getInstance().setVideoQualityStrategy(AVChatVideoQualityStrategy.PreferFrameRate);
  //设置屏幕共享
  AVChatManager.getInstance().setVideoQualityStrategy(AVChatVideoQualityStrategy.ScreenSharing);
此文档是否对你有帮助?
有帮助
去反馈
  • 音频场景模式
  • 视频调控模式