Настроить без ограничений 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 без ограничений, выполните следующие действия.
- Создайте объект диспетчера профилей, вызвав функцию WMCreateProfileManager.
- Откройте существующий профиль, в который требуется добавить поддержку VBR. Дополнительные сведения об открытии профилей см. в работе с профилями.
- Получите объект конфигурации потока для потока, который требуется использовать, вызвав IWMProfile::GetStream или IWMProfile::GetStreamByNumber.
- Получите указатель на интерфейс IWMPropertyVault объекта конфигурации потока путем вызова IWMStreamConfig::QueryInterface.
- Активируйте кодирование VBR для потока путем вызова IWMPropertyVault::SetProperty для свойства g_wszVBREnabled.
- Задайте g_wszVBRBitrateMax и g_wszVBRBufferWindowMax как ноль с помощью IWMPropertyVault::SetProperty.
- Сохраните изменения, внесенные в поток, вызвав IWMProfile::ReconfigStream.
- Сохраните профиль или передайте его записывающему объекту.
- Настройте записывающее устройство для прохождения предварительной обработки.
Связанные разделы