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


Настроить без ограничений VBR

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

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

Скорость потока, заданная IWMStreamConfig::SetBitrate, используется в качестве требуемой средней скорости. После завершения кодирования потока можно использовать IWMPropertyVault::GetPropertyByName для получения двух дополнительных свойств: g_wszVBRPeak и g_wszBufferAverage. Эти свойства описывают пиковую скорость передачи содержимого в кодировке и среднее окно буфера содержимого соответственно.

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

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

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

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