VideoEncoderConfiguration
视频编码器的配置。
public class VideoEncoderConfiguration { public VIDEO_CODEC_TYPE codecType { set; get; } public VideoDimensions dimensions { set; get; } public int frameRate { set; get; } public int bitrate { set; get; } public int minBitrate { set; get; } public ORIENTATION_MODE orientationMode { set; get; } public DEGRADATION_PREFERENCE degradationPreference { set; get; } public VIDEO_MIRROR_MODE_TYPE mirrorMode { set; get; } public AdvanceOptions advanceOptions { set; get; } public VideoEncoderConfiguration(ref VideoDimensions d, int f, int b, ORIENTATION_MODE m, VIDEO_MIRROR_MODE_TYPE mirror = VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_DISABLED) { codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H264; dimensions = d; frameRate = f; bitrate = b; minBitrate = (int)BITRATE.DEFAULT_MIN_BITRATE; orientationMode = m; degradationPreference = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; mirrorMode = mirror; advanceOptions = new AdvanceOptions(ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); } public VideoEncoderConfiguration(int width, int height, int f, int b, ORIENTATION_MODE m, VIDEO_MIRROR_MODE_TYPE mirror = VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_DISABLED) { codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H264; dimensions = new VideoDimensions(width, height); frameRate = f; bitrate = b; minBitrate = (int)BITRATE.DEFAULT_MIN_BITRATE; orientationMode = m; degradationPreference = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; mirrorMode = mirror; advanceOptions = new AdvanceOptions(ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); } public VideoEncoderConfiguration(ref VideoEncoderConfiguration config) { codecType = config.codecType; dimensions = config.dimensions; frameRate = config.frameRate; bitrate = config.bitrate; minBitrate = config.minBitrate; orientationMode = config.orientationMode; degradationPreference = config.degradationPreference; mirrorMode = config.mirrorMode; advanceOptions = new AdvanceOptions(config.advanceOptions.encodingPreference, config.advanceOptions.compressionPreference); } public VideoEncoderConfiguration() { codecType = VIDEO_CODEC_TYPE.VIDEO_CODEC_H264; dimensions = new VideoDimensions((int)FRAME_WIDTH.FRAME_WIDTH_640, (int)FRAME_HEIGHT.FRAME_HEIGHT_360); frameRate = (int)FRAME_RATE.FRAME_RATE_FPS_15; bitrate = (int)BITRATE.STANDARD_BITRATE; minBitrate = (int)BITRATE.DEFAULT_MIN_BITRATE; orientationMode = ORIENTATION_MODE.ORIENTATION_MODE_ADAPTIVE; degradationPreference = DEGRADATION_PREFERENCE.MAINTAIN_QUALITY; mirrorMode = VIDEO_MIRROR_MODE_TYPE.VIDEO_MIRROR_MODE_DISABLED; advanceOptions = new AdvanceOptions(ENCODING_PREFERENCE.PREFER_AUTO, COMPRESSION_PREFERENCE.PREFER_LOW_LATENCY); } };
属性
- dimensions
-
视频编码的分辨率(px),详见 VideoDimensions。该参数用于衡量编码质量,以长 × 宽表示,默认值为 960 × 540。用户可以自行设置分辨率。
- codecType
- 视频编码类型,详见 VIDEO_CODEC_TYPE。
- frameRate
- 视频编码的帧率(fps),默认值为 15。详见 FRAME_RATE。
- bitrate
-
视频编码码率,单位为 Kbps。详见 BITRATE。
- minBitrate
-
最低编码码率,单位为 Kbps。
SDK 会根据网络状况自动调整视频编码码率。将参数设为高于默认值可强制视频编码器输出高质量图片,但在网络状况不佳情况下可能导致网络丢包并影响视频播放的流畅度造成卡顿。因此如非对画质有特殊需求,声网建议不要修改该参数的值。
注意: 该参数仅适用于直播场景。 - orientationMode
- 视频编码的方向模式,详见 ORIENTATION_MODE。
- degradationPreference
- 带宽受限时,视频编码降级偏好。详见 DEGRADATION_PREFERENCE 。
- mirrorMode
-
发送编码视频时是否开启镜像模式,只影响远端用户看到的视频画面。详见 VIDEO_MIRROR_MODE_TYPE。
注意: 默认关闭镜像模式。 - advanceOptions
- 视频编码的高级选项。详见 AdvanceOptions。