- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们正在开发一种软件,我们可以在其中预览和记录从视频采集卡采集的输入视频源。预览是用DirectShow实现的,录制是用Media Foundation实现的(老软件慢慢升级到MediaFoundation)
问题出在 MediaFoundation:它似乎在我们的发布机器上正确找到了视频捕获卡,但没有找到我们在测试机器上使用的“屏幕捕获”视频模拟器。另一方面,DirectShow 代码可以正确找到视频捕捉设备和屏幕捕捉设备模拟器。
那么,为什么 MediaFoundation 找不到模拟器驱动程序?
注意:模拟器是在DirectShow中制作的...它是VHScrCap
这是 MediaFoundation 代码:
HRESULT DeviceList::EnumerateVideoDevices(){
HRESULT hr = S_OK;
IMFAttributes *pAttributes = NULL;
ClearVideo();
// Initialize an attribute store. We will use this to
// specify the enumeration parameters.
hr = MFCreateAttributes(&pAttributes, 1);
// Ask for source type = video capture devices
if (SUCCEEDED(hr))
{
hr = pAttributes->SetGUID(
MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE,
MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID
);
}
// Enumerate devices.
if (SUCCEEDED(hr))
{
hr = MFEnumDeviceSources(pAttributes, &m_ppVideoDevices, &m_cVideoDevices);
}
SafeRelease(&pAttributes);
return hr;
在 hr = MFEnumDeviceSources(pAttributes, &m_ppVideoDevices, &m_cVideoDevices);
处未找到任何设备。
谢谢!
最佳答案
媒体基金会不应该选择所谓的“虚拟”DirectShow 视频源。 DirectShow 通过视频输入类别提供视频源,其中包括由 WDM 驱动程序设备支持的过滤器,然后是注册到该类别的任何其他过滤器。 Media Foundation 有自己的适配器来公开 WDM 捕获设备,但 DirectShow 过滤器在那里是不可见的。基本上,您需要一个单独的 Media Foundation 模拟器。
Starting in Windows 7, Media Foundation automatically supports audio and video capture devices. For video, the device must provide a kernel streaming (KS) minidriver in the video capture category. Media Foundation uses the PnP path to enumerate the device. For audio, Media Foundation uses the Windows Multimedia Device (MMDevice) API to enumerate audio endpoint devices. If the device meets these criteria, there is no need to implement a custom media source.
However, you might want to implement a custom media source for some other type of device or other live data source. There are only a few differences between a live source and other media sources:
关于c# - MediaFoundation 找不到视频捕获仿真器驱动程序。但 DirectShow 确实,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24612174/
我打算使用 mediafoundation 构建一个适配器,公开诸如“StartCapture”和“StopCapture”之类的方法,并希望多个客户端能够从单个网络摄像头设备同时访问这些方法。 目前
我的最终目标是为我的虚拟类应用程序添加视频支持。我的方法是: 使用 Media Foundation 捕获帧 使用 LibVPX 用 VP8 编码 使用UDP传输 在接收方解码 在窗口中显示框架 第一
我将位图保存为 BYTE 数组,它以与 Microsoft 的 CBitmap 类非常相似且可互换的格式保存每个像素的 RGB 值。因此,让我们考虑一下我有一个 CBitmap 数组,我想使用 Med
我想知道我可以使用哪个 MediaFoundation API 来控制亮度、对比度、色调和饱和度等?我发现 IMFVideoProcessor::SetProcAmpValues 可以修改这些属性,但
我能够使用 MediaFoundation 成功编码 H264 视频。 现在我想导出 HEVC,根据 official documentation , 受支持。 我正在按照那里的描述做所有事情,但是每
我们正在开发一种软件,我们可以在其中预览和记录从视频采集卡采集的输入视频源。预览是用DirectShow实现的,录制是用Media Foundation实现的(老软件慢慢升级到MediaFound
GraphEdit仅适用于 DirectShow ,不适用于使用 MediaFoundation 构建的拓扑. 是否有与 GraphEdit for MediaFoundation 类似的工具? 最佳
取自 MSDN 帮助页面,只要视频编码和视频输入格式为 WMV3/RGB32,InitializeSinkWriter 就可以正常工作,但是如果我将其更改为 WMV1、MPEG2 等,则 SetInp
我正在使用 SourceReader MediaFoundation 技术为桌面开发多媒体流应用程序。 我正在使用 USB 摄像头设备显示流媒体。相机支持两种视频格式:YUY2 和 MJPG。 对于
我正在尝试实时流式传输通过桌面复制 API 捕获的桌面。 H264 编码工作正常,除了桌面复制 API 仅在屏幕发生变化时才交付帧,但视频编码器希望帧以恒定帧速率交付。因此,当没有触发屏幕变化时,我不
我想从基础开始学习 DirectShow 和 MediaFoundation 编程。培训资源(网站链接等)所需的帮助。 从 DirectShow 和 MF 编程开始应该具备的所有先决条件。 我想我必须
我正在使用 MediaFoundation SourceReader 技术开发 USB 摄像头流式桌面应用程序。该相机支持 USB3.0,并为 1080p MJPG 视频格式分辨率提供 60fps。
我是一名优秀的程序员,十分优秀!