Windows Media Audio 编码器

Windows Media Audio 编码器对音频流进行编码。 该编码器支持三类编码输出:Windows Media Audio Standard、Windows Media Audio Professional 和 Windows Media Audio Lossless。

类标识符

Windows Media Audio 编码器的类标识符 (CLSID) 由常量 CLSID_CWMAEncMediaObject 表示。 可以调用 CoCreateInstance 来创建音频编码器的实例。

输入格式

下表显示了代表 Windows Media Audio 编码器支持的输入类别的音频格式标记。 有关如何设置编码器的输入和输出类型的信息,请参阅配置音频编码

格式标记常量 格式标记值 音频格式
WAVE_FORMAT_PCM 0x0001 PCM 格式
WAVE_FORMAT_IEEE_FLOAT 0x0003 IEEE 浮点
WAVE_FORMAT_EXTENSIBLE 0xFFFE 采用 WAVEFORMATEXTENSIBLE 结构的 PCM/IEEE 格式

 

输出格式

下表显示了代表 Windows Media Audio 编码器支持的输出类别的音频格式标记。

格式标记常量 格式标记值 音频格式
WAVE_FORMAT_WMAUDIO2 0x0161 Windows Media Audio 标准版
WAVE_FORMAT_WMAUDIO3 0x0162 Windows Media Audio 专业版
WAVE_FORMAT_WMAUDIO_LOSSLESS 0x0163 Windows Media Audio 无损版

 

接口

音频编码器对象公开 IMediaObject 接口,以便该对象可用作 DirectX 媒体对象 (DMO),并公开 IMFTransform 接口,以便该对象可用作媒体基础转换 (MFT)。

根据获取的接口以及运行的 Windows 版本,Windows Media Audio 编码器作为 DMO 或 MFT 运行。 下表显示了音频编码器作为 DMO 或 MFT 运行的条件。

操作系统 编码器行为
Windows XP Windows Media Audio 编码器始终作为 DMO 运行。
Windows Vista 默认情况下,Windows Media Audio 编码器作为 DMO 运行。 如果在音频编码器上获取 IMFTransform 接口或 IPropertyStore 接口,它将作为 MFT 运行。
Windows 7 默认情况下,Windows Media Audio 编码器作为 DMO 运行。 如果在音频编码器上获取 IMFTransform 接口,它将作为 MFT 运行。

 

编码器属性

Windows Media Audio 编码器支持以下属性。

