Поделиться через


Настройка ограниченного VBR

[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Он был заменен средством чтения исходного кода и модуля записи приемника. Средство чтения исходного кода и модуль записи приемника оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код по возможности использовал средство чтения исходного кода и модуль записи приемника вместо пакета SDK для Windows Media Format 11. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Вы можете использовать кодирование с ограниченной переменной скоростью (VBR) в потоке, чтобы указать среднюю скорость, которая будет поддерживаться в закодированном содержимом. Вы также указываете максимальную скорость потока и максимальное требуемое окно буфера.

Вы не можете знать, какая средняя скорость будет для ограниченного потока VBR до кодирования, но вы можете использовать приблизительную оценку. Как правило, указанная максимальная скорость передачи будет в два-три раза выше средней скорости.

Ограниченное значение VBR должно использоваться в сочетании с двухпрохожей кодировкой. Двухпродача кодировка не задана в профиле. Перед записью потока необходимо настроить модуль записи для выполнения этапа предварительной обработки. Дополнительные сведения об использовании двухфакторной кодировки см. в разделе Использование кодировки Two-Pass.

Чтобы настроить поток в профиле для использования ограниченной кодировки VBR, выполните следующие действия.

  1. Создайте объект диспетчера профилей, вызвав функцию WMCreateProfileManager .
  2. Откройте существующий профиль, в который вы хотите добавить поддержку VBR. Дополнительные сведения об открытии профилей см. в разделе Работа с профилями.
  3. Получите объект конфигурации потока для потока, который вы хотите использовать, вызвав IWMProfile::GetStream или IWMProfile::GetStreamByNumber.
  4. Получите указатель на интерфейс IWMPropertyVault объекта конфигурации потока, вызвав IWMStreamConfig::QueryInterface.
  5. Включите кодирование VBR для потока, вызвав IWMPropertyVault::SetProperty для свойства g_wszVBREnabled .
  6. Используйте вызовы IWMPropertyVault::SetProperty , чтобы задать требуемые максимальные значения для свойств g_wszVBRBitrateMax и g_wszVBRBufferWindowMax .
  7. Сохраните изменения, внесенные в поток, вызвав IWMProfile::ReconfigStream.
  8. Сохраните профиль или передайте его в объект записи.
  9. Настройте модуль записи для выполнения прохода предварительной обработки.

Настройка потоков VBR