Media Foundation 无法检测到捕获设备

Posted

技术标签:

【中文标题】Media Foundation 无法检测到捕获设备【英文标题】:Media Foundation can not detect capture devices 【发布时间】:2014-09-19 12:21:30 【问题描述】:

HRESULT MFEnumDeviceSources(In IMFAttributes *pAttributes, Out IMFActivate ***pppSourceActivate, 输出 UINT32 *pcSourceActivate);

在 Windows 7 和 Visual Studio 2012 平台,使用此函数但 pcSourceActivate 返回 0 和 pppSourceActivate 为空。但实际上机器有 9 个视频采集卡。有人帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

Media Foundation 支持 Windows 中已知的视频捕获设备的子范围。也许您拥有的那些在 Media Foundation 中没有支持。

From MSDN:

从 Windows 7 开始,Media Foundation 自动支持音频 和视频捕获设备。对于视频,设备必须提供内核 视频捕获类别中的流 (KS) 微型驱动程序。媒体 Foundation 使用 PnP 路径枚举设备。对于音频、媒体 Foundation 使用 Windows 多媒体设备 (MMDevice) API 枚举音频端点设备。如果设备符合这些标准, 无需实现自定义媒体源。

判断 MS 是否支持特定设备的最简单方法是使用 SDK 中的TopoEdit 工具来查看它是否列出了设备。

【讨论】:

以上是关于Media Foundation 无法检测到捕获设备的主要内容,如果未能解决你的问题,请参考以下文章

在 Media Foundation 中检测音量或静音

Media Foundation Capture - 如何检测真正的原生输入格式

无法使用 Media Foundation h264 编码器设置自定义 SEI

与 Media Foundation 一起制作视频

Media Foundation 将音频流添加到视频文件

NV12 到 RGB32 与 Microsoft Media Foundation