2

我在 C# 中使用 DirectShowNet。我一直在开发一个应用程序来使用网络摄像头来显示视频、更改分辨率和拍照(无论是静止图钉还是来自捕获流)。我一直在 2 台不同的机器(Win 7 64 位和 Win 8 64 位)以及这些机器上的内部网络摄像头(它们是笔记本电脑)和其他 2 台网络摄像头 Logitech C920 和 Microsoft LifeCam Studio 上对其进行测试。

有一天,LifeCam Studio 在我的 Win 8 机器上停止工作。使用 GraphEditPlus,检查 Capture 引脚的 VideoFormats,我注意到神秘地不再列出 RGB24 格式。我编写的应用程序只使用 24 位颜色格式。仅列出 YUY2 16 位格式。如果我在我的 Win 7 机器上检查相同的网络摄像头,我会看到列出了 YUY2 和 RGB24 格式。以前,我的 Win 8 机器确实列出了这两种格式。

问题是,什么可能导致 DirectShow 更改 Capture 引脚的 VideoFormats 列表?到目前为止,我注意到更改驱动程序版本会对网络摄像头支持的引脚产生巨大影响,但我还没有看到它们像这样更改视频格式。据我所知,我还没有更新任何一台机器上网络摄像头的驱动程序。

这是两台机器的驱动程序版本。


LifeCam Studio - Windows 7 - 64 位

LifeCam Studio - Windows 7 - 64 位

LifeCam Studio - Windows 8 - 64 位

LifeCam Studio - Windows 8 - 64 位

4

1 回答 1

3

我想出了如何恢复格式。我进入设备管理器,找到了“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 位 - 原始驱动程序

在此处输入图像描述

于 2013-08-02T20:46:24.573 回答