enum  DEGRADATION_PREFERENCE
 
enum  FRAME_RATE
 
enum  ORIENTATION_MODE
 
class  VideoDimensions
 

Public 成员函数

 VideoEncoderConfiguration (VideoDimensions dimensions, FRAME_RATE frameRate, int bitrate, ORIENTATION_MODE orientationMode)
 
 VideoEncoderConfiguration (int width, int height, FRAME_RATE frameRate, int bitrate, ORIENTATION_MODE orientationMode)
 

Public 属性

VideoDimensions dimensions
 
int frameRate
 
int minFrameRate
 
int bitrate
 
int minBitrate
 
ORIENTATION_MODE orientationMode
 
DEGRADATION_PREFERENCE degradationPrefer
 
int mirrorMode
 

静态 Public 属性

static final VideoDimensions VD_120x120 = new VideoDimensions(120, 120)
 
static final VideoDimensions VD_160x120 = new VideoDimensions(160, 120)
 
static final VideoDimensions VD_180x180 = new VideoDimensions(180, 180)
 
static final VideoDimensions VD_240x180 = new VideoDimensions(240, 180)
 
static final VideoDimensions VD_320x180 = new VideoDimensions(320, 180)
 
static final VideoDimensions VD_240x240 = new VideoDimensions(240, 240)
 
static final VideoDimensions VD_320x240 = new VideoDimensions(320, 240)
 
static final VideoDimensions VD_424x240 = new VideoDimensions(424, 240)
 
static final VideoDimensions VD_360x360 = new VideoDimensions(360, 360)
 
static final VideoDimensions VD_480x360 = new VideoDimensions(480, 360)
 
static final VideoDimensions VD_640x360 = new VideoDimensions(640, 360)
 
static final VideoDimensions VD_480x480 = new VideoDimensions(480, 480)
 
static final VideoDimensions VD_640x480 = new VideoDimensions(640, 480)
 
static final VideoDimensions VD_840x480 = new VideoDimensions(840, 480)
 
static final VideoDimensions VD_960x720 = new VideoDimensions(960, 720)
 
static final VideoDimensions VD_1280x720 = new VideoDimensions(1280, 720)
 
static final VideoDimensions VD_1920x1080 = new VideoDimensions(1920, 1080)
 
static final VideoDimensions VD_2540x1440 = new VideoDimensions(2540, 1440)
 
static final VideoDimensions VD_3840x2160 = new VideoDimensions(3840, 2160)
 
static final int STANDARD_BITRATE = 0
 
static final int COMPATIBLE_BITRATE = -1
 
static final int DEFAULT_MIN_BITRATE = -1
 
static final int DEFAULT_MIN_FRAMERATE = -1
 

详细描述

VideoEncoderConfiguration 视频编码属性的定义。

类成员变量说明

◆ bitrate

int io.agora.rtc.video.VideoEncoderConfiguration.bitrate

视频编码的码率。单位为 Kbps。你可以根据场景需要,参考下面的视频基准码率参考表,手动设置你想要的码率。若设置的视频码率超出合理范围,SDK 会自动按照合理区间处理码率。 你也可以直接选择如下任意一种模式进行设置:

  • STANDARD_BITRATE = 0:(推荐)标准码率模式。该模式下,视频在通信和直播场景下的码率有所不同:
    • 通信场景下,码率与基准码率一致
    • 直播场景下,码率对照基准码率翻倍
  • COMPATIBLE_BITRATE = -1:适配码率模式。该模式下,视频在通信和直播场景下的码率均与基准码率一致。直播下如果选择该模式,视频帧率可能会低于设置的值

Agora 在通信和直播场景下采用不同的编码方式,以提升不同场景下的用户体验。通信场景保证流畅,而直播场景则更注重画面质量,因此直播场景对码率的需求大于通信场景。所以 Agora 推荐将该参数设置为 STANDARD_BITRATE = 0

