Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/media/EncoderProfiles#nestedclasses) \| [Methods](https://developer.android.com/reference/android/media/EncoderProfiles#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/media/EncoderProfiles#inhmethods)

# EncoderProfiles

*** ** * ** ***

` public final class EncoderProfiles `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.media.EncoderProfiles |

<br />

*** ** * ** ***

Describes a set of encoding profiles for a given media (audio and/or video) profile. These settings are read-only.

Currently, this is used to describe camera recording profile with more detail than `https://developer.android.com/reference/android/media/CamcorderProfile`, by providing encoding parameters for more than just the default audio and/or video codec.

The compressed output from a camera recording session contains two tracks: one for audio and one for video.

In the future audio-only recording profiles may be defined.

Each media profile specifies a set of audio and a set of video specific settings.

- The file output format
- Default file duration Video-specific settings are:

- Video codec format
- Video bit rate in bits per second
- Video frame rate in frames per second
- Video frame width and height,
- Video encoder profile. Audio-specific settings are:

- Audio codec format
- Audio bit rate in bits per second,
- Audio sample rate
- Number of audio channels for recording.

<br />

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/media/EncoderProfiles.AudioProfile` Configuration for an audio encoder. |
| ` class` | `https://developer.android.com/reference/android/media/EncoderProfiles.VideoProfile` Configuration for a video encoder. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/media/EncoderProfiles.AudioProfile>` | ` https://developer.android.com/reference/android/media/EncoderProfiles#getAudioProfiles()() ` Returns the defined audio encoder profiles. |
| ` int` | ` https://developer.android.com/reference/android/media/EncoderProfiles#getDefaultDurationSeconds()() ` Default recording duration in seconds before the session is terminated. |
| ` int` | ` https://developer.android.com/reference/android/media/EncoderProfiles#getRecommendedFileFormat()() ` Recommended output file format |
| ` https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/media/EncoderProfiles.VideoProfile>` | ` https://developer.android.com/reference/android/media/EncoderProfiles#getVideoProfiles()() ` Returns the defined video encoder profiles. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Public methods

### getAudioProfiles

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public List<EncoderProfiles.AudioProfile> getAudioProfiles ()
```

Returns the defined audio encoder profiles.

The list may be empty. This means there are no audio encoder profiles defined. Otherwise, the first profile is the default audio profile.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/media/EncoderProfiles.AudioProfile>` | This value cannot be `null`. <br /> |

### getDefaultDurationSeconds

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getDefaultDurationSeconds ()
```

Default recording duration in seconds before the session is terminated. This is useful for applications like MMS that have a limited file size requirement. This could be 0 if there is no default recording duration.

<br />

| Returns ||
|---|---|
| `int` | <br /> |

### getRecommendedFileFormat

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public int getRecommendedFileFormat ()
```

Recommended output file format

<br />

| Returns ||
|---|---|
| `int` | Value is one of the following: - `https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat#DEFAULT` - `https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat#THREE_GPP` - `https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat#MPEG_4` - `https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat#AMR_NB` - `https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat#AMR_WB` - `https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat#AAC_ADTS` - `https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat#MPEG_2_TS` - `https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat#WEBM` - `https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat#OGG` |

**See also:**

- `https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat`

### getVideoProfiles

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public List<EncoderProfiles.VideoProfile> getVideoProfiles ()
```

Returns the defined video encoder profiles.

The list may be empty. This means there are no video encoder profiles defined. Otherwise, the first profile is the default video profile.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/media/EncoderProfiles.VideoProfile>` | This value cannot be `null`. <br /> |