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


Стабилизация видео MFT

Стабилизация видео MFT — это преобразование Microsoft Media Foundation (MFT), которое выполняет стабилизацию изображения в видеопотоке.

CLSID

CLSID_CMSVideoDSPMFT

Интерфейсы

Форматы ввода

Ниже приведены сочетания типов входных носителей и подтипов, принимаемых стабилизацией видео MFT для несжатого видео:

  • MEDIATYPE_VIDEO
  • MEDIASUBTYPE_NV12
  • MEDIASUBTYPE_YUY2

Форматы выходных данных

Ниже приведены сочетания типов выходных носителей и подтипов, принятых в MFT для стабилизации видео:

  • MEDIATYPE_VIDEO
  • MEDIASUBTYPE_NV12

Тип входного носителя должен быть задан перед типом выходного носителя. В большинстве случаев ограниченная поддержка формата не является проблемой, так как конвейер автоматически вставляет необходимые преобразования цветов.

Компонент MFT для стабилизации видео поддерживает динамическое изменение формата при изменении входных данных. При изменении размера входного рисунка или подтипа он активирует динамическое изменение формата в потоке вывода.

Стабилизация видео MFT будет выполнять преобразование цвета в следующих случаях:

  • Если формат входных данных MEDIASUBTYPE_YUY2.
  • При использовании режима совместимости Microsoft DirectX 9.0.

Атрибуты

Следующие атрибуты поддерживаются стабилизацией видео MFT через интерфейс IMFAttributes .

  • Атрибут MF_VIDEODSP_MODE переводит стабилизацию видео MFT в режим стабилизации или сквозной режим. Приложение должно вызывать IMFAttributes::SetUINT32 в MF_VIDEODSP_TYPE GUID с целым числом, соответствующим одному из следующих допустимых значений: MFVideoDSPMode_Stabilization = 4, MFVideoDSPMode_Passthrough = 1. MF_VIDEODSP_MODE можно изменить в любое время во время воспроизведения. Это приводит к изменению динамического режима. После изменения атрибута выходные данные переключятся на стабилизированные или проходят через 16 или 2 кадра (в зависимости от режима задержки).
  • Атрибут MF_LOW_LATENCY переводит MFT-файл стабилизации видео в режим низкой задержки или режим высокого качества. Приложение должно вызывать IMFAttributes::SetUINT32 в MF_LOW_LATENCY GUID с целым числом, соответствующим одному из следующих допустимых значений: Низкая задержка = 1 Высокое качество = 0
  • Атрибут MF_SA_D3D11_BINDFLAGS используется конвейером для указания флагов привязки D3D11 для создания выходных примеров. Допустимо любое сочетание значений из перечисления D3D11_BIND_FLAG .
  • Атрибут MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT используется конвейером для указания минимального количества выборок, которые этот компонент должен поддерживать в выходных данных.
  • Атрибут MFSampleExtension_VideoDSPMode задается для каждой выборки, созданной путем стабилизации, чтобы указать, на MF_VIDEODSP_MODE , примененные к этой выборке (независимо от того, была ли выборка стабилизирована). При определенных условиях выборки могут не стабилизироваться (из-за высокой нагрузки системы или запросов со стороны пользователя). Этот атрибут имеет те же значения, что и атрибут MF_VIDEODSP_MODE (MFVideoDSPMode_Stabilization и MFVideoDSPMode_Passthrough). Чтобы получить значение этого атрибута, приложения должны вызвать IMFAttributes::SetUINT32 в MFSampleExtension_VideoDSPMode GUID.

Комментарии

Экземпляр DSP стабилизации видео можно создать одним из следующих способов:

  • Путем вызова MFTEnumEx. DSP стабилизации видео регистрируется в категории MFT_CATEGORY_VIDEO_EFFECT .
  • Путем вызова com-функции CoCreateInstance , передав ей CLSID_CMSVideoDSPMFT CLSID. Чтобы использовать этот метод, необходимо включить wmcodecdsp.h и ссылку на wmcodecdspuuid.lib.

Кроме того, DSP для стабилизации видео поддерживает создание экземпляров с помощью среда выполнения Windows в качестве расширения Windows Media. Он определен в Windows.Media.VideoEffects и имеет полное имя "Windows.Media.VideoEffects.VideoStabilization".

Требования

Требование Значение
Заголовок
Camerauicontrol.h

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

Цифровые обработчики сигналов

Windows.Media.VideoEffects