EncoderProfiles.VideoProfile
  public
  static
  final
  
  class
  EncoderProfiles.VideoProfile
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.media.EncoderProfiles.VideoProfile | 
Configuration for a video encoder.
Summary
| Constants | |
|---|---|
| int | HDR_DOLBY_VISIONDolby Vision An HDR format specifying Dolby Vision. | 
| int | HDR_HDR10HDR10. | 
| int | HDR_HDR10PLUSHDR10+. | 
| int | HDR_HLGHLG (Hybrid-Log Gamma). | 
| int | HDR_NONENot HDR (SDR). | 
| int | YUV_420YUV 4:2:0. | 
| int | YUV_422YUV 4:2:2. | 
| int | YUV_444YUV 4:4:4. | 
| Public methods | |
|---|---|
| 
        
        
        
        
        
        int | 
      getBitDepth()
      The bit depth of the encoded video. | 
| 
        
        
        
        
        
        int | 
      getBitrate()
      The target video output bitrate in bits per second 
 This is the target recorded video output bitrate if the application configures the video
 recording via  | 
| 
        
        
        
        
        
        int | 
      getChromaSubsampling()
      The chroma subsampling of the encoded video. | 
| 
        
        
        
        
        
        int | 
      getCodec()
      The video encoder being used for the video track | 
| 
        
        
        
        
        
        int | 
      getFrameRate()
      The target video frame rate in frames per second. | 
| 
        
        
        
        
        
        int | 
      getHdrFormat()
      The HDR format of the encoded video. | 
| 
        
        
        
        
        
        int | 
      getHeight()
      The target video frame height in pixels | 
| 
        
        
        
        
        
        String | 
      getMediaType()
      The media type of the video encoder being used for the video track | 
| 
        
        
        
        
        
        int | 
      getProfile()
      The video encoder profile being used for the video track. | 
| 
        
        
        
        
        
        int | 
      getWidth()
      The target video frame width in pixels | 
| Inherited methods | |
|---|---|
Constants
HDR_DOLBY_VISION
public static final int HDR_DOLBY_VISION
Dolby Vision
An HDR format specifying Dolby Vision. For this format the codec is always a Dolby Vision encoder. The encoder profile specifies which Dolby Vision version is being used.
See also:
Constant Value: 4 (0x00000004)
HDR_HDR10
public static final int HDR_HDR10
HDR10.
An HDR format specifying HDR10.
Constant Value: 2 (0x00000002)
HDR_HDR10PLUS
public static final int HDR_HDR10PLUS
HDR10+.
An HDR format specifying HDR10+.
Constant Value: 3 (0x00000003)
HDR_HLG
public static final int HDR_HLG
HLG (Hybrid-Log Gamma).
An HDR format specifying HLG.
Constant Value: 1 (0x00000001)
HDR_NONE
public static final int HDR_NONE
Not HDR (SDR).
An HDR format specifying SDR (Standard Dynamic Range) recording.
Constant Value: 0 (0x00000000)
YUV_420
public static final int YUV_420
YUV 4:2:0.
A chroma subsampling where the U and V planes are subsampled by 2 both horizontally and vertically.
Constant Value: 0 (0x00000000)
YUV_422
public static final int YUV_422
YUV 4:2:2.
A chroma subsampling where the U and V planes are subsampled by 2 horizontally alone.
Constant Value: 1 (0x00000001)
YUV_444
public static final int YUV_444
YUV 4:4:4.
A chroma subsampling where the U and V planes are not subsampled.
Constant Value: 2 (0x00000002)
Public methods
getBitDepth
public int getBitDepth ()
The bit depth of the encoded video.
This value is effectively 8 or 10, but some devices may support additional values.
| Returns | |
|---|---|
| int | |
getBitrate
public int getBitrate ()
The target video output bitrate in bits per second
 This is the target recorded video output bitrate if the application configures the video
 recording via MediaRecorder.setProfile without specifying any other
 MediaRecorder encoding parameters. For example, for high speed quality profiles
 (from CamcorderProfile.QUALITY_HIGH_SPEED_LOW to CamcorderProfile.QUALITY_HIGH_SPEED_2160P), this is the bitrate where the video is
 recorded with. If the application intends to record slow motion videos with the high
 speed quality profiles, it must set a different video bitrate that is corresponding to
 the desired recording output bit rate (i.e., the encoded video bitrate during normal
 playback) via MediaRecorder.setVideoEncodingBitRate. For example, if CamcorderProfile.QUALITY_HIGH_SPEED_720P advertises 240fps getFrameRate() and
 64Mbps getBitrate() in the high speed VideoProfile, and the application
 intends to record 1/8 factor slow motion recording videos, the application must set 30fps
 via MediaRecorder.setVideoFrameRate and 8Mbps ( getBitrate() * slow motion
 factor) via MediaRecorder.setVideoEncodingBitRate. Failing to do so will result
 in videos with unexpected frame rate and bit rate, or MediaRecorder error if the
 output bit rate exceeds the encoder limit. If the application intends to do the video
 recording with MediaCodec encoder, it must set each individual field of MediaFormat similarly according to this VideoProfile.
 
| Returns | |
|---|---|
| int | |
getChromaSubsampling
public int getChromaSubsampling ()
The chroma subsampling of the encoded video.
For most devices this is always YUV_420 but some devices may support additional values.
| Returns | |
|---|---|
| int | Value is YUV_420,YUV_422, orYUV_444 | 
getCodec
public int getCodec ()
The video encoder being used for the video track
See also:
getFrameRate
public int getFrameRate ()
The target video frame rate in frames per second.
 This is the target recorded video output frame rate per second if the application
 configures the video recording via MediaRecorder.setProfile without specifying
 any other MediaRecorder encoding parameters. For example, for high speed quality
 profiles (from CamcorderProfile.QUALITY_HIGH_SPEED_LOW to CamcorderProfile.QUALITY_HIGH_SPEED_2160P), this is the frame rate where the video is
 recorded and played back with. If the application intends to create slow motion use case
 with the high speed quality profiles, it must set a different video frame rate that is
 corresponding to the desired output (playback) frame rate via MediaRecorder.setVideoFrameRate(int). For example, if CamcorderProfile.QUALITY_HIGH_SPEED_720P advertises 240fps getFrameRate()
 in the VideoProfile, and the application intends to create 1/8 factor slow motion
 recording videos, the application must set 30fps via MediaRecorder.setVideoFrameRate(int). Failing to do so will result in high speed videos with
 normal speed playback frame rate (240fps for above example). If the application intends
 to do the video recording with MediaCodec encoder, it must set each individual
 field of MediaFormat similarly according to this VideoProfile.
 
| Returns | |
|---|---|
| int | |
getHdrFormat
public int getHdrFormat ()
The HDR format of the encoded video.
This is one of the HDR_ values.
| Returns | |
|---|---|
| int | Value is HDR_NONE,HDR_HLG,HDR_HDR10,HDR_HDR10PLUS, orHDR_DOLBY_VISION | 
getHeight
public int getHeight ()
The target video frame height in pixels
| Returns | |
|---|---|
| int | |
getMediaType
public String getMediaType ()
The media type of the video encoder being used for the video track
| Returns | |
|---|---|
| String | This value cannot be null. | 
See also:
getProfile
public int getProfile ()
The video encoder profile being used for the video track.
This value is negative if there is no profile defined for the video codec.
| Returns | |
|---|---|
| int | |
getWidth
public int getWidth ()
The target video frame width in pixels
| Returns | |
|---|---|
| int | |
