我在 C# 中使用 DirectShowNet。我一直在开发一个与网络摄像头配合使用的应用程序,以显示视频、更改分辨率和拍照(Still pin 或从捕获流)。我已经在 2 台不同的机器(Win 7 64 位和 Win 8 64 位)上测试了它,并使用这些机器(它们是笔记本电脑)上的内部网络摄像头和另外 2 个网络摄像头(Logitech C920 和 Microsoft LifeCam Studio)进行了测试。 p>
有一天,LifeCam Studio 在我的 Win 8 机器上停止工作。使用 GraphEditPlus 检查 Capture 引脚的视频格式,我注意到,奇怪的是,RGB24 格式不再列出。我编写的应用程序仅使用 24 位颜色格式。仅列出 YUY2 16 位格式。如果我在 Win 7 计算机上检查同一网络摄像头,我会看到列出了 YUY2 和 RGB24 格式。以前,我的 Win 8 机器确实列出了这两种格式。
问题是,什么会导致 DirectShow 更改捕获引脚的视频格式列表?到目前为止,我注意到更改驱动程序版本会对网络摄像头的引脚产生巨大影响支持,但我还没有看到他们像这样改变视频格式。据我所知,我还没有更新任何一台机器上网络摄像头的驱动程序。
以下是两台机器的驱动程序版本。
LifeCam Studio - Windows 7 - 64 位
LifeCam Studio - Windows 8 - 64 位
最佳答案
我想出了如何恢复格式。我进入设备管理器并找到“Microsoft LifeCam Studio”设备。我卸载了它并选中“同时删除该设备的驱动程序”复选框。之后,我刷新了设备管理器,发现该设备时,其名称为“Microsoft® LifeCam Studio(TM)”,但后来更改为“Microsoft LifeCam Studio”。这让我意识到它会自动更新驱动程序。
正如您在上面的 Win 8 屏幕截图中注意到的,“回滚驱动程序”按钮已启用。这意味着驱动程序在某个时候已更新。我继续回滚驱动程序,将名称更改回“Microsoft® LifeCam Studio(TM)”。
现在,在 GraphEditPlus 中,设备列出了 Capture 引脚的 YUY2、MJPG(24 位)和 M420(12 位)视频格式。这似乎是我过去的经历。由于 24 位格式可用,它现在可以在我的应用程序中正常运行。
总体而言,微软在制作 Windows 8 驱动程序时删除了设备的部分 DirectShow 功能。这个旧驱动程序来自 2006 年,在 Windows 8 上运行得非常好。我假设它是操作系统中内置的驱动程序,是旧 Windows 操作系统的遗留物。
以下是工作驱动程序的屏幕截图,供其他希望在 Windows 8 中为 LifeCam Studio 使用更多视频格式的人提供。
LifeCam Studio - Windows 8 - 64 位 - 原始驱动程序
关于webcam - DirectShow - Microsoft LifeCam Studio - RBG24 格式丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18025080/