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

时间:2009-02-16 11:23:58

标签: c++ video stream webcam

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

我在* nix环境中谈论C ++。

提前致谢。

4 个答案:

答案 0 :(得分:9)

对于linux,V4L。 AFAIR,BSD使用相同的代码库。我不知道其他人......

答案 1 :(得分:7)

在Linux中,使用Video4Linux支持网络摄像头。请查看userspace APIVideo4Linux introduction

答案 2 :(得分:1)

您可能想检查网络摄像头是否与TWAIN兼容,并使用他们的api来做到这一点。

答案 3 :(得分:0)

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

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

如果网络摄像头不流式传输,它至少应具有将视频保存到文件的功能。在这种情况下,还要找出视频格式,这应该可以帮助您决定使用哪种API。