Граббер для расщепления в UWP

Мне нужен твой совет. Я хотел бы разработать приложение для разделения аудио / видео с использованием интерфейса Metro.

Обычно я использую DirectShow для него, используя следующую схему: создайте граббер, добавьте его в график DS, захватите им аудио / видео потоки и передайте их моим драйверам AVstream для разделения. Но в новой программе я хочу использовать Media Foundation и вставить его в UWP.

Как я вижу свое новое приложение. Он должен иметь интерфейс Metro для общего управления: выбор источников, добавление параметров, изменение режимов и т. Д. Я хотел бы использовать класс MediaCapture для захвата потоков и их рендеринга. Здесь я не вижу никаких проблем, MSDN имеет много примеров для этого. Но я понятия не имею, как вставить граббер между источником и рендером.

Какие операции будет выполнять граббер:

  1. Получать входной поток из MediaCapture.
  2. Преобразование потока: YUV -> RGB, добавление эффектов и т. Д.
  3. Отправить поток вывода для рендеринга (MediaCapture) и в мой драйвер AVstream для разделения на любые приложения (Skype, Adobe Flash Player, Edge, ....).

Как сделать граббер. В MSDN я нашел три способа:

  1. Образец раковины Grabber ( https://msdn.microsoft.com/en-us/library/windows/desktop/hh184779(v=vs.85).aspx). Нет проблем, чтобы получить / контролировать / отправить поток в MF DLL. Но я не знаю, как связать эту DLL с MediaCapture?
  2. Читатель исходного кода ( https://msdn.microsoft.com/en-us/library/windows/desktop/dd940436(v=vs.85).aspx). Те же проблемы, плюс Source Reader не работает для воспроизведения.
  3. Кастом МФТ? В любом случае MediaCapture позволяет подключаться к MFT с помощью AddEffectAsync().

Моя среда: MS Windows 10, MS Visual Studio Community 2015.

Спасибо за любые идеи.

1 ответ

Этот вопрос и UWP для меня вообще не актуальны. Я нашел следующее:

"Некоторые приложения могут интенсивно работать в фоновом режиме, например, это может быть конвертация видео, онлайн-обработка финансовых данных и т. Д. Теперь приложение UWP будет приостановлено, когда оно выйдет за пределы экрана".

https://wpdev.uservoice.com/forums/110705-universal-windows-platform/suggestions/9950598-exclude-suspending-in-desktop

Поэтому, если пользователь сворачивает окно программы, программа останавливает видеопоток.

Другие вопросы по тегам