我有一个用 C 语言编写的应用程序,它通过网络摄像头捕获图像,对其进行一些处理,然后通过套接字将生成的图像发送到客户端应用程序,该应用程序也是用 C 语言编写的,位于另一台计算机上。我想做类似的事情,但使用网页作为客户端。有没有办法使用 php 或 javascript 来做到这一点?
3 回答
您显然可以使用接受捕获的图像然后通过 http 请求提供它们的中间服务器。(想想 flickr.com 或 photobucket.com)您不必用 PHP 编写该服务器的代码,您可以使用任何服务器端语言。
碰巧的是,现代标准实际上正在推动一种称为“Websockets”的东西:
http://en.wikipedia.org/wiki/WebSocket
但是,如果您只提供带有处理的单个图像,那么听起来使用 websocket 方法将是矫枉过正。(您说“视频”,但随后谈到发送“图像......”)
历史上,大多数人使用 Flash 客户端在 Web 上制作视频,这些客户端具有可用的套接字。
我的理解是您希望客户端使用浏览器获取结果。你不需要 PHP,简单的 HTML 就可以了。您可以在您的 c 程序(捕获图像的程序)中实现一个非常简单的 http 服务器,该服务器为文件请求提供服务。这是 C 中的示例。捕获的图像将保存在本地磁盘上,并根据要求提供。或者,一旦请求到达并提供给请求的客户端,它们就可以被捕获。当然,如果你需要获取频繁的图片,你也可以在客户端有一个java脚本来刷新。
目前没有办法完全使用 PHP 和 JavaScript 来做到这一点,因为 PHP 在服务器端运行(因此无法访问客户端的摄像头),并且大多数浏览器*目前不通过 JavaScript 公开网络摄像头。
不过,Flash 文件确实可以访问网络摄像头。Flash 也具有网络访问权限,因此将视频捕获和网络传输组件都写入其中可能是最有意义的。
*:奇怪的例外是 Opera。但这并没有真正广泛使用,不足以使其成为一个重要的例外。