- Qt 6.5
- Qt Multimedia
- C++ Classes
- QtMultimedia
- QMediaFormat
- Qt 6.5.1 Reference Documentation

# QMediaFormat Class

Describes an encoding format for a multimedia file or stream. More...

Header: | #include <QMediaFormat>
CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: | QT += multimedia

- List of all members, including inherited members

## Public Types

enum class | AudioCodec { WMA, AC3, AAC, ALAC, DolbyTrueHD, …, Unspecified }
enum | ConversionMode { Encode, Decode }
enum | FileFormat { WMA, AAC, Matroska, WMV, MP3, …, UnspecifiedFormat }
enum | ResolveFlags { NoFlags, RequiresVideo }
enum class | VideoCodec { VP8, MPEG2, MPEG1, WMV, H265, …, Unspecified }

## Properties

- audioCodec : AudioCodec
- fileFormat : FileFormat
- videoCodec : VideoCodec

## Public Functions

| QMediaFormat(QMediaFormat::FileFormat format = UnspecifiedFormat)
| QMediaFormat(const QMediaFormat &other)
| QMediaFormat(QMediaFormat &&other)
| ~QMediaFormat()
QMediaFormat::AudioCodec | audioCodec() const
QMediaFormat::FileFormat | fileFormat() const
bool | isSupported(QMediaFormat::ConversionMode mode) const
QMimeType | mimeType() const
void | resolveForEncoding(QMediaFormat::ResolveFlags flags)
void | setAudioCodec(QMediaFormat::AudioCodec codec)
void | setFileFormat(QMediaFormat::FileFormat f)
void | setVideoCodec(QMediaFormat::VideoCodec codec)
QList<QMediaFormat::AudioCodec> | supportedAudioCodecs(QMediaFormat::ConversionMode m)
QList<QMediaFormat::FileFormat> | supportedFileFormats(QMediaFormat::ConversionMode m)
QList<QMediaFormat::VideoCodec> | supportedVideoCodecs(QMediaFormat::ConversionMode m)
void | swap(QMediaFormat &other)
QMediaFormat::VideoCodec | videoCodec() const
bool | operator!=(const QMediaFormat &other) const
QMediaFormat & | operator=(const QMediaFormat &other)
QMediaFormat & | operator=(QMediaFormat &&other)
bool | operator==(const QMediaFormat &other) const

## Static Public Members

QString | audioCodecDescription(QMediaFormat::AudioCodec codec)
QString | audioCodecName(QMediaFormat::AudioCodec codec)
QString | fileFormatDescription(QMediaFormat::FileFormat fileFormat)
QString | fileFormatName(QMediaFormat::FileFormat fileFormat)
QString | videoCodecDescription(QMediaFormat::VideoCodec codec)
QString | videoCodecName(QMediaFormat::VideoCodec codec)

## Detailed Description

QMediaFormat describes an encoding format for a multimedia file or stream.

You can check whether a certain media format can be used for encoding or decoding using QMediaFormat.

## Member Type Documentation

### enum class QMediaFormat::AudioCodec

Describes the audio codec used in multimedia file or stream.

Constant | Value | Description
--- | --- | ---
`QMediaFormat::AudioCodec::WMA` | `9` | Windows Media Audio
`QMediaFormat::AudioCodec::AC3` | `2` | Dolby Digital
`QMediaFormat::AudioCodec::AAC` | `1` | Advanced Audio Coding
`QMediaFormat::AudioCodec::ALAC` | `10` | Apple Lossless Audio Codec
`QMediaFormat::AudioCodec::DolbyTrueHD` | `5` | Dolby TrueHD
`QMediaFormat::AudioCodec::EAC3` | `3` | Dolby Digital Plus (EAC3)
`QMediaFormat::AudioCodec::MP3` | `0` | MPEG-1 Audio Layer III or MPEG-2 Audio Layer III
`QMediaFormat::AudioCodec::Wave` | `8` | Waveform Audio File Format
`QMediaFormat::AudioCodec::Vorbis` | `7` | Ogg Vorbis
`QMediaFormat::AudioCodec::FLAC` | `4` | Free Lossless Audio Codec
`QMediaFormat::AudioCodec::Opus` | `6` | Opus Audio Format
`QMediaFormat::AudioCodec::Unspecified` | `-1` | Unspecified codec

