使用 Directshow C# 如何在不崩溃的情况下从多个 windows 中的多个 USB 摄像头获取实时馈送

Using Directshow C# How top get live feed from multiple USB cameras in multiple windows without crashing

我正在使用 Directshow 在 C# 中开发一个项目,主要关注实时图像处理和打印。我已经编写了用于捕获图像并将其显示在输出 window 中的代码。该代码适用于 4 个摄像头 simultaneously.But 当我添加第 5 个摄像头时,第一个 4 个摄像头的实时馈送开始到 glitch.And 当我添加第 6 个摄像头时,所有摄像头的视频停止。对于我的项目我需要使用 16 个摄像头,其中 none 个摄像头的性能应该很低。

我试图通过一次制作所有图表然后将它们用于各自的相机来优化图表,但即便如此问题仍未解决。

我正在使用 this 项目作为参考。

实时摄像头馈送不应出现故障,因为有足够的内存和 CPU 它可以正常工作。

USB 带宽是同时连接多个 USB 摄像头的典型问题。也就是说,它不太可能是 CPU 或 RAM 问题。

  • Unable to display two cameras in DirectShow
  • 2 usb cameras not working with OpenCV
  • Implications of using many USB web cameras

我怀疑您是否可以一次使用 16 个(甚至分布在 USB 主机之间),并且在任何情况下,如果有 16 个视频输入,您将被限制为低分辨率捕获或者相反,捕获在硬件上编码的视频,即使像 JPEG 这样的光编码(现在很多甚至大多数网络摄像头都提供 on-camera M-JPEG 编码)。