Windows媒体音频编码器

Windows媒体音频编码器对音频流进行编码。 编码器支持三类编码输出:Windows媒体音频标准、Windows媒体音频Professional和Windows媒体音频丢失。

类标识符

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

输入格式

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

格式标记常量 设置标记值的格式 音频格式
WAVE_FORMAT_PCM 0x0001 PCM 格式
WAVE_FORMAT_IEEE_FLOAT 0x0003 IEEE 浮点
WAVE_FORMAT_EXTENSIBLE 0xFFFE 波形格式的 PCM/IEEE 格式

 

输出格式

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

格式标记常量 设置标记值的格式 音频格式
WAVE_FORMAT_WMAUDIO2 0x0161 Windows媒体音频标准
WAVE_FORMAT_WMAUDIO3 0x0162 Windows媒体音频Professional
WAVE_FORMAT_WMAUDIO_LOSSLESS 0x0163 Windows媒体音频丢失

 

接口

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

Windows媒体音频编码器的行为方式为DMO或 MFT,具体取决于获取的接口以及运行的Windows版本。 下表显示了音频编码器作为DMO或 MFT 的行为条件。

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

 

编码器属性

Windows媒体音频编码器支持以下属性。

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

 

要求

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

另请参阅

编解码器对象

编解码器实现