### enum QMediaFormat::ConversionMode

In many cases, systems have asymmetric capabilities and can often decode more formats or codecs than can be encoded. This enum describes the requested conversion mode to be used when checking whether a certain file format or codec is supported.

Constant | Value | Description
--- | --- | ---
`QMediaFormat::Encode` | `0` | Used to check whether a certain file format or codec can be encoded.
`QMediaFormat::Decode` | `1` | Used to check whether a certain file format or codec can be decoded.

See also supportedFileFormats, supportedAudioCodecs, and supportedVideoCodecs.

### enum QMediaFormat::FileFormat

Describes the container format used in a multimedia file or stream.

Constant | Value | Description
--- | --- | ---
`QMediaFormat::WMA` | `9` | Windows Media Audio
`QMediaFormat::AAC` | `8` | Advanced Audio Coding
`QMediaFormat::Matroska` | `2` | Matroska (MKV)
`QMediaFormat::WMV` | `0` | Windows Media Video
`QMediaFormat::MP3` | `10` | MPEG-1 Audio Layer III or MPEG-2 Audio Layer III
`QMediaFormat::Wave` | `12` | Waveform Audio File Format
`QMediaFormat::Ogg` | `4` | Ogg
`QMediaFormat::MPEG4` | `3` | MPEG-4
`QMediaFormat::AVI` | `1` | Audio Video Interleave
`QMediaFormat::QuickTime` | `5` | QuickTime
`QMediaFormat::WebM` | `6` | WebM
`QMediaFormat::Mpeg4Audio` | `7` | MPEG-4 Part 3 or MPEG-4 Audio (formally ISO/IEC 14496-3)
`QMediaFormat::FLAC` | `11` | Free Lossless Audio Codec
`QMediaFormat::UnspecifiedFormat` | `-1` | The format is unspecified.

### enum QMediaFormat::ResolveFlags

Describes the requirements for resolving a suitable format for QMediaRecorder.

Constant | Value | Description
--- | --- | ---
`QMediaFormat::NoFlags` | `0` | No requirements
`QMediaFormat::RequiresVideo` | `1` | A video codec is required

See also resolveForEncoding().

### enum class QMediaFormat::VideoCodec

Describes the video coded used in multimedia file or stream.

Constant | Value | Description
--- | --- | ---
`QMediaFormat::VideoCodec::VP8` | `5` | VP8
`QMediaFormat::VideoCodec::MPEG2` | `1` | MPEG-2
`QMediaFormat::VideoCodec::MPEG1` | `0` | MPEG-1
`QMediaFormat::VideoCodec::WMV` | `9` | Windows Media Video
`QMediaFormat::VideoCodec::H265` | `4` | High Efficiency Video Coding (HEVC)
`QMediaFormat::VideoCodec::H264` | `3` | Advanced Video Coding
`QMediaFormat::VideoCodec::MPEG4` | `2` | MPEG-4
`QMediaFormat::VideoCodec::AV1` | `7` | AOMedia Video 1
`QMediaFormat::VideoCodec::MotionJPEG` | `10` | MotionJPEG
`QMediaFormat::VideoCodec::VP9` | `6` | VP9
`QMediaFormat::VideoCodec::Theora` | `8` | Theora
`QMediaFormat::VideoCodec::Unspecified` | `-1` | Video codec not specified

## Property Documentation

### audioCodec : AudioCodec

This property holds the audio codec of the media.

Access functions:

QMediaFormat::AudioCodec | audioCodec() const
void | setAudioCodec(QMediaFormat::AudioCodec codec)

See also QMediaFormat::AudioCodec.

### fileFormat : FileFormat

This property holds the file (container) format of the media.

Access functions:

QMediaFormat::FileFormat | fileFormat() const
void | setFileFormat(QMediaFormat::FileFormat f)

See also QMediaFormat::FileFormat.

### videoCodec : VideoCodec

This property holds the video codec of the media.

Access functions:

QMediaFormat::VideoCodec | videoCodec() const
void | setVideoCodec(QMediaFormat::VideoCodec codec)

See also QMediaFormat::VideoCodec.

## Member Function Documentation

### QMediaFormat::QMediaFormat(QMediaFormat::FileFormat format = UnspecifiedFormat)

Constructs a QMediaFormat object for format.