properties 说明
MFPKEY_AVGCONSTRAINED 指定编码器是否使用平均可控的 VBR 编码。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_BMAX 指定处于峰值比特率的受约束可变比特率 (VBR) 流的缓冲区窗口(以毫秒为单位)。
Windows XP 及更高版本。
标准版、专业版。
读/写。
MFPKEY_CHECKDATACONSISTENCY2P 指定编码器在执行两次 VBR 编码时是否应检查两次之间的数据一致性。
Windows Vista 及更高版本。
标准版、专业版、无损版。
只读。
MFPKEY_CONSTRAINDECLATENCY 指定编码器是否受最大解码器延迟要求的约束。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_CONSTRAINENCCOMPLEXITY 指定编码算法的复杂性是否受约束。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_CONSTRAINENCLATENCY 指定编码器是否受最大延迟要求的约束。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_CONSTRAIN_ENUMERATED_VBRQUALITY 指定编码器枚举的模式是否仅限于满足质量要求的模式。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_DECODERCOMPLEXITYPROFILE 指定编码内容的复杂性配置文件。
Windows XP 及更高版本。
标准版、专业版、无损版。
只读。
MFPKEY_DESIRED_VBRQUALITY 指定 VBR 编码所需的质量级别。
Windows Vista 及更高版本。
标准版、专业版、无损版。
只写。
MFPKEY_DYN_ALLOW_NOISESUB 指定编码器是否使用干扰替换。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_DYN_ALLOW_PCMRANGELIMITING 指定编码器是否使用 PCM 范围限制。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_DYN_BANDTRUNC_BWCEIL 指定编码器中的频带截断允许的最大编码带宽。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_DYN_BANDTRUNC_BWFLOOR 指定编码器中的频带截断允许的最小编码带宽。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_DYN_BANDTRUNC_QCEIL 指定允许最小编码带宽的质量。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_DYN_BANDTRUNC_QFLOOR 指定允许最大编码带宽的质量。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_DYN_BANDTRUNCATION 指定编码器是否执行频带截断。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_DYN_SIMPLEMASK 指定编码器是否使用 Windows Media Audio 编码器版本 7 执行的掩码计算样式。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_DYN_STEREO_PREPROC 指定编码器是否执行立体声图像处理。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_DYN_VBR_BAVG 为配置为使用平均可控 VBR 编码的编码器指定缓冲区窗口(以毫秒为单位)。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_DYN_VBR_RAVG 为配置为使用平均可控 VBR 编码的编码器指定平均比特率(以每秒位数为单位)。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_ENCCOMPLEXITY 指定编码算法的复杂性。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_ENDOFPASS 指定编码过程的结束。
Windows XP 及更高版本。
标准版、专业版。
只写。
MFPKEY_ENHANCED_WMA 指定核心编码器是否使用“Plus”功能。
Windows Vista 及更高版本。
Professional。
读/写。
MFPKEY_MAXDECLATENCYMS 指定解码器的最大延迟(以毫秒为单位)。
Windows Vista 及更高版本。
标准版、专业版、无损版。
只写。
MFPKEY_MAXENCLATENCYMS 指定编码器的最大延迟(以毫秒为单位)。
Windows Vista 及更高版本。
标准版、专业版、无损版。
只写。
MFPKEY_MOST_RECENTLY_ENUMERATED_VBRQUALITY 指定最近枚举的输出类型的 VBR 质量级别。
Windows Vista 及更高版本。
标准版、专业版、无损版。
只读。
MFPKEY_PASSESRECOMMENDED 指定编码器支持的最大传递次数。
Windows XP 及更高版本。
标准版、专业版、无损版。
只读。
MFPKEY_PASSESUSED 指定编码器用于对内容进行编码的传递次数。
Windows XP 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_PEAKCONSTRAINED 指定编码器是否受峰值比特率的约束。
Windows Vista 及更高版本。
标准版、专业版。
读/写。
MFPKEY_PREFERRED_FRAMESIZE 指定每个帧的首选样本数。
Windows Vista 及更高版本。
Professional。
读/写。
MFPKEY_REQUESTING_A_FRAMESIZE 指定编码器是否应使用首选帧大小。
Windows Vista 及更高版本。
Professional。
读/写。
MFPKEY_RMAX 指定用于约束的 2 次可变比特率 (VBR) 编码的峰值比特率(以每秒位数为单位)。
Windows XP 及更高版本。
标准版、专业版。
读/写。
MFPKEY_STAT_BAVG 指定编码流的平均缓冲区窗口(以毫秒为单位)。
Windows XP 及更高版本。
标准版、专业版、无损版。
只读。
MFPKEY_STAT_BMAX 指定编码流的最大缓冲区窗口(以毫秒为单位)。
Windows XP 及更高版本。
标准版、专业版、无损版。
只读。
MFPKEY_STAT_RAVG 指定编码流的平均比特率(以每秒位数为单位)。
Windows XP 及更高版本。
标准版、专业版、无损版。
只读。
MFPKEY_STAT_RMAX 指定编码流的最大比特率(以每秒位数为单位)。
Windows XP 及更高版本。
标准版、专业版、无损版。
只读。
MFPKEY_VBRENABLED 指定编码器是否使用 VBR 编码。
Windows XP 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_WMA_ELEMENTARY_STREAM Windows Media Audio 编解码器当前不使用此属性。
MFPKEY_WMADRC_AVGREF 指定音频内容的平均音量。
Windows XP 及更高版本。
标准版、专业版、无损版。
只读。
MFPKEY_WMADRC_PEAKREF 指定音频内容的最高音量。
Windows XP 及更高版本。
标准版、专业版、无损版。
只读。
MFPKEY_WMAENC_AVGBYTESPERSEC 指定 VBR 编码音频的平均每秒字节数。
Windows XP 及更高版本。
标准版、专业版、无损版。
只读。
MFPKEY_WMAENC_BUFFERLESSCBR 指定编码器是否应为每个帧生成 1 个 WMA 数据包。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_WMAENC_GENERATE_DRC_PARAMS 指定编码器是否应生成动态范围控制参数。
Windows Vista 及更高版本。
标准版、专业版、无损版。
读/写。
MFPKEY_WMAENC_ORIGWAVEFORMAT 指定描述输入音频内容的 WAVEFORMATEX 结构。
Windows XP 及更高版本。
标准版、专业版。
读/写。
MFPKEY_WMAENC_RTSPDIF 指定编码器是否应启用实时 S/PDIF 编码。
Windows Vista 及更高版本。
Professional。
读/写。

 

要求

要求
客户端
Windows XP、Windows Vista 或 Windows 7
标头
Wmcodecdsp.h
DLL
Wmadmoe.dll

另请参阅

编解码器对象

编解码器实现