使用HTML5 websockets实现基于web的实时video聊天

有谁知道如何使用HTML5 websockets在Web应用程序中实现IP语音/video?

如果我可以用PHP或者Python来实现这个function将会很好,因为我(不幸的是)现在还不知道其他的编程语言。

一个好的教程将做,以及已经build立的解决scheme,我不得不支付。

UPDATE1:
增加了video,因为它不仅与audio/ voip相关。

UPDATE2:
第一个HTML5video会议应用程序已经创build。 看我自己的答案

如果您只想使用HTML5,则需要使用浏览器实现HTML Media Capture草稿(可在此处获得 ),以便从麦克风访问原始数据。

一旦掌握了这些数据,就需要通过networking发送。 Websocket将是HTML5选项,与服务器的往返速度足够快(同时发送本地audio数据和接收远程audio数据)

既然你提到python,我会build议看一下websockets的扭曲实现 。

您可以让所有的客户端使用callerID在websocket服务器上“注册”,以便服务器知道在哪里查找给定的callerID。

那么你的服务器将需要一个“邀请”API,其中caller1“邀请”caller2。

一旦呼叫build立并且每个客户端开始发送其audio数据,服务器将能够将该audio数据发送给对方。

在收到audio数据后,浏览器需要在扬声器上播放这些audio数据,可能使用的是HTML5audio标签。

要做到这一点,你可能会被迫使用一个“技巧”:而不是让websocket服务器将原始audio数据转发给客户端,您可能需要模拟2个“无限”文件:

  1. caller1.wav:在caller1麦克风上捕获的声音
  2. caller2.wav:在caller2麦克风上捕获的声音

caller1浏览器会在call.src属性中添加caller2.wav(caller1会通过websocket被通知这个事件),并且希望如果python服务器将原始audio数据附加到caller2.wav中,它会开始播放。

这听起来像一个很酷的原型,你要破解!

祝你好运,

杰罗姆·瓦格纳

像爱立信似乎创build了第一个HTML5video会议应用程序。

他们使用的技术:

  • 实现了设备元素和Stream API(设备元素GUI目前用JavaScript / CSS编写)
  • 添加MediaStreamManager将Stream URL映射到媒体后端的相应pipe道
  • 增加了MediaStreamTransceiver来控制相关的媒体处理和传输
  • 增加了对WebSocket协议中二进制数据的支持

请参阅: labs.ericsson.com :


YouTube上的video: 超越HTML5:对话语音和video演示| 爱立信实验室

不幸的是,爱立信不想共享device_dialog.js (还)。

WebRTC可能是一个答案: http : //www.webrtc.org/running-the-demos (目前只有启用了MediaStream标志的Chrome Canary)

请参阅演示: https : //apprtc.appspot.com (请确保您使用正确的浏览器观看)和代码http://code.google.com/p/webrtc-samples/source/browse/trunk/apprtc/


我正在写的原因是…我买了非常便宜的Android平板电脑,无法安装Skype和Vtok,也没有美国之外的Google Voice。 我需要find基于HTML5的解决scheme,因为我可以运行Opera Mobile 12并获得http://html5demos.com/的正常工作;

@工作/得快点

查看javaScript getUserMedia (CanIUse) – API (W3)

webrtc现在是答案。

为node.js堆栈 – 你可以看看http://www.easyrtc.com/ 。 请注意,IE尚未build立对webrtc工作的API的支持。