### QMediaFormat::QMediaFormat(const QMediaFormat &other)

Constructs a QMediaFormat object by copying from other.

### QMediaFormat::QMediaFormat(QMediaFormat &&other)

Constructs a QMediaFormat objects by moving from other.

### QMediaFormat::~QMediaFormat()

Destroys the QMediaFormat object.

### QMediaFormat::AudioCodec QMediaFormat::audioCodec() const

Returns the audio codec used in this format.

Note: Getter function for property audioCodec.

See also setAudioCodec() and QMediaFormat::AudioCodec.

### `[static invokable]` QString QMediaFormat::audioCodecDescription(QMediaFormat::AudioCodec codec)

Returns a description for codec.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static invokable]` QString QMediaFormat::audioCodecName(QMediaFormat::AudioCodec codec)

Returns a string based name for codec.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static invokable]` QString QMediaFormat::fileFormatDescription(QMediaFormat::FileFormat fileFormat)

Returns a description for fileFormat.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static invokable]` QString QMediaFormat::fileFormatName(QMediaFormat::FileFormat fileFormat)

Returns a string based name for fileFormat.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[invokable]` bool QMediaFormat::isSupported(QMediaFormat::ConversionMode mode) const

Returns `true` if Qt Multimedia can encode or decode this format, depending on mode.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### QMimeType QMediaFormat::mimeType() const

Returns the MIME type for the file format used in this media format.

### void QMediaFormat::resolveForEncoding(QMediaFormat::ResolveFlags flags)

Resolves the format, based on flags, to a format that is supported by QMediaRecorder.

This method tries to find the best possible match for unspecified settings. Settings that are not supported by the recorder will be modified to the closest match that is supported.

When resolving, priority is given in the following order:

1. File format
2. Video codec
3. Audio codec

### void QMediaFormat::setAudioCodec(QMediaFormat::AudioCodec codec)

Sets the audio codec to codec.

Note: Setter function for property audioCodec.

See also audioCodec() and QMediaFormat::AudioCodec.

### void QMediaFormat::setVideoCodec(QMediaFormat::VideoCodec codec)

Sets the video codec to codec.

Note: Setter function for property videoCodec.

See also videoCodec() and QMediaFormat::VideoCodec.

### `[invokable]` QList<QMediaFormat::AudioCodec> QMediaFormat::supportedAudioCodecs(QMediaFormat::ConversionMode m)

Returns a list of audio codecs for the chosen file format and video codec (m).

To get all supported audio codecs, run this query on a default constructed QMediaFormat.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also QMediaFormat::ConversionMode.

### `[invokable]` QList<QMediaFormat::FileFormat> QMediaFormat::supportedFileFormats(QMediaFormat::ConversionMode m)

Returns a list of file formats for the audio and video codec indicated by m.

To get all supported file formats, run this query on a default constructed QMediaFormat.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also QMediaFormat::ConversionMode.

### `[invokable]` QList<QMediaFormat::VideoCodec> QMediaFormat::supportedVideoCodecs(QMediaFormat::ConversionMode m)

Returns a list of video codecs for the chosen file format and audio codec (m).

To get all supported video codecs, run this query on a default constructed MediaFormat.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also QMediaFormat::ConversionMode.

### void QMediaFormat::swap(QMediaFormat &other)

Swaps the media format with other.

### QMediaFormat::VideoCodec QMediaFormat::videoCodec() const

Returns the video codec used in this format.

Note: Getter function for property videoCodec.

See also setVideoCodec() and QMediaFormat::VideoCodec.

### `[static invokable]` QString QMediaFormat::videoCodecDescription(QMediaFormat::VideoCodec codec)

Returns a description for codec.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static invokable]` QString QMediaFormat::videoCodecName(QMediaFormat::VideoCodec codec)

Returns a string based name for codec.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### bool QMediaFormat::operator!=(const QMediaFormat &other) const

Returns `true` if other is not equal to the current media format, otherwise returns `false`.

### QMediaFormat &QMediaFormat::operator=(const QMediaFormat &other)

Copies other into this QMediaFormat object.

### QMediaFormat &QMediaFormat::operator=(QMediaFormat &&other)

Moves other into this QMediaFormat objects.

### bool QMediaFormat::operator==(const QMediaFormat &other) const

Returns `true` if other is equal to the current media format, otherwise returns `false`.