1

我需要你的建议。我想使用 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 Sink ( 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)。同样的问题,加上源阅读器无法播放。
  3. 自定义 MFT?任何情况下 MediaCapture 都允许通过 AddEffectAsync() 连接到 MFT。

我的环境:MS Windows 10、MS Visual Studio Community 2015。

谢谢你的任何想法。

4

1 回答 1

0

这个问题和 UWP 对我来说根本不实际。我发现了以下内容:

“有些应用程序可以在后台密集工作,例如它可能是视频转换、在线财务数据处理等等。现在 UWP 应用程序在离开屏幕时会暂停。”

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

因此,如果用户最小化程序窗口,则程序会停止视频流。

于 2016-04-21T05:53:29.773 回答