Рекомендуемый способ обработки сырья видеокадры на Windows Phone 8.1 для записи пользовательских MFT плагин, а затем добавить его в MediaCapture объекта через AddEffectAsync. MFT действует как фильтр DSP между декодером и богатым XAML-компоновщиком.
Вы можете выбрать цветовое пространство, которое вы хотите поддержать в вашем MFT, и Media Foundation автоматически вставляют цветовые преобразователи пространства для вас. Имейте в виду, что цветовые пространства, доступные на телефоне, ограничены. При этом NV12 является стандартным цветовым пространством для большинства видеоустройств и считается цветовым пространством 4: 2: 0 YUV.
Хотя это звучит просто, теоретически это может быть довольно сложным на практике. MFT должны записываться в C++/MoCom. Написание MFT требует довольно глубоких знаний о C++ и COM. Я не хочу отпугивать вас от попытки попробовать, но у него есть кривая обучения.
Вот образец для Windows Store, в котором показано, как создать плагин MFT и добавить его в объект MediaCapture. К сожалению, по какой-либо причине этот образец не был преобразован в универсальное приложение. Однако преобразование должно быть простым. Поскольку это такой семенной образец, я попрошу опубликовать его как универсальное приложение.
Media capture using capture device sample
Я надеюсь, что это помогает,
Джеймс
Спасибо за вашу помощь Джеймс. Я видел это раньше, но я должен был не использовать его. Также мне было интересно, является ли этот пример хорошим примером? Как вы думаете, я могу использовать код «GrayScale», представленный в этом примере? В принципе, если я не ошибаюсь, камера захватывает необработанный кадр, сжимает эти кадры, а затем с помощью MFT я буду их несжатым, чтобы иметь этот необработанный кадр? Разве это не слишком сильно зависит от процессора телефона? –
Hello Sebastien, «GrayScale» MFT - отличное место для начала и должно быть очень просто переносить его на приложение Windows Runtime. Я работал с несколькими девелоперами, которые сделали это успешно. –
Когда вы добавляете свой MFT через «AddEffectAsync», он добавляется перед кодировщиком, поэтому вы получите «сырые» несжатые кадры. –