【问题标题】:C# Microsoft LifeCam HD mjpeg captureC# Microsoft LifeCam 高清 mjpeg 捕获
【发布时间】:2010-10-01 21:32:43
【问题描述】:

我有一个 Microsoft LifeCam HD-5000 网络摄像头。根据 AMCap 的说法,相机以 30fps 和 720p 输出 MJPEG 流。我想在一个小型应用程序中捕获每个 JPEG 帧,而不进行任何预览或解压缩/转码,以尽可能降低 CPU 使用率。

我是一名 C# 开发人员,但我是 DirectShow 的新手。有没有一种简单的方法可以在 C#/.NET 中逐帧捕获 MJPEG 流作为其从相机的输出而无需解压缩?

【问题讨论】:

    标签: c# webcam capture mjpeg


    【解决方案1】:

    首先,您可能不需要使用 DirectShow 来访问您的相机。查看OpenCV 项目,该项目在opencvdotnet 提供.net 绑定。​​

    如果您想采用 DirectShow 路线,那么您将需要 .NET 绑定,该绑定可在 directshownet 项目中获得。我相信您最好的选择是创建一个过滤器图,其中包含您的网络摄像头作为源过滤器,以及一个样本采集器作为您的目标过滤器。样本采集器的文档位于 MSDN。这将使您能够访问原始数据。您还可以请求特定的数据格式并使用 DirectShow 智能连接使用正确的转换过滤器填充过滤器图表。

    话虽如此,我绝对推荐 OpenCV 而不是 DirectShow。 DirectShow 是非常通用的,并且可能比您需要它做的更多。 OpenCV 可用于快速访问您的相机。或许可以查看这个 stackoverflow 问题 Webcam Usage in C# 了解更多信息和答案。

    【讨论】:

      【解决方案2】:

      使用 DirectShowNet,我永远无法在任何地方访问单个帧并将其显示为位图。在每个项目中,我只看到转换器,直接显示到屏幕或流媒体。如何将流捕获为单个位图帧?

      【讨论】:

        【解决方案3】:

        在 Directshow.net 下载包中,他们有示例代码,在 Capture 中有一个 DxSnap 项目,它通过 directshow.net 连接到网络摄像头并从流中捕捉图片。您可以查看它并将其用作起点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-06-13
          • 2012-11-09
          • 2012-10-05
          • 2013-08-04
          • 2012-01-29
          • 2012-01-17
          • 1970-01-01
          相关资源
          最近更新 更多