Запись потоков с некверными пикселями
[Функция, связанная с этой страницей, Windows Media Format 11 SDK, является устаревшей функцией. Она была заменена средствами чтения источника и модуля записи приемников. Средство чтения источника и модуль записи приемников оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде средство чтения исходного кода и модуль записи приемников вместо пакета SDK для Windows Media Format 11, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Существует два способа создания видеопотоков с некверными пикселями, которые будут правильно отображаться в Медиаплеер Windows. Первый способ включает настройку атрибутов уровня потока в заголовке файла. Второй способ включает добавление расширения единиц данных в поток в профиле, а затем задание его значения в каждом записанном примере.
Использование атрибутов заголовка уровня потока для задания пропорций пикселей
- Настройте объект записи. Дополнительные сведения см. в статье Запись ФАЙЛОВ ASF.
- Создайте или загрузите профиль с одним или несколькими видеопотоками. Дополнительные сведения см. в разделе Использование профилей с модулем записи.
- Вызовите IWMWriter::SetProfile. (Всегда вызывайте этот метод перед установкой атрибутов заголовка.)
- Вызовите QueryInterface , чтобы получить интерфейс IWMHeaderInfo3 , и дважды вызовите Метод AddAttribute , чтобы добавить AspectRatioX и AspectRatioY в качестве атрибутов уровня потока видеопотока. Эти атрибуты являются значениями DWORD .
- Запишите файл.
Использование расширений единиц данных для установки пропорций пикселей
Перед написанием:
- Настройте объект записи. Дополнительные сведения см. в статье Запись ФАЙЛОВ ASF.
- Создайте или загрузите профиль с одним или несколькими видеопотоками. Дополнительные сведения см. в разделе Использование профилей с модулем записи.
- Для каждого потока (любого типа мультимедиа) в профиле вызовите IWMStreamConfig::SetStreamName , чтобы указать уникальное имя по своему выбору. Не присвойте двум потокам одинаковые имена.
- Используйте IWMStreamConfig2::AddDataUnitExtension в видеопотоке, чтобы добавить расширение единицы данных для пропорций пикселей.
- Вызовите IWMWriter::SetProfile.
- Запишите файл.
При написании:
- Для каждого примера вызовите метод INSSBuffer3::SetProperty и укажите свойство WM_SampleExtensionGUID_PixelAspectRatio вместе с правильным значением. Значения пропорций записываются как два сцепленных двухзначных значения. Например, 16:9 записывается как 1609 или 0x0649. Это всегда 2-байтовое значение.
Связанные темы