首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从FireWire抓取视频流

从FireWire抓取视频流
EN

Stack Overflow用户
提问于 2011-10-22 20:16:24
回答 2查看 1.4K关注 0票数 0

我正在尝试通过FireWire将摄像机( Sony HVR-Z1E )的视频流式传输到我的计算机上。传入的图片/流应由期望CVMat格式(来自openCV )的某些函数进一步处理。嗯,我的问题是现在我不知道如何获取流。好吧,openCV 2.1提供了一些方法( cvCapturefromCam ),但无论我给他哪个参数,它总是从笔记本电脑的摄像头而不是火线上获取流。我听说我需要在DirectShow API中切换主摄像头(使用Windows SDK )。但实际上我也不知道该怎么做。那么有什么建议可以做到这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-23 00:46:55

请参阅我的相关答案here。OpenCV无法在本地捕获来自火线摄像头的视频。您需要使用CMU1394驱动程序或Sony驱动程序(如果有可用的软件开发工具包)来从该摄像头捕获视频,然后将其传递给OpenCV。

票数 0
EN

Stack Overflow用户

发布于 2011-10-23 19:05:56

几年前,我就用DirectShow做过类似的东西。主要的限制是,通过DShow获取的图像是标准PAL分辨率。高清图像抓取是不可能的(它是索尼最早的支持消费者的高清摄像机之一,现在不记得确切的型号了)。值得庆幸的是,这种方法不需要任何东西,只需要纯DirectShow,不需要额外的驱动程序等等。而且速度非常快。

一般来说,方法是这样的:

  • 构建媒体呈现图(当然,您必须将stage)
  • inserting中视频设备枚举到继承自ISampleGrabberCB的自定义类中。

它是如何工作的:

  • 它使用了来自ISampleGrabberCB的BufferCB()虚方法--你必须把它写在你的继承类中。
  • 在前面提到的方法中,你必须把数据留在全局结构中,而从主线程中--去处理它们。

我知道,这有点模糊的描述,但我希望你能找到你的信息(谷歌搜索"ISampleGrabberCB“应该是一个很好的起点,应该有很多示例代码)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7859442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档