从 C 应用程序到 php 的实时视频流


Live video stream from C application to php

我有一个用 C 编写的应用程序,它通过网络摄像头捕获图像,对其进行一些处理,然后通过套接字将生成的图像发送到另一台计算机中的客户端应用程序,也是用 C 编写的。我想做类似的事情,但使用网页作为客户端。有没有办法使用 php 或 javascript 来做到这一点?

显然,您可以使用接受捕获的图像的中间服务器,然后通过http请求将它们提供。 (flickr.com 或 photobucket.com 想) 您不必用PHP编写该服务器的代码,您可以使用任何服务器端语言。

碰巧的是,现代标准实际上正在推动一种称为"Websockets"的东西:

http://en.wikipedia.org/wiki/WebSocket

但是,如果您只提供具有处理功能的单个图像,那么听起来像是使用websocket方法有点矫枉过正。 (你说"视频",但随后谈论发送"图像...")

历史上,大多数人使用闪存客户端在网络上制作视频,这些客户端具有可用的套接字。

我的理解是您希望客户端使用浏览器获取结果。你不需要PHP,简单的HTML就可以了。您可以在 c 程序中实现一个非常简单的 http 服务器(捕获图像的服务器),用于处理文件请求。这是 C 语言中的一个示例,捕获的图像将保存在本地磁盘上,并根据要求提供。或者,可以在请求到达后捕获它们并将其提供给请求客户端。当然,如果需要获取频繁的图像,也可以在客户端使用java脚本进行刷新。

目前没有办法完全使用 PHP 和 JavaScript 来做到这一点,因为 PHP 在服务器端运行(因此无法访问客户端的摄像头),而且大多数浏览器*目前没有通过 JavaScript 公开网络摄像头。

不过,闪存文件确实可以访问网络摄像头。Flash 还具有网络访问权限,因此在其中同时写入视频捕获和网络传输组件可能是最有意义的。

*:奇怪的例外是歌剧。但这并没有真正被广泛使用到足以使其成为一个重要的例外。