com.aliyun.svideosdk.common.struct.recorder

## Class MediaInfo

- java.lang.Object
- - com.aliyun.svideosdk.common.struct.recorder.MediaInfo

-     public class MediaInfo
      extends java.lang.Object

  录制参数配置类

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `mBitrate`
    `protected int` | `mGop`
    `protected VideoQuality` | `mVideoQuality`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MediaInfo()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getCrf()` 获取视频编码质量因子
    `int` | `getEncoderFps()`
    `int` | `getFps()` 获取录制采集帧率
    `int` | `getGop()` 获取Gop大小
    `int` | `getVideoBitrate()` 视频码率
    `VideoCodecs` | `getVideoCodec()` 获取编码器类型
    `int` | `getVideoHeight()` 获取视频高度
    `VideoQuality` | `getVideoQuality()` 获取视频质量
    `int` | `getVideoWidth()` 获取视频宽度
    `int` | `setCrf(int crf)` 设置 crf（编码质量因子）值，默认
    `int` | `setEncoderFps(int encoderFps)` 设置编码帧率，必须在[，]之间，否则将为无效的值，将使用内置默认值30。 编码帧率只会影响编码的码率，并不能决定实际输出的视频帧率，实际视频帧率受摄像头采集帧率和渲染性能的影响，根据实际情况而定。
    `int` | `setFps(int fps)` 设置录制采集帧率，必须在[，]之间，否则将为无效的值，将使用默认值 30.
    `int` | `setGop(int gop)` 设置Gop大小，这里的gop单位是帧数，即两个I帧之间间隔多少帧，而实际上硬编码器内部是以时间为gop单位的，即两个I帧间隔多少秒，因此 实际输出视频的Gop是用该值除以编码帧率计算而出。举例编码帧率设置为25fps，该接口设置125，则实际视频的gop值是5秒，也就是5秒一个I帧。 如果设置的gop小于帧率值，则内部给到编码器的gop为1，如果大于25，则取整计算。
    `int` | `setVideoBitrate(int bitrate)` 视频码率，有效的码率值必须在[200, 20000]之间，即最小是200Kbps，最大是20Mbps 单位：kbps，如果超过当前分辨率的使用码率值，有的编码器 不会无限增加码率，比如720P的码率值4M应该就足够使用了，可能会出现设置10M码率，输出的视频码率依然只有4M左右，具体根据不同编码器行为而定。
    `void` | `setVideoCodec(VideoCodecs videoCodec)` 设置编码器类型
    `int` | `setVideoHeight(int videoHeight)` 设置视频的高
    `void` | `setVideoQuality(VideoQuality quality)` 设置视频质量，该接口影响的是生成视频的码率
    `int` | `setVideoWidth(int videoWidth)` 设置视频的宽

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### mGop

          protected int mGop

    - #### mBitrate

          protected int mBitrate

    - #### mVideoQuality

          protected VideoQuality mVideoQuality

  - ### Constructor Detail

    - #### MediaInfo

          public MediaInfo()

  - ### Method Detail

    - #### getVideoWidth

          public int getVideoWidth()

      获取视频宽度
      Returns:
        返回视频宽度

    - #### setVideoWidth

          public int setVideoWidth(int videoWidth)

      设置视频的宽
      Parameters:
        `videoWidth` - 视频宽度
      Returns:
        设置尺寸大于0时返回OK, 其它值时返回 ERROR_INVALID_ARGUMENTS;

    - #### getVideoHeight

          public int getVideoHeight()

      获取视频高度
      Returns:
        返回视频高度

    - #### setVideoHeight

          public int setVideoHeight(int videoHeight)

      设置视频的高
      Parameters:
        `videoHeight` - 视频高度
      Returns:
        设置尺寸大于0时返回OK, 其它值时返回 ERROR_INVALID_ARGUMENTS;

    - #### getFps

          public int getFps()

      获取录制采集帧率
      Returns:

    - #### setFps

          public int setFps(int fps)

      设置录制采集帧率，必须在[，]之间，否则将为无效的值，将使用默认值 30. 该帧率只做参考，不同相机的采集和处理能力不同，以视频的实际输出帧率为准。
      Parameters:
        `fps` - 采集帧率

    - #### getVideoCodec

          public VideoCodecs getVideoCodec()

      获取编码器类型
      Returns:
        返回编码器类型

    - #### setVideoCodec

          public void setVideoCodec(VideoCodecs videoCodec)

      设置编码器类型
      Parameters:
        `videoCodec` - 编码器类型
      See Also:
        `VideoCodecs`

    - #### getCrf

          public int getCrf()

      获取视频编码质量因子
      Returns:
        返回视频编码质量因子

    - #### setCrf

          public int setCrf(int crf)

      设置 crf（编码质量因子）值，默认
      Parameters:
        `crf` - 必须在[，]之间, 越界时使用临界值。
      Returns:
        设置值在 [，] 时返回 OK, 否则返回 ERROR_INVALID_ARGUMENTS

    - #### getEncoderFps

          public int getEncoderFps()

    - #### setEncoderFps

          public int setEncoderFps(int encoderFps)

      设置编码帧率，必须在[，]之间，否则将为无效的值，将使用内置默认值30。 编码帧率只会影响编码的码率，并不能决定实际输出的视频帧率，实际视频帧率受摄像头采集帧率和渲染性能的影响，根据实际情况而定。
      Parameters:
        `encoderFps` - 编码帧率
      Returns:
        正确 AliyunErrorCode.OK, 异常时 AliyunErrorCode.ERROR_INVALID_ARGUMENTS;

    - #### getVideoQuality

          public VideoQuality getVideoQuality()

      获取视频质量

      v3.27.0 新增

      See Also:
        `VideoQuality`

    - #### setVideoQuality

          public void setVideoQuality(VideoQuality quality)

      设置视频质量，该接口影响的是生成视频的码率

      v3.27.0 新增

      Parameters:
        `quality` - 质量等级
      See Also:
        `VideoQuality`

    - #### getGop

          public int getGop()

      获取Gop大小

      v3.27.0 新增

    - #### setGop

          public int setGop(int gop)

      设置Gop大小，这里的gop单位是帧数，即两个I帧之间间隔多少帧，而实际上硬编码器内部是以时间为gop单位的，即两个I帧间隔多少秒，因此 实际输出视频的Gop是用该值除以编码帧率计算而出。举例编码帧率设置为25fps，该接口设置125，则实际视频的gop值是5秒，也就是5秒一个I帧。 如果设置的gop小于帧率值，则内部给到编码器的gop为1，如果大于25，则取整计算。

      v3.27.0 新增

      Parameters:
        `gop` - 合法的区间[0,9000] 大于等于0，且小于等于9000 0的情况下，在有的手机上可以做到全I帧，而也有一些手机做不到全I帧

    - #### getVideoBitrate

          public int getVideoBitrate()

      视频码率

      v3.27.0 新增

    - #### setVideoBitrate

          public int setVideoBitrate(int bitrate)

      视频码率，有效的码率值必须在[200, 20000]之间，即最小是200Kbps，最大是20Mbps 单位：kbps，如果超过当前分辨率的使用码率值，有的编码器 不会无限增加码率，比如720P的码率值4M应该就足够使用了，可能会出现设置10M码率，输出的视频码率依然只有4M左右，具体根据不同编码器行为而定。
      Parameters:
        `bitrate` -