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


Декодер видео H.264

Декодер видео Media Foundation H.264 — это преобразование Media Foundation , которое поддерживает декодирование профилей Base, Main и High до уровня 5.1.

Декодер видео H.264 предоставляет следующие интерфейсы.

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

  • Вызовите функцию 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 для настройки следующих свойств кодека.

Ограничения формата

Декодер поддерживает следующие форматы:

Параметр Формат
Профили и уровни Профили "Базовый", "Основной" и "Высокий" до уровня 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
Msmpeg2vdec.dll

См. также раздел

Объекты кодека

Поддержка MPEG-4 в Media Foundation

Поддерживаемые форматы мультимедиа в Media Foundation

Типы видеофайла