配置受约束的 VBR
[与此页面关联的功能 Windows Media Format 11 SDK 是旧版功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用源读取器和接收器编写器,而不是 Windows Media Format 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
可以在流上使用受约束的可变比特率 (VBR) 编码,以指定将在编码内容中维护的平均比特率。 还可以指定流的最大比特率和所需的最大缓冲区窗口。
在编码之前,无法知道受约束的 VBR 流的平均比特率是多少,但可以使用粗略估计。 一般情况下,指定的最大比特率最终将是平均比特率的两到三倍。
约束 VBR 必须与双传递编码结合使用。 配置文件中未设置双重编码。 在写入流之前,必须将编写器配置为执行预处理传递。 有关使用双传递编码的详细信息,请参阅 使用Two-Pass编码。
若要在配置文件中配置流以使用受约束的 VBR 编码,请执行以下步骤。
- 通过调用 WMCreateProfileManager 函数创建配置文件管理器对象。
- 打开要向其添加 VBR 支持的现有配置文件。 有关打开配置文件的详细信息,请参阅 使用配置文件。
- 通过调用 IWMProfile::GetStream 或 IWMProfile::GetStreamByNumber 获取要使用的流的流配置对象。
- 通过调用 IWMStreamConfig::QueryInterface 获取指向流配置对象的 IWMPropertyVault 接口的指针。
- 通过为 g_wszVBREnabled 属性调用 IWMPropertyVault::SetProperty 为 流启用 VBR 编码。
- 使用对 IWMPropertyVault::SetProperty 的调用为 g_wszVBRBitrateMax 和 g_wszVBRBufferWindowMax 属性设置所需的最大值。
- 通过调用 IWMProfile::ReconfigStream 保存对流所做的更改。
- 保存配置文件,或将其传递给编写器对象。
- 将编写器配置为执行预处理传递。
相关主题