我在 C# 项目中使用 DShowNET,我一直在尝试多张卡。我尝试访问的卡是 GV-800_4A,它是 GeoVision CCTV 软件通常使用的采集卡。
问题是它在设备管理器中被识别为“DVR 设备”,其 guid 与我一直使用的普通视频输入设备不同,我不知道 DShowNET guid,但相信它可能与这个 guid 有关。
我的问题是“如何将 Windows 设备管理器的设备属性中看到的“设备类 guid”转换为DirectShow 中使用的 Guid?或者这些甚至是平等的?
设备管理器中的 GUID
- GeoVision GV-800A {4d36e96c-e325-11ce-bfc1-0123456789ab}
- 圆刚 {4d36e96c-e325-11ce-bfc1-08002be10318}
- 炫USB {4d36e96c-e325-11ce-bfc1-08002be10318}
DShowLib 中的 GUID
- 视频输入设备(0x860BB310、0x5D01、0x11d0、0xBD、0x3B、0x00、0xA0、0xC9、0x11、0xCE、0x86)
编辑
基本上,最终目标是能够将其作为捕获过滤器连接到图形以保存 FilterCategory.VideoInputDevice,但现在此设备(GeoVision)不会出现在可用捕获设备列表中,但它只是一个捕获设备驱动程序将其识别为“DVR 设备”
我通过将 CLSID 传递给 DShowNET 函数来使用 CLSID,以返回该类型的可用设备的 ArrayList:
DsDev.GetDevicesOfCat(FilterCategory.VideoInputDevice, out m_capDevices)
我需要知道 CLSID_[** DVR Device **] 或从哪里获得它。我认为它可以派生自“设备类 guid”,但有人告诉我这是不可能的。