C#Microsoft LifeCam HD mjpeg捕获

Ira*_*eek 5 c# webcam mjpeg capture

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

我是C#开发人员,但我是DirectShow的新手.是否有一种简单的方法可以逐帧捕获MJPEG流作为C#/ .NET中摄像机的输出而不解压缩?

Gia*_*awa 1

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

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

话虽这么说,我绝对推荐 OpenCV 而不是 DirectShow。DirectShow 的用途非常广泛,并且可能比您需要的更多。OpenCV 可用于快速访问您的相机。或许可以查看这个 stackoverflow 问题C# 中的 Webcam 使用,以获取更多信息和答案。