C#Microsoft LifeCam HD mjpeg捕获
我有一个Microsoft LifeCam HD-5000网络摄像头。 根据AMCap的说法,相机在720p下输出30fps的MJPEG流。 我想在小型应用程序中捕获每个JPEG帧,而不进行任何预览或解压缩/转码,以最大限度地减少CPU利用率。
我是C#开发人员,但我是DirectShow的新手。 有没有一种简单的方法来捕捉MJPEG流的框架作为其在C#/。NET相机的输出而不解压缩?
首先,你可能不需要使用DirectShow来访问你的相机。 查看OpenCV项目,它具有opencvdotnet上提供的.net绑定。
如果你想要使用DirectShow路由,那么你需要在directshownet项目中提供的.NET绑定。 我相信你最好的选择是创建一个包含你的网络摄像头作为源过滤器的过滤器图形,以及一个样本采集卡作为你的目标过滤器。 示例采集器的文档位于MSDN上。 这会让你访问原始数据。 您还可以请求特定的数据格式,并使用DirectShow智能连接来使用正确的转换过滤器填充过滤器图表。
这就是说,我绝对推荐使用DirectShow的OpenCV。 DirectShow是非常普遍的用途,并且可能比您需要它做得更多。 OpenCV可用于快速访问您的相机。 也许可以在C#中查看这个stackoverflow问题Webcam Usage以获取更多信息和答案。
使用DirectShowNet,我永远无法访问单个帧并将其显示为任何位置的位图。 在每个项目中,我只看到转换器,直接显示屏幕或流媒体。 如何捕获流作为单个位图帧?
在Directshow.net下载包中,他们有示例代码,在Capture中有一个项目DxSnap,它通过directshow.net连接到网络摄像头并捕捉流中的图片。 您可以查看它并将其用作起始位置。
链接地址: http://www.djcxy.com/p/80987.html