视频码率参考表

分辨率 帧率(fps) 基准码率(通信场景)(Kbps) 直播码率(直播场景)(Kbps)
160 × 120 15 65 130
120 × 120 15 50 100
320 × 180 15 140 280
180 × 180 15 100 200
240 × 180 15 120 240
320 × 240 15 200 400
240 × 240 15 140 280
424 × 240 15 220 440
640 × 360 15 400 800
360 × 360 15 260 520
640 × 360 30 600 1200
360 × 360 30 400 800
480 × 360 15 320 640
480 × 360 30 490 980
640 × 480 15 500 1000
480 × 480 15 400 800
640 × 480 30 750 1500
480 × 480 30 600 1200
848 × 480 15 610 1220
848 × 480 30 930 1860
640 × 480 10 400 800
1280 × 720 15 1130 2260
1280 × 720 30 1710 3420
960 × 720 15 910 1820
960 × 720 30 1380 2760
注解
该表中的基准码率适用于通信场景。直播场景下通常需要较大码率来提升视频质量。Agora 推荐通过设置 STANDARD_BITRATE = 0 来实现。你也可以直接将码率值设为基准码率值 x 2。

◆ COMPATIBLE_BITRATE

final int io.agora.rtc.video.VideoEncoderConfiguration.COMPATIBLE_BITRATE = -1
static

适配码率模式。该模式下,视频在通信和直播场景下的码率均与基准码率一致。直播下如果选择该模式,可能会导致帧率低于设置的值

◆ DEFAULT_MIN_BITRATE

final int io.agora.rtc.video.VideoEncoderConfiguration.DEFAULT_MIN_BITRATE = -1
static

使用系统默认最低编码码率

◆ DEFAULT_MIN_FRAMERATE

final int io.agora.rtc.video.VideoEncoderConfiguration.DEFAULT_MIN_FRAMERATE = -1
static

使用系统默认最低编码帧率

◆ degradationPrefer

DEGRADATION_PREFERENCE io.agora.rtc.video.VideoEncoderConfiguration.degradationPrefer

带宽受限时,视频编码降级偏好

自从
v2.4.0。

具体的视频编码降级偏好请参考 DEGRADATION_PREFERENCE

◆ dimensions

VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.dimensions

视频编码的分辨率 (px),用于衡量编码质量,以长 × 宽表示,默认值为 640 × 360。用户可以自行设置分辨率,也可以在如下列表中直接选择想要分辨率:

注解
  • 该值不代表最终视频输出的方向。请查阅 ORIENTATION_MODE 了解设置视频方向。
  • 视频能否达到 720P 的分辨率取决于设备的性能,在性能配备较低的设备上有可能无法实现。如果采用 720P 分辨率而设备性能跟不上,则有可能出现帧率过低的情况。

◆ frameRate

int io.agora.rtc.video.VideoEncoderConfiguration.frameRate

视频编码的帧率(fps),默认值为 15。用户可以自行设置帧率,也可以在如下列表中直接选择想要的帧率。建议不要超过 30 帧。

◆ minBitrate

int io.agora.rtc.video.VideoEncoderConfiguration.minBitrate

最低视频编码码率。单位为 Kbps。

自从
v2.3.2。 Agora SDK 会根据网络条件进行码率自适应。 该参数强制视频编码器输出高质量图片。如果将参数设为高于默认值,在网络状况不佳情况下可能会导致网络丢包,并影响视频播放的流畅度。因此如非对画质有特殊需求,Agora 建议不要修改该参数的值。
注解
该参数仅适用于直播场景。

◆ minFrameRate

int io.agora.rtc.video.VideoEncoderConfiguration.minFrameRate

最低视频编码帧率(fps)。默认值为 DEFAULT_MIN_FRAMERATE(-1),表示使用系统默认的最低编码帧率。

自从
v2.4.0。

关于该参数的适用场景及注意事项,请参考常用功能文档《设置视频属性》。

