AgoraVideoEncoderConfiguration
视频编码器的配置。
Objective-C
__attribute__((visibility("default"))) @interface AgoraVideoEncoderConfiguration : NSObject
@property(assign, nonatomic) CGSize dimensions;
@property(assign, nonatomic) AgoraVideoCodecType codecType;
@property(assign, nonatomic) AgoraVideoFrameRate frameRate;
@property(assign, nonatomic) NSInteger bitrate;
@property(assign, nonatomic) NSInteger minBitrate;
@property(assign, nonatomic) AgoraVideoOutputOrientationMode orientationMode;
@property(assign, nonatomic) AgoraVideoMirrorMode mirrorMode;
@property (assign, nonatomic) AgoraDegradationPreference degradationPreference;
- (instancetype _Nonnull)initWithSize:(CGSize)size
frameRate:(AgoraVideoFrameRate)frameRate
bitrate:(NSInteger)bitrate
orientationMode:(AgoraVideoOutputOrientationMode)orientationMode
mirrorMode:(AgoraVideoMirrorMode)mirrorMode;
- (instancetype _Nonnull)initWithWidth:(NSInteger)width
height:(NSInteger)height
frameRate:(AgoraVideoFrameRate)frameRate
bitrate:(NSInteger)bitrate
orientationMode:(AgoraVideoOutputOrientationMode)orientationMode
mirrorMode:(AgoraVideoMirrorMode)mirrorMode;
@end
dimensions
用户可以自行设置分辨率,也可以在如下列表中直接选择想要的分辨率:
- AgoraVideoDimension120x120:视频分辨率为 120 × 120。
- AgoraVideoDimension160x120:视频分辨率为 160 × 120。
- AgoraVideoDimension180x180:视频分辨率为 180 × 180。
- AgoraVideoDimension240x180:视频分辨率为 240 × 180。
- AgoraVideoDimension320x180:视频分辨率为 320 × 180。
- AgoraVideoDimension240x240:视频分辨率为 240 × 240。
- AgoraVideoDimension320x240:视频分辨率为 320 × 240。
- AgoraVideoDimension424x240:视频分辨率为 424 × 240。
- AgoraVideoDimension360x360:视频分辨率为 360 × 360。
- AgoraVideoDimension480x360:视频分辨率为 480 × 360。
- AgoraVideoDimension640x360:视频分辨率为 640 × 360。
- AgoraVideoDimension480x480:视频分辨率为 480 × 480。
- AgoraVideoDimension640x480:视频分辨率为 640 × 480。
- AgoraVideoDimension840x480:视频分辨率为 840 × 480。
- AgoraVideoDimension960x540:视频分辨率为 960 × 540。
- AgoraVideoDimension960x720:视频分辨率为 960 × 720。
- AgoraVideoDimension1280x720:视频分辨率为 1280 × 720。
- AgoraVideoDimension1920x1080:视频分辨率为 1920 × 1080。
- AgoraVideoDimension2540x1440:视频分辨率为 2540 × 1440。
- AgoraVideoDimension3840x2160:视频分辨率为 3840 × 2160。
注意
- 视频能否达到 720P 及以上分辨率取决于设备的性能,在性能配备较低的设备上有可能无法实现。如果采用 720P 分辨率而设备性能跟不上,则有可能出现帧率过低的情况。
- 默认值为 960 × 540。
codecType
视频编码类型,详见 AgoraVideoCodecType。
frameRate
视频编码的帧率(fps),默认值为 15。详见 AgoraVideoFrameRate。
bitrate
视频编码码率,单位为 Kbps。该参数无需设置,保留默认值 AgoraVideoBitrateStandard 即可,SDK 会根据你设定的视频分辨率和帧率自动匹配最合适的码率。有关视频分辨率和帧率的对应关系,详见视频属性。
- AgoraVideoBitrateStandard (0): (默认) 标准码率模式。
- AgoraVideoBitrateCompatible (-1): 适配码率模式。一般情况下,声网建议你不要使用该值。
minBitrate
最低编码码率,单位为 Kbps。
SDK 会根据网络状况自动调整视频编码码率。将参数设为高于默认值可强制视频编码器输出高质量图片,但在网络状况不佳情况下可能导致网络丢包并影响视频播放的流畅度造成卡顿。因此如非对画质有特殊需求,声网建议不要修改该参数的值。
注意
该参数仅适用于直播场景。
orientationMode
视频编码的方向模式,详见 AgoraVideoOutputOrientationMode。
degradationPreference
带宽受限时,视频编码降级偏好。详见 AgoraDegradationPreference。
注意
当该参数设置为 AgoraDegradationMaintainFramerate (1) 或者 AgoraDegradationBalanced (2) 时,需要同时将 orientationMode 设置为 AgoraVideoOutputOrientationModeAdaptative (0),否则设置不生效。
mirrorMode
发送编码视频时是否开启镜像模式,只影响远端用户看到的视频画面。详见 AgoraVideoMirrorMode。
注意
默认关闭镜像模式。
advanceOptions
视频编码的高级选项。详见 AgoraAdvancedVideoOptions。
方法
initWithSize
指定视频分辨率并初始化一个 AgoraVideoEncoderConfiguration 对象。详见 initWithSize:frameRate:bitrate:orientationMode:mirrorMode:。