本文介绍了MediaFoundation找不到视频捕获模拟器驱动程序。但是DirectShow确实的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在开发一个软件,在其中可以预览和记录从视频捕获卡捕获的输入视频源。预览是通过DirectShow实现的,录制是通过Media Foundation实现的(这是一个缓慢升级到MediaFoundation的旧软件)



MediaFoundation的问题在于:它似乎可以正确找到发行机上的视频捕获卡,而不是我们在测试机上使用的屏幕捕获视频模拟器。
另一方面,DirectShow代码可以正确找到视频捕获设备模拟器和屏幕捕获设备模拟器。



所以,为什么不能MediaFoundation可以找到仿真器驱动程序吗?



注意:仿真器是在DirectShow中制作的...它是



这是MediaFoundation代码:

  HRESULT DeviceList :: EnumerateVideoDevices(){
HRESULT hr = S_OK;
IMFAttributes * pAttributes = NULL;

ClearVideo();

//初始化属性存储。我们将用它来
//指定枚举参数。

hr = MFCreateAttributes(& pAttributes,1);

//要求来源类型=视频捕获设备
if(SUCCEEDED(hr))
{
hr = pAttributes-> SetGUID(
MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE,
MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID
);
}

//枚举设备。
if(SUCCEEDED(hr))
{
hr = MFEnumDeviceSources(pAttributes,& m_ppVideoDevices,& m_cVideoDevices);
}

SafeRelease(& pAttributes);

返程时间;

}



hr = MFEnumDeviceSources(pAttributes,& m_ppVideoDevices,& m_cVideoDevices); 找不到设备。



谢谢!

解决方案

Media Foundation不应选择所谓的虚拟 DirectShow视频源。 DirectShow通过视频输入类别提供视频源,其中包括由WDM驱动程序设备支持的过滤器,然后包括已注册到该类别的任何其他过滤器。 Media Foundation拥有自己的适配器来公开WDM捕获设备,但是DirectShow过滤器在此处不可见。基本上,您需要一个单独的Media Foundation模拟器。



这篇关于MediaFoundation找不到视频捕获模拟器驱动程序。但是DirectShow确实的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-13 11:43