◆ mirrorMode

int io.agora.rtc.video.VideoEncoderConfiguration.mirrorMode

本地发送视频的镜像模式,只影响远端用户看到的视频画面。

  • VIDEO_MIRROR_AUTO(0):(默认)由 SDK 决定镜像模式。SDK 默认关闭视频编码的镜像模式。
  • VIDEO_MIRROR_MODE_ENABLED(1):开启镜像模式。
  • VIDEO_MIRROR_MODE_DISABLED(2):关闭镜像模式。

◆ orientationMode

ORIENTATION_MODE io.agora.rtc.video.VideoEncoderConfiguration.orientationMode

视频编码的方向模式。

详见 ORIENTATION_MODE

◆ STANDARD_BITRATE

final int io.agora.rtc.video.VideoEncoderConfiguration.STANDARD_BITRATE = 0
static

标准码率模式。该模式下,视频在通信和直播场景下的码率有所不同:

  • 通信场景下,码率与基准码率一致
  • 直播场景下,码率对照基准码率翻倍

◆ VD_120x120

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_120x120 = new VideoDimensions(120, 120)
static

VD_120x120:视频分辨率为 120 × 120。

◆ VD_1280x720

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_1280x720 = new VideoDimensions(1280, 720)
static

VD_1280x720:视频分辨率为 1280 × 720。

◆ VD_160x120

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_160x120 = new VideoDimensions(160, 120)
static

VD_160x120:视频分辨率为 160 × 120。

◆ VD_180x180

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_180x180 = new VideoDimensions(180, 180)
static

VD_180x180:视频分辨率为 180 × 180。

◆ VD_1920x1080

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_1920x1080 = new VideoDimensions(1920, 1080)
static

VD_1920x1080:视频分辨率为 1920 × 1080。

◆ VD_240x180

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_240x180 = new VideoDimensions(240, 180)
static

VD_240x180:视频分辨率为 240 × 180。

◆ VD_240x240

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_240x240 = new VideoDimensions(240, 240)
static

VD_240x240:视频分辨率为 240 × 240。

◆ VD_2540x1440

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_2540x1440 = new VideoDimensions(2540, 1440)
static

VD_2540x1440:视频分辨率为 2540 × 1440。

◆ VD_320x180

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_320x180 = new VideoDimensions(320, 180)
static

VD_320x180:视频分辨率为 320 × 180。

◆ VD_320x240

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_320x240 = new VideoDimensions(320, 240)
static

VD_320x240:视频分辨率为 320 × 240。

◆ VD_360x360

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_360x360 = new VideoDimensions(360, 360)
static

VD_360x360:视频分辨率为 360 × 360。

◆ VD_3840x2160

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_3840x2160 = new VideoDimensions(3840, 2160)
static

VD_3840x2160:视频分辨率为 3840 × 2160。

◆ VD_424x240

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_424x240 = new VideoDimensions(424, 240)
static

VD_424x240:视频分辨率为 424 × 240。

◆ VD_480x360

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_480x360 = new VideoDimensions(480, 360)
static

VD_480x360:视频分辨率为 480 × 360。

◆ VD_480x480

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_480x480 = new VideoDimensions(480, 480)
static

VD_480x480:视频分辨率为 480 × 480。

◆ VD_640x360

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_640x360 = new VideoDimensions(640, 360)
static

VD_640x360:视频分辨率为 640 × 360。

◆ VD_640x480

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_640x480 = new VideoDimensions(640, 480)
static

VD_640x480:视频分辨率为 640 × 480。

◆ VD_840x480

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_840x480 = new VideoDimensions(840, 480)
static

VD_840x480:视频分辨率为 840 × 480

◆ VD_960x720

final VideoDimensions io.agora.rtc.video.VideoEncoderConfiguration.VD_960x720 = new VideoDimensions(960, 720)
static

VD_960x720:视频分辨率为 960 × 720。