QMediaFormat Class

描述多媒体文件或数据流的编码格式。更多

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

公共类型

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 }

属性

公共函数

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=(QMediaFormat &&other)
QMediaFormat &operator=(const QMediaFormat &other)
bool operator==(const QMediaFormat &other) const

静态公共成员

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)

详细说明

QMediaFormat 描述了多媒体文件或流的编码格式。

您可以使用 QMediaFormat 检查某种媒体格式是否可用于编码或解码。

成员类型文档

enum class QMediaFormat::AudioCodec

描述多媒体文件或数据流中使用的音频编解码器。

常数说明
QMediaFormat::AudioCodec::WMA9Windows 媒体音频
QMediaFormat::AudioCodec::AC32杜比数字
QMediaFormat::AudioCodec::AAC1高级音频编码
QMediaFormat::AudioCodec::ALAC10苹果无损音频编解码器
QMediaFormat::AudioCodec::DolbyTrueHD5杜比 TrueHD
QMediaFormat::AudioCodec::EAC33杜比数字增强(EAC3)
QMediaFormat::AudioCodec::MP30MPEG-1 Audio Layer III 或 MPEG-2 Audio Layer III
QMediaFormat::AudioCodec::Wave8波形音频文件格式
QMediaFormat::AudioCodec::Vorbis7Ogg Vorbis
QMediaFormat::AudioCodec::FLAC4免费无损音频编解码器
QMediaFormat::AudioCodec::Opus6Opus 音频格式
QMediaFormat::AudioCodec::Unspecified-1未指定编解码器

enum QMediaFormat::ConversionMode

在许多情况下,系统具有非对称功能,可解码的格式或编解码器往往多于可编码的格式或编解码器。该枚举描述了在检查是否支持某种文件格式或编解码器时所要求使用的转换模式。

常量描述
QMediaFormat::Encode0用于检查是否可以编码某种文件格式或编解码器。
QMediaFormat::Decode1用于检查是否可以解码某种文件格式或编解码器。

另请参阅 supportedFileFormats,supportedAudioCodecs, 和supportedVideoCodecs

enum QMediaFormat::FileFormat

描述多媒体文件或数据流中使用的容器格式。

常量说明
QMediaFormat::WMA9Windows 媒体音频
QMediaFormat::AAC8高级音频编码
QMediaFormat::Matroska2Matroska (MKV)
QMediaFormat::WMV0Windows 媒体视频
QMediaFormat::MP310MPEG-1 Audio Layer III 或 MPEG-2 Audio Layer III
QMediaFormat::Wave12波形音频文件格式
QMediaFormat::Ogg4奥格
QMediaFormat::MPEG43MPEG-4
QMediaFormat::AVI1音频视频交错
QMediaFormat::QuickTime5QuickTime
QMediaFormat::WebM6WebM
QMediaFormat::Mpeg4Audio7MPEG-4 第 3 部分或 MPEG-4 音频(正式名称为 ISO/IEC 14496-3)
QMediaFormat::FLAC11免费无损音频编解码器
QMediaFormat::UnspecifiedFormat-1格式未指定。

enum QMediaFormat::ResolveFlags

描述了解决QMediaRecorder 的合适格式的要求。

常数说明
QMediaFormat::NoFlags0无要求
QMediaFormat::RequiresVideo1需要视频编解码器

另请参见 resolveForEncoding().

enum class QMediaFormat::VideoCodec

描述多媒体文件或数据流中使用的视频编码。

常数描述
QMediaFormat::VideoCodec::VP85VP8
QMediaFormat::VideoCodec::MPEG21MPEG-2
QMediaFormat::VideoCodec::MPEG10MPEG-1
QMediaFormat::VideoCodec::WMV9Windows 媒体视频
QMediaFormat::VideoCodec::H2654高效视频编码 (HEVC)
QMediaFormat::VideoCodec::H2643高级视频编码
QMediaFormat::VideoCodec::MPEG42MPEG-4
QMediaFormat::VideoCodec::AV17AOMedia 视频 1
QMediaFormat::VideoCodec::MotionJPEG10MotionJPEG
QMediaFormat::VideoCodec::VP96VP9
QMediaFormat::VideoCodec::Theora8Theora
QMediaFormat::VideoCodec::Unspecified-1未指定视频编解码器

