我需要构建一个 Web 应用程序,使用 WebRTC 获取网络摄像头视频流和麦克风音频流,并立即将其转换到服务器以进一步广播到多个客户端。该应用程序必须以全双工方式实时进行。我的意思是这将是一种实时视频聊天。这将是某种教育应用程序。
所以问题是:现在可能吗?我应该使用什么技术?
我应该在后端使用带有 WebSocket 和 Node.js 的 WebRTC 吗?或者我可以使用 php 而不是 node 吗?我可以为此使用 Socket.io 吗?还有其他方法可以实现这一目标吗?可能是闪光灯?
WebRTC 中的 PeerConnection API 不需要后端服务器来进行对等点之间的一个或多个连接。
您唯一需要后端服务器的是充当首先在对等点之间建立连接的中介。为此,您可以使用 WebSocket API、Ajax 或实现此目的所需的任何其他方式。另外,是的,您可以使用 PHP 为 WebSocket 编写服务器端(或者您想要用来建立对等连接的任何方法)。这完全取决于您。
目前,只有 Chrome 和 Firefox 支持足够的 WebRTC API,使视频聊天成为可能。不过很快,Opera 可能会加入其中,但还没有人确定 WebRTC 是否会添加到 IE11 中,Apple 似乎也无意在短期内将 WebRTC 添加到 Safari(因为他们有自己的专有技术那个;听起来很熟悉?!)。
无论如何,WebRTC 是您最好的选择。作为补充说明,我认为不可能使用 JS 将视频和音频发送到服务器,然后让服务器将该数据转发给其他对等方。相反,您需要使用 WebRTC 建立点对点连接,然后从那里开始。
编辑:如果您使用 TURN 服务器,您可以通过服务器重新路由您的音频和视频数据,但这实际上是最不理想的情况,您仍然只能这样做使用 WebRTC API。