类 | |
---|---|
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 |
详细描述
VideoEncoderConfiguration 视频编码属性的定义。
类成员变量说明
VD_120x120
static final VideoDimensions VideoEncoderConfiguration.VD_120x120 = new VideoDimensions(120, 120)
VD_120x120:视频分辨率为 120 × 120。
VD_160x120
static final VideoDimensions VideoEncoderConfiguration.VD_160x120 = new VideoDimensions(160, 120)
VD_160x120:视频分辨率为 160 × 120。
VD_180x180
static final VideoDimensions VideoEncoderConfiguration.VD_180x180 = new VideoDimensions(180, 180)
VD_180x180:视频分辨率为 180 × 180。
VD_240x180
static final VideoDimensions VideoEncoderConfiguration.VD_240x180 = new VideoDimensions(240, 180)
VD_240x180:视频分辨率为 240 × 180。
VD_320x180
static final VideoDimensions VideoEncoderConfiguration.VD_320x180 = new VideoDimensions(320, 180)
VD_320x180:视频分辨率为 320 × 180。
VD_240x240
static final VideoDimensions VideoEncoderConfiguration.VD_240x240 = new VideoDimensions(240, 240)
VD_240x240:视频分辨率为 240 × 240。
VD_320x240
static final VideoDimensions VideoEncoderConfiguration.VD_320x240 = new VideoDimensions(320, 240)
VD_320x240:视频分辨率为 320 × 240。
VD_424x240
static final VideoDimensions VideoEncoderConfiguration.VD_424x240 = new VideoDimensions(424, 240)
VD_424x240:视频分辨率为 424 × 240。
VD_360x360
static final VideoDimensions VideoEncoderConfiguration.VD_360x360 = new VideoDimensions(360, 360)
VD_360x360:视频分辨率为 360 × 360。
VD_480x360
static final VideoDimensions VideoEncoderConfiguration.VD_480x360 = new VideoDimensions(480, 360)
VD_480x360:视频分辨率为 480 × 360。
VD_640x360
static final VideoDimensions VideoEncoderConfiguration.VD_640x360 = new VideoDimensions(640, 360)
VD_640x360:视频分辨率为 640 × 360。
VD_480x480
static final VideoDimensions VideoEncoderConfiguration.VD_480x480 = new VideoDimensions(480, 480)
VD_480x480:视频分辨率为 480 × 480。
VD_640x480
static final VideoDimensions VideoEncoderConfiguration.VD_640x480 = new VideoDimensions(640, 480)
VD_640x480:视频分辨率为 640 × 480。
VD_840x480
static final VideoDimensions VideoEncoderConfiguration.VD_840x480 = new VideoDimensions(840, 480)
VD_840x480:视频分辨率为 840 × 480
VD_960x720
static final VideoDimensions VideoEncoderConfiguration.VD_960x720 = new VideoDimensions(960, 720)
VD_960x720:视频分辨率为 960 × 720。
VD_1280x720
static final VideoDimensions VideoEncoderConfiguration.VD_1280x720 = new VideoDimensions(1280, 720)
VD_1280x720:视频分辨率为 1280 × 720。
VD_1920x1080
static final VideoDimensions VideoEncoderConfiguration.VD_1920x1080 = new VideoDimensions(1920, 1080)
VD_1920x1080:视频分辨率为 1920 × 1080。
VD_2540x1440
static final VideoDimensions VideoEncoderConfiguration.VD_2540x1440 = new VideoDimensions(2540, 1440)
VD_2540x1440:视频分辨率为 2540 × 1440。
VD_3840x2160
static final VideoDimensions VideoEncoderConfiguration.VD_3840x2160 = new VideoDimensions(3840, 2160)
VD_3840x2160:视频分辨率为 3840 × 2160。
STANDARD_BITRATE
static final int VideoEncoderConfiguration.STANDARD_BITRATE = 0
标准码率模式。该模式下,视频在通信和直播场景下的码率有所不同:
- 通信场景下,码率与基准码率一致
- 直播场景下,码率对照基准码率翻倍
COMPATIBLE_BITRATE
static final int VideoEncoderConfiguration.COMPATIBLE_BITRATE = -1
适配码率模式。该模式下,视频在通信和直播场景下的码率均与基准码率一致。直播下如果选择该模式,可能会导致帧率低于设置的值
DEFAULT_MIN_BITRATE
static final int VideoEncoderConfiguration.DEFAULT_MIN_BITRATE = -1
使用系统默认最低编码码率
DEFAULT_MIN_FRAMERATE
static final int VideoEncoderConfiguration.DEFAULT_MIN_FRAMERATE = -1
final int VideoEncoderConfiguration.DEFAULT_MIN_FRAMERATE = -1 | static |
---|---|
使用系统默认最低编码帧率
dimensions
VideoDimensions VideoEncoderConfiguration.dimensions
视频编码的分辨率 (px),用于衡量编码质量,以长 × 宽表示,默认值为 640 × 360。用户可以自行设置分辨率,也可以在如下列表中直接选择想要分辨率:
- VD_120x120:视频分辨率为 120 × 120
- VD_160x120:视频分辨率为 160 × 120
- VD_180x180:视频分辨率为 180 × 180
- VD_240x180:视频分辨率为 240 × 180
- VD_320x180:视频分辨率为 320 × 180
- VD_240x240:视频分辨率为 240 × 240
- VD_320x240:视频分辨率为 320 × 240
- VD_424x240:视频分辨率为 424 × 240
- VD_360x360:视频分辨率为 360 × 360
- VD_480x360:视频分辨率为 480 × 360
- VD_640x360:视频分辨率为 640 × 360
- VD_480x480:视频分辨率为 480 × 480
- VD_640x480:视频分辨率为 640 × 480
- VD_840x480:视频分辨率为 840 × 480
- VD_960x720:视频分辨率为 960 × 720
- VD_1280x720:视频分辨率为 1280 × 720
注解
该值不代表最终视频输出的方向。请查阅 ORIENTATION_MODE 了解设置视频方向。视频能否达到 720P 的分辨率取决于设备的性能,在性能配备较低的设备上有可能无法实现。如果采用 720P 分辨率而设备性能跟不上,则有可能出现帧率过低的情况。
frameRate
int VideoEncoderConfiguration.frameRate
视频编码的帧率(fps),默认值为 15。用户可以自行设置帧率,也可以在如下列表中直接选择想要的帧率。建议不要超过 30 帧。
- FRAME_RATE_FPS_1(1):每秒钟 1 帧。
- FRAME_RATE_FPS_7(7):每秒钟 7 帧。
- FRAME_RATE_FPS_10(10):每秒钟 10 帧。
- FRAME_RATE_FPS_15(15):每秒钟 15 帧。
- FRAME_RATE_FPS_24(24):每秒钟 24 帧。
- FRAME_RATE_FPS_30(30):每秒钟 30 帧。
minFrameRate
int VideoEncoderConfiguration.minFrameRate
最低视频编码帧率(fps)。默认值为 DEFAULT_MIN_FRAMERATE(-1),表示使用系统默认的最低编码帧率。
自从
v4.0.0。
关于该参数的适用场景及注意事项,请参考常用功能文档《设置视频属性》。
bitrate
int VideoEncoderConfiguration.bitrate
视频编码的码率。单位为 Kbps。你可以根据场景需要,参考下面的视频基准码率参考表,手动设置你想要的码率。若设置的视频码率超出合理范围,SDK 会自动按照合理区间处理码率。 你也可以直接选择如下任意一种模式进行设置:
- STANDARD_BITRATE = 0:(推荐)标准码率模式。该模式下,视频在通信和直播场景下的码率有所不同:
- 通信场景下,码率与基准码率一致
- 直播场景下,码率对照基准码率翻倍
- COMPATIBLE_BITRATE = -1:适配码率模式。该模式下,视频在通信和直播场景下的码率均与基准码率一致。直播下如果选择该模式,视频帧率可能会低于设置的值
AR 在通信和直播场景下采用不同的编码方式,以提升不同场景下的用户体验。通信场景保证流畅,而直播场景则更注重画面质量,因此直播场景对码率的需求大于通信场景。所以 AR 推荐将该参数设置为 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 |
-
注解
该表中的基准码率适用于通信场景。直播场景下通常需要较大码率来提升视频质量。AR 推荐通过设置 STANDARD_BITRATE = 0来实现。你也可以直接将码率值设为基准码率值 x 2。
minBitrate
int VideoEncoderConfiguration.minBitrate
最低视频编码码率。单位为 Kbps。
-
自从
v2.3.2。 AR SDK 会根据网络条件进行码率自适应。 该参数强制视频编码器输出高质量图片。如果将参数设为高于默认值,在网络状况不佳情况下可能会导致网络丢包,并影响视频播放的流畅度。因此如非对画质有特殊需求,AR 建议不要修改该参数的值。
-
注解
该参数仅适用于直播场景。
orientationMode
ORIENTATION_MODE VideoEncoderConfiguration.orientationMode
视频编码的方向模式。
degradationPrefer
DEGRADATION_PREFERENCE VideoEncoderConfiguration.degradationPrefer
带宽受限时,视频编码降级偏好
自从
v4.0.0。
具体的视频编码降级偏好请参考 DEGRADATION_PREFERENCE
mirrorMode
int VideoEncoderConfiguration.mirrorMode
本地发送视频的镜像模式,只影响远端用户看到的视频画面。
- VIDEO_MIRROR_AUTO(0):(默认)由 SDK 决定镜像模式。SDK 默认关闭视频编码的镜像模式。
- VIDEO_MIRROR_MODE_ENABLED(1):开启镜像模式。
- VIDEO_MIRROR_MODE_DISABLED(2):关闭镜像模式。