Декодер видео H.264
Декодер видео Media Foundation H.264 — это преобразование Media Foundation , которое поддерживает декодирование профилей Base, Main и High до уровня 5.1.
Декодер видео H.264 предоставляет следующие интерфейсы.
- ICodecAPI (поддерживается в Windows 8)
- IMFGetService
- IMFQualityAdvise
- IMFQualityAdvise2
- IMFRateControl
- IMFRateSupport
- IMFRealTimeClient
- IMFTransform
Чтобы создать экземпляр декодера, выполните одно из следующих действий.
- Вызовите функцию MFTEnum или MFTEnumEx .
- Вызовите CoCreateInstance. ИДЕНТИФИКАТОР CLSID для декодера CLSID_CMSH264DecoderMFT, объявленный в wmcodecdsp.h.
Типы входных данных
Тип входных данных должен содержать по крайней мере два следующих атрибута:
attribute | Описание |
---|---|
MF_MT_MAJOR_TYPE | MFMediaType_Video |
MF_MT_SUBTYPE | MFVideoFormat_H264 или MFVideoFormat_H264_ES |
Если входной тип содержит только эти два атрибута, декодер будет предлагать тип выходных данных по умолчанию, который выступает в качестве заполнителя. Когда декодер получает достаточно входных образцов для создания выходного кадра, он сообщает об изменении формата, возвращая MF_E_TRANSFORM_STREAM_CHANGE из IMFTransform::P rocessOutput. Дополнительные сведения об обработке изменений формата см. в документации по ProcessOutput .
Чтобы избежать первоначального изменения формата, предоставьте в типе входных данных как можно больше информации, в том числе:
attribute | Описание |
---|---|
MF_MT_FRAME_RATE | Частота кадров. |
MF_MT_FRAME_SIZE | Размеры кадра. |
MF_MT_INTERLACE_MODE | Режим чередовки.
Примечание: В видео H.264 структура чередование может меняться динамически, поэтому рекомендуемое значение этого атрибута — MFVideoInterlace_MixedInterlaceOrProgressive. Сведения о переплетении в элементарном потоке видео имеют приоритет над типом мультимедиа. Дополнительные сведения см. в разделе Чередование видео. |
MF_MT_PIXEL_ASPECT_RATIO | Пропорции пикселей. |
Тип входных данных должен быть задан перед типом вывода. Пока не будет задан тип входных данных, метод IMFTransform::SetOutputType кодировщика возвращает MF_E_TRANSFORM_TYPE_NOT_SET.
Типы вывода
Декодер поддерживает следующие выходные подтипы:
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
Дополнительные сведения об этих подтипах см. в разделе Идентификаторы GUID подтипа видео.
Атрибуты преобразования
Декодер H.264 реализует метод IMFTransform::GetAttributes . Приложения могут использовать этот метод для получения или задания следующих атрибутов.
attribute | Описание |
---|---|
CODECAPI_AVDecVideoAcceleration_H264 | Включает или отключает аппаратное ускорение. |
CODECAPI_AVDecVideoThumbnailGenerationMode | Включает или отключает режим создания эскизов. |
MF_SA_D3D_AWARE | Указывает, что декодер поддерживает ускорение видео DirectX (DXVA). Рассматривать как доступный только для чтения. |
В Windows 8 декодер H.264 также поддерживает следующие атрибуты.
attribute | Описание |
---|---|
CODECAPI_AVLowLatencyMode | Включает или отключает режим декодирования с низкой задержкой. |
CODECAPI_AVDecNumWorkerThreads | Задает количество рабочих потоков, используемых декодером. |
CODECAPI_AVDecVideoMaxCodedWidth | Задает максимальную ширину рисунка, которую декодер будет принимать в качестве входного типа. |
CODECAPI_AVDecVideoMaxCodedHeight | Задает максимальную высоту изображения, которую декодер будет принимать в качестве входного типа. |
MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT | Задает максимальное количество выходных выборок. |
MFT_DECODER_EXPOSE_OUTPUT_TYPES_IN_NATIVE_ORDER | Указывает, предоставляет ли декодер выходные типы IYUV/I420 (подходящие для перекодирования) перед другими форматами. |
В Windows 8 декодер H.264 поддерживает интерфейс ICodecAPI . Этот интерфейс предоставляет переменную api для настройки следующих свойств кодека.
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoAcceleration_H264
- CODECAPI_AVDecVideoMaxCodedHeight
- CODECAPI_AVDecVideoMaxCodedWidth
- CODECAPI_AVDecVideoThumbnailGenerationMode
Ограничения формата
Декодер поддерживает следующие форматы:
Параметр | Формат |
---|---|
Профили и уровни | Профили "Базовый", "Основной" и "Высокий" до уровня 5.1. (Дополнительные сведения см. в спецификации ITU-T H.264.) |
Форматы хрома | 4:2:0 хрома или монохромной |
Минимальное разрешение | 48 × 48 пикселей |
Максимальное разрешение | 4096 × 2304 пикселей Максимальное гарантированное разрешение для ускорения DXVA составляет 1920 × 1088 пикселей; при более высоких разрешениях декодирование выполняется с помощью DXVA, если оно поддерживается базовым оборудованием, в противном случае декодирование выполняется с помощью программного обеспечения. Примечание: В Windows 7 максимальное поддерживаеме разрешение составляет 1920 × 1088 пикселей для программного обеспечения и декодирования DXVA. |
DXVA | Декодер поддерживает DXVA версии 2, но не DXVA версии 1. Декодирование DXVA поддерживается только для базовых, основных и высокопрофильных битовых потоков, совместимых с Main. (Базовые битовые потоки, совместимые с основными параметрами, определяются как profile_idc=66 и constrained_set1_flag=1.) |
Входные данные должны соответствовать приложению B стандарта ISO/IEC 14496-10. Данные должны содержать коды запуска. Декодер пропускает байты, пока не найдет допустимый набор параметров последовательности (SPS) и набор параметров рисунка (PPS) в потоке байтов.
Декодер не поддерживает технологию пленки grain.
Примечание
В предыдущей версии документации неправильно указывалось, что декодер поддерживается в Windows Server 2008 R2.
Если установлено дополнение к обновлению платформы для Windows Vista, декодер видео H.264 доступен в Windows Vista, но доступен в Windows Vista только с помощью средства чтения исходного кода.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 7 [только классические приложения] |
Минимальная версия сервера |
Ни одна версия не поддерживается |
DLL |
|
См. также раздел