属性文档

audioCodec : AudioCodec

该属性用于保存媒体的音频编解码器。

访问功能:

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

另请参阅 QMediaFormat::AudioCodec

fileFormat : FileFormat

该属性用于保存媒体的文件(容器)格式。

访问功能:

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

另请参阅 QMediaFormat::FileFormat

videoCodec : VideoCodec

此属性用于保存媒体的视频编解码器。

访问功能:

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

另请参阅 QMediaFormat::VideoCodec

成员函数文档

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

format 构建一个 QMediaFormat 对象。

[noexcept] QMediaFormat::QMediaFormat(const QMediaFormat &other)

通过从other 复制,构造一个 QMediaFormat 对象。

[noexcept] QMediaFormat::QMediaFormat(QMediaFormat &&other)

other 开始构建 QMediaFormat 对象。

[noexcept] QMediaFormat::~QMediaFormat()

销毁QMediaFormat 对象。

QMediaFormat::AudioCodec QMediaFormat::audioCodec() const

返回此格式中使用的音频编解码器。

注: 属性 audioCodec 的获取函数。

另请参阅 setAudioCodec() 和QMediaFormat::AudioCodec

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

返回codec 的描述。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

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

返回codec 的字符串名称。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

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

返回fileFormat 的描述。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

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

返回fileFormat 的字符串名称。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

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

如果Qt Multimedia 可以编码或解码此格式,则返回true ,具体取决于mode

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

QMimeType QMediaFormat::mimeType() const

返回此媒体格式中使用的文件格式的MIME 类型

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

将基于flags 的格式转换为QMediaRecorder 支持的格式。

此方法会尽量为未指定的设置找到最佳匹配。记录仪不支持的设置将被修改为支持的最匹配设置。

解决时,优先顺序如下:

  1. 文件格式
  2. 视频编解码器
  3. 音频编解码器

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

将音频编解码器设置为codec

注: 属性audioCodec 的设置函数。

另请参阅 audioCodec() 和QMediaFormat::AudioCodec

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

将视频编解码器设置为codec

注: 属性videoCodec 的设置函数。

另请参阅 videoCodec() 和QMediaFormat::VideoCodec

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

返回所选文件格式和视频编解码器的音频编解码器列表 (m)。

要获取所有支持的音频编解码器,请在默认构建的QMediaFormat 上运行此查询。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

另请参见 QMediaFormat::ConversionMode

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

返回m 所示音视频编解码器的文件格式列表。

要获取所有支持的文件格式,请在默认构建的QMediaFormat 上运行此查询。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

另请参见 QMediaFormat::ConversionMode

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

返回所选文件格式和音频编解码器的视频编解码器列表 (m)。

要获得所有支持的视频编解码器,请在默认构造的 MediaFormat 上运行此查询。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

另请参阅 QMediaFormat::ConversionMode

[noexcept] void QMediaFormat::swap(QMediaFormat &other)

将介质格式与other 互换。

QMediaFormat::VideoCodec QMediaFormat::videoCodec() const

返回此格式中使用的视频编解码器。

注: 属性 videoCodec 的获取函数。

另请参阅 setVideoCodec() 和QMediaFormat::VideoCodec

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

返回codec 的描述。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

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

返回codec 的字符串名称。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

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

如果other 不等于当前媒体格式,则返回true ,否则返回false

[noexcept] QMediaFormat &QMediaFormat::operator=(QMediaFormat &&other)

other 移入QMediaFormat 对象。

[noexcept] QMediaFormat &QMediaFormat::operator=(const QMediaFormat &other)

other 复制到此QMediaFormat 对象中。

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

如果other 等于当前媒体格式,则返回true ,否则返回false

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.