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


Рекомендации по MFT driver на многокреплениях камер (приложения устройств UWP)

Windows 8.1 предлагает IHV и системные изготовители оборудования возможность создавать подключаемые модули обработки видео в виде преобразования Media Foundation (MFT), известного как драйвер камеры MFT. После установки эти MFT-драйверы можно использовать приложениями устройств UWP для включения специальных видеоэффектов. Некоторые камеры предоставляют отдельные закрепления для предварительного просмотра, захвата и по-прежнему. Эти многокрепления камеры представляют уникальные проблемы для разработчиков. В этой статье рассматриваются некоторые моменты, которые следует учитывать при разработке MFT драйвера камеры на многокрепления камеры. Дополнительные сведения о создании драйвера MFT см. в разделе "Создание драйвера камеры MFT".

Введение

Драйвер MFT также называется MFT0, чтобы указать, что это первый MFT для работы в средстве чтения источника. Отдельный экземпляр MFT0 присоединяется к каждому закреплению источника записи. Для некоторых системных изготовителей оборудования драйвер записи AVStream должен поддерживать предварительный просмотр пин-код, пин-код записи и закрепление по-прежнему. Это означает, что может быть три экземпляра MFT0. На этой схеме показана эта архитектура с тремя копиями подключаемого модуля IHV MFT, по одной для каждого потока.

capture extension plug-in model in mf.

Типичные сценарии для MFT0 могут представлять проблемы. Ниже приведены две популярные функции для MFT0:

  • Анализ видеопотока для предоставления обратной связи камере для улучшенного захвата (например, автоматического фокуса на основе узла и автоматического воздействия)

  • Добавление эффектов видео

Веб-камера с одним закреплением

Исторически камеры были подвержены Windows в качестве одного закрепления захвата. Эта схема представляет способ работы однокрепления веб-камеры:

one-pin webcam.

В этом случае элементы управления камерой и видеоэффекты работают как разработанные, так как предварительный просмотр и по-прежнему находятся в контакте с записью после применения элемента управления камерой и видеоэффектов. Результатом является то, что сохраненный файл или приятель чата пользователя увидит те же видео эффекты, что пользователь видит в предварительной версии, и что существует только один экземпляр функции управления камерой. Если есть связанное приложение устройства UWP, приложение подключено к MFT0 на закреплении записи, поэтому MFT0 получает сообщения управления из приложения (то есть пользователь).

Трехкрепная веб-камера

В зависимости от потребностей приложения камера с тремя закреплениями может содержать не более трех экземпляров MFT0. Эта схема представляет способ работы трехкрепления камеры:

three-pin webcam.

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

Во-вторых, существует три экземпляра эффектов видео. Помимо затрат на три раза вычислений, три экземпляра MFT0 теперь должны взаимодействовать таким образом, чтобы каждый кадр видео всегда имеет одинаковый эффект в том же состоянии. В противном случае то, что пользователь видит, не будет тем, что сохраняется или предоставлен общий доступ.

Кроме того, существует два последних составных фактора:

  • Каждый экземпляр MFT0 может быть создан или закрыт в любое время

  • Приложение устройства UWP подключено только к одному экземпляру MFT0

Сжатое видео

Веб-камера или изготовитель системы может выбрать сжатие видео, прежде чем он будет представлен на закреплении захвата (то есть на самой веб-камере). Выгрузка сжатия на веб-камеру позволяет снизить мощность компьютеров с питанием и предоставить общий доступ к видео HD. Этот сжатый видеопоток обычно не может быть проанализирован для поддержки управления камерой, а также не может применяться эффекты видео. Это представляет проблему создания всех экземпляров MFT0 (и приложения устройства Microsoft Store, если оно есть) с учетом того, что никакие эффекты не будут применены к потоку записи. На этой схеме представлено сжатое видео:

compressed video.

Если пользователь применяет эффект видео к потоку предварительной версии, его нельзя применить к потоку записи или закреплению. Таким образом, пользователь видит эффект видео, который не применяется к сохраненном или потоковом видео. Если поток предварительной версии остановлен, приложение устройства Microsoft Store попытается подключиться к потоку записи. Когда пользователь выполняет потоковую передачу сжатых видео, это не позволяет использовать множество функций.

Обмен данными между экземплярами MFT0

Если три экземпляра MFT0 могут взаимодействовать друг с другом, это может решить большинство проблем. Как эти экземпляры обнаруживают друг друга до IHV. После того как все MFT0-серверы смогут взаимодействовать, экземпляр MFT0, подключенный к приложению устройства Microsoft Store, может сообщить другим экземплярам, какие эффекты применяются и его текущее состояние. Кроме того, три экземпляра могут определить, какой экземпляр применяет управление камерой. Наконец, предварительный просмотр пин-кода может определить, закодирован ли пин-код записи потоковой передачи видео. После этого пин-код предварительного просмотра может отключить эффекты видео.

Хотя взаимодействие между экземплярами MFT0 решает основные проблемы с взаимодействием с пользователем, три экземпляра эффектов видео по-прежнему должны работать одновременно. Некоторые эффекты видео могут использовать большинство доступных ресурсов ЦП, особенно если видео с полноэкранным просмотром и записью одновременно. Это серьезные проблемы. По соображениям производительности каждый isV должен рассмотреть возможность выполнения обработки один раз, например обнаружение лиц, и предоставить общий доступ ко всем экземплярам MFT0.