如何在C++中读取摄像头输入?

7

是否可以像从流对象中读取数据一样从通用网络摄像头中使用C++读取数据?是否有适用于所有网络摄像头的常见API或标准?

我在谈论*nix环境下的C++。

提前感谢。


也许你应该提供一些背景信息,例如针对哪个操作系统等等... - siukurnin
好的,我添加了一个细节。 - tunnuz
4个回答

9

对于Linux来说,使用V4L技术。据我所知,BSD也使用相同的代码库。至于其他操作系统,我不清楚...


7

1
你可能需要检查一下摄像头是否支持TWAIN并使用它们的API实现。

0

首先要确定网络摄像头是否可以流式传输视频?通常它们会将视频流传输到特定的端口。然后您可以在该端口上使用C++打开一个Socket并获取视频数据。大多数网络摄像头应该能够做到这一点。

主要问题在于您需要了解网络摄像头使用的视频格式以及如何处理它。Silverlight或DirectX将有所帮助,因为它们可以直接监听特定的端口,但是您没有提到您使用的操作系统。

如果网络摄像头不支持流式传输,则至少应具备将视频保存到文件的功能。在这种情况下,还需找出视频格式,这将有助于您决定使用哪个API。


我在谈论在*nix环境下的C++。 - Loïc Faure-Lacroix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接