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

Posted

技术标签:

【中文标题】如何在 C++ 中读取来自网络摄像头的输入?【英文标题】:How to read input from a webcam in C++? 【发布时间】:2010-10-07 20:51:43 【问题描述】:

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

我说的是 *nix 环境中的 C++。

提前致谢。

【问题讨论】:

也许你应该给出一些关于背景的精确度,例如对于哪个操作系统等等...... 对,我添加了一个细节。 【参考方案1】:

对于 Linux,V4L。 AFAIR,BSD 使用相同的代码库。其他的我就不知道了……

【讨论】:

【参考方案2】:

在 Linux 中,使用 Video4Linux 支持网络摄像头。看看userspace API 和Video4Linux introduction。

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

这里的主要内容是您需要了解网络摄像头使用什么视频格式以及如何处理它。 Silverlight 或 DirectX 会有所帮助,因为它们可以直接侦听特定端口,但您没有提及您使用的是哪个操作系统。

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

【讨论】:

他做到了 -> 我说的是 *nix 环境中的 C++。

以上是关于如何在 C++ 中读取来自网络摄像头的输入?的主要内容,如果未能解决你的问题,请参考以下文章

来自带有 Opencv C 程序的网络摄像头的灰色图像,但 C++ 程序完美运行

如何在 OSX 上的单独进程中读取网络摄像头?

如何在Matlab中同时使用多个USB网络摄像头?

C# 如何采集 视频和音频 如何调用摄像头获取图片

如何opencv读取摄像头并保存每一帧图像?

如何opencv读取摄像头并保存每一帧图像