编码属性

Windows Media 音频和 Windows Media 视频编码器支持各种编码模式。 这些模式通常是通过设置编码器 媒体基础转换 (MFT) 的属性来配置的。 若要执行文件编码,无论是使用 WMContainer 级组件还是通过构建部分拓扑,都必须根据编码模式和流的媒体类型设置属性来适当地配置编码器。 必须在用于写入 ASF 文件的编码器和对象 (ASF 文件接收器或 ASF 多路复用器) 设置相同的属性集。

编码器属性在 wmcodecdsp.h 中定义。 使用 IPropertyStore 接口的方法设置用于配置编码器的特定属性。

音频流属性

下表显示了音频流的编码器配置。

编码类型 属性名称 - 值
常量比特率编码 MFPKEY_VBRENABLED - FALSE (可选) 默认情况下,MFPKEY_VBRENABLED设置为 FALSE
基于质量的可变比特率编码 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 1 (可选)
默认情况下,MFPKEY_PASSESUSED设置为 1。
MFPKEY_DESIRED_VBRQUALITY - 从 0 到 100
不受约束的可变比特率编码 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
受峰值约束的可变比特率编码 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
MFPKEY_RMAX - 最大比特率
MFPKEY_BMAX - 最大缓冲区窗口

 

视频流属性

下表显示了视频流的编码器配置。

编码类型 属性名称
常量比特率编码 MFPKEY_VBRENABLED - FALSE (可选)
默认情况下,MFPKEY_VBRENABLED设置为 FALSE
MFPKEY_VIDEOWINDOW - 缓冲区窗口
基于质量的可变比特率编码 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 1 (可选)
默认情况下,MFPKEY_PASSESUSED设置为 1。
MFPKEY_DESIRED_VBRQUALITY - 从 0 到 100
不受约束的可变比特率编码 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
受峰值约束的可变比特率编码 MFPKEY_VBRENABLED - TRUE
MFPKEY_PASSESUSED - 2
MFPKEY_RMAX - 最大比特率
MFPKEY_BMAX - 最大缓冲区窗口

 

配置编码器的属性存储

必须在编码会话之前指定编码类型和各种特定于流的设置来配置编码器。 还必须在 ASF ContentInfo 对象的 属性存储中设置编码器属性,该对象代表输出文件的 ASF 标头对象。

如果使用编码器 MFT:

  1. 获取对编码器 MFT 的 IMFTransform 接口的引用,如 使用编码器的 IMFTransform 接口中所述。
  2. 查询 IPropertyStore 接口的编码器 MFT。
  3. 通过调用 IPropertyStore::SetValue 来设置所需的属性。

如果使用内置编码器激活对象并已创建配置的 ASF 文件接收器,则可以将 ASF 媒体接收器的属性存储传递给 MFCreateWMAEncoderActivateMFCreateWMVEncoderActivate。 编码器是根据应用程序指定的设置自动配置的。 有关详细信息,请参阅 使用编码器的激活对象中所述的过程。

有关使用激活对象创建 Media Foundation 对象的详细信息,请参阅 激活对象

实例化编码器 MFT

Windows Media 编码器