我在C#中使用DirectShowNet。我一直在开发一个应用程序来使用网络摄像头来显示视频,更改分辨率和拍照(静止引脚或捕获流)。我一直在两台不同的机器上测试它(Win 7 64位和Win 8 64位)以及这些机器上的内部网络摄像头(它们是笔记本电脑)和另外两台网络摄像机,Logitech C920和Microsoft LifeCam Studio。 / p>
有一天,LifeCam Studio停止了我的Win 8机器的工作。使用GraphEditPlus,检查Capture引脚的VideoFormats,我注意到,神秘地说,不再列出RGB24格式。我写的应用程序只使用24位颜色格式。仅列出YUY2 16位格式。如果我在Win 7机器上检查相同的网络摄像头,我会看到列出的YUY2和RGB24格式。以前,我的Win 8机器确实列出了这两种格式。
问题是,什么可能导致DirectShow更改Capture引脚的VideoFormats列表?到目前为止,我注意到更改驱动程序版本会使网络摄像头在哪些引脚上产生巨大差异支持,但我没有看到他们改变像这样的视频格式。据我所知,我没有在任何一台机器上更新网络摄像头的驱动程序。
以下是两台机器的驱动程序版本。
答案 0 :(得分:3)
我想出了如何恢复格式。我进入设备管理器并找到了“Microsoft LifeCam Studio”设备。我卸载它并点击“同时删除此设备的驱动程序”复选框。之后,我刷新了设备管理器,当找到设备时,它的名称为“Microsoft®LifeCamStudio(TM)”,但随后更改为“Microsoft LifeCam Studio”。这让我意识到它会自动更新驱动程序。
正如您在上面的Win 8屏幕截图中所注意到的,启用了“回滚驱动程序”按钮。这意味着驱动程序在某些时候已更新。我继续回滚驱动程序,将名称改回“Microsoft®LifeCamStudio(TM)”。
现在,在GraphEditPlus中,器件为Capture引脚列出了YUY2,MJPG(24位)和M420(12位)视频格式。这似乎是我过去所拥有的。由于可以使用24位格式,因此它现在可以正常使用我的应用程序。
总体而言, Microsoft在制作Windows 8驱动程序时删除了设备的部分DirectShow功能。这个旧的驱动程序是从2006年开始的,并且在Windows 8中运行得非常好。我假设它是一个内置于操作系统中的旧操作系统的旧版本。
以下是其他人的工作驱动程序的屏幕截图,这些驱动程序希望为Windows 8中的LifeCam Studio提供更多视频格式。