Настройка неограниченного VBR
[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Она была заменена средствами чтения источника и модуля записи приемников. Средство чтения источника и модуль записи приемников оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде средство чтения исходного кода и модуль записи приемников вместо пакета SDK для Windows Media Format 11, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Вы можете использовать неограниченное кодирование переменной скорости (VBR) в потоке, чтобы указать среднюю скорость, которая будет поддерживаться в закодированном содержимом. Без ограничений VBR отличается от обычного CBR тем, что дисперсия скорости в потоке может быть больше.
В качестве требуемой средней скорости используется скорость потока, заданная с помощью IWMStreamConfig::SetBitrate. После завершения кодирования потока можно использовать IWMPropertyVault::GetPropertyByName для получения двух дополнительных свойств: g_wszVBRPeak и g_wszBufferAverage. Эти свойства описывают пиковую скорость закодированного содержимого и среднее окно буфера содержимого соответственно.
Без ограничений VBR необходимо использовать в сочетании с двухпрохожной кодировкой. Двухпродача кодировка не задана в профиле. Перед записью потока необходимо настроить модуль записи для выполнения прохода предварительной обработки. Дополнительные сведения об использовании двухпрохавной кодировки см. в разделе Использование кодировки Two-Pass.
Чтобы настроить поток в профиле для кодирования с помощью неограниченного VBR, выполните следующие действия.
- Создайте объект диспетчера профилей, вызвав функцию WMCreateProfileManager .
- Откройте существующий профиль, в который требуется добавить поддержку VBR. Дополнительные сведения об открытии профилей см. в статье Работа с профилями.
- Получите объект конфигурации потока для потока, который вы хотите использовать, вызвав IWMProfile::GetStream или IWMProfile::GetStreamByNumber.
- Получите указатель на интерфейс IWMPropertyVault объекта конфигурации потока, вызвав IWMStreamConfig::QueryInterface.
- Включите кодировку VBR для потока, вызвав IWMPropertyVault::SetProperty для свойства g_wszVBREnabled .
- Присвойте g_wszVBRBitrateMax и g_wszVBRBufferWindowMax равным нулю с помощью IWMPropertyVault::SetProperty.
- Сохраните изменения, внесенные в поток, вызвав IWMProfile::ReconfigStream.
- Сохраните профиль или передайте его в объект записи.
- Настройте модуль записи для выполнения прохода предварительной обработки.
Связанные темы