本页内容

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 Media Audio
QMediaFormat::AudioCodec::AC32杜比数字
QMediaFormat::AudioCodec::AAC1高级音频编码
QMediaFormat::AudioCodec::ALAC10Apple 无损音频编解码器
QMediaFormat::AudioCodec::DolbyTrueHD5杜比TrueHD
QMediaFormat::AudioCodec::EAC33杜比数字 Plus(EAC3)
QMediaFormat::AudioCodec::MP30MPEG-1 音频层 III 或 MPEG-2 音频层 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 Media Audio
QMediaFormat::AAC8高级音频编码
QMediaFormat::Matroska2Matroska (MKV)
QMediaFormat::WMV0Windows Media Video
QMediaFormat::MP310MPEG-1 音频层 III 或 MPEG-2 音频层 III
QMediaFormat::Wave12波形音频文件格式
QMediaFormat::Ogg4Ogg
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 Media Video
QMediaFormat::VideoCodec::H2654高效视频编码 (HEVC)
QMediaFormat::VideoCodec::H2643高级视频编码
QMediaFormat::VideoCodec::MPEG42MPEG-4
QMediaFormat::VideoCodec::AV17AOMedia Video 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对象。

[constexpr noexcept default] 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 能够对该格式进行编码或解码(取决于mode ),则返回true 。

注意: 可通过元对象系统和 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 objects。

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

将 `other ` 复制到此 `QMediaFormat ` 对象中。

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

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

© 2026 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.