如何在 Windows 7 中镜像 UVC 网络摄像头?

发布于 2024-09-30 12:41:24 字数 357 浏览 7 评论 0原文

我正在使用 DirectShow.NET 在 .NET 中开发一个应用程序。它同时捕获和预览流。网络摄像头是 Logitech Webcam 9000,但我仅限于在 Windows 7 上使用标准 UVC 驱动程序。

我想镜像流,当您拥有本机 Logitech 驱动程序和软件,但我不会。我尝试添加一个镜像图像的 DirectShow DMO 过滤器。这在预览屏幕上工作正常,但确实会减慢速度。当我将此应用于捕获流时,我的预览流速度减慢至每 5 秒约 1 帧的不可用帧速率。

因此,我希望有一种方法可以在源本身的较低级别上镜像视频源,也许是 Windows 中的设置、一些黑客攻击,甚至是第三方工具。有没有办法在 Windows 7 上使用 UVC 相机来做到这一点?

I'm developing an application in .NET using DirectShow.NET. It captures and previews a stream simultaneously. The webcam is a Logitech Webcam 9000, but I'm restricted to using the standard UVC driver for it on Windows 7.

I want to mirror the stream, something that is normally quite easy to set when you have the advantage of native Logitech drivers and software, but I don't. I've attempted to add a DirectShow DMO filter that mirrors the image. This works ok on the preview screen but does give it some slow down. When I apply this to the capture stream, my preview stream slows to an unusable frame rate of about 1 frame every 5 seconds.

So I'm hoping there is a way to mirror the video feed at a much lower level at the feed itself, perhaps a setting in Windows, a bit of hacking or even a third party tool. Is there any way to do this with a UVC Camera on Windows 7?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

厌味 2024-10-07 12:41:24

我设法解决了我的问题,但没有通过 UVC 相机的任何驱动程序级别选项。

我使用 DirectShow.NET 将 NormalizedRect 应用到 IVMRMixerControl9,从而翻转左右坐标。与使用 DMO 实现相同效果相比,性能似乎没有那么糟糕。

NormalizedRect rect = new NormalizedRect();
rect.left = 1;
rect.right = 0;
rect.top = 0;
rect.bottom = 1;

mixer.SetOutputRect(0, ref rect);

I managed to solve my problem but not through any driver level option for UVC cameras.

I applied a NormalizedRect to the IVMRMixerControl9 using DirectShow.NET which flipped the left and right coordinates. The performance doesn't appear to be anywhere near as detrimental as using a DMO to achieve the same effect.

NormalizedRect rect = new NormalizedRect();
rect.left = 1;
rect.right = 0;
rect.top = 0;
rect.bottom = 1;

mixer.SetOutputRect(0, ref rect);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文