directshow - 任何区分虚拟和物理相机的方法
问题描述
使用 Directshow.NET,我开发了一个应用程序,它从相机中抓取一些图片并将其保存在磁盘上。一切都很好,但如果某些虚拟相机已注册(安装)例如。Cyberlink YouCam 然后直接显示接收以下帧:(GraphStudio 截图)
因此,为避免这种情况,我想检测找到的视频设备FilterCategory.VideoInputDevice
是虚拟网络摄像头还是物理网络摄像头。有什么方法可以区分两者吗?
解决方案
物理相机由WDM Video Capture Filter实现。虚拟摄像机模仿那些,有些更好,有些更糟。
那些没有驱动程序实现的虚拟摄像机通常不会实现 WDM Video Capture Filter 的某些接口。通过驱动程序实现的可以通过它们的硬件路径过滤掉(黑名单)。后者的任务更难,因为 WDM Video Capture Filter 包装了这样的驱动程序并实现了一个与物理设备过滤器非常相似的过滤器,但硬件路径应该揭示其虚拟性质。
推荐阅读
- c# - WHERE 子句中的条件语句
- android - 如何将大型 JSON 数据从服务器存储到 SQLTE Android?
- python - 为什么这段代码不让我使用矩形绘制,而只是移动矩形?
- c# - 来自客户端应用程序的 Elsa 工作流程
- python - OpenCV - 如何获得多边形曲线的切线
- python - CURL 有效,但不能翻译成 Python
- c++ - 将 opencv 中的“videocapture”数据插入到 Tensorflow-lite
- performance - 我如何在普罗米修斯中查阅这些查询?
- ethereum - 如何使用 waffle 和 ethers.js 测试应付/外部方法
- python - 根据时间Python聚合列表中的分类值