与NodeJS的音频和视频会议

时间:2014-08-30 13:48:39

标签: html5 node.js sockets video-streaming webrtc

我想构建一个Web应用程序,让两个对等体使用带有HTML5的视频和音频流以及没有插件来看到和听到对方(除了IE,我假装使用getUserMediajs来使用闪回后备)。

我还想使用NodeJS传输数据,但我不知道从哪里开始。在一个例子中:

Peer A< --->节点JS< --->同行B

我对此 Peer 2 Server 2 Peer 方法感兴趣,而不是像{{3}那样 Peer 2 Peer 解决方案因为:

1)我认为所有浏览器都会更兼容。 如果情况不完全正确,请告诉我

2)对于某些情况,PeerJS(我对不感兴趣)依赖于黑魔法STUN-TURN-ICE信令。我在某处看到,只有70%的连接适合这种传输,我不能承受30%的损失。再次让我知道这是不是完全正确

我已经玩过PeerJS并了解getUserMedia()的概念以获取用户的网络摄像头,但不知道如何将其与socket.io相关联并将其传输到另一个客户。

2 个答案:

答案 0 :(得分:2)

  1. 浏览器兼容性与添加服务器端组件无关。您可能是p2p或p2s2p,如果您发送的内容未被接收浏览器识别,则无法正常工作。

  2. 对于webrtc来说,ICE是强制,你不能没有,期间。默认情况下,您只能连接到同一网络中的计算机(候选主机)。如果您提供STUN服务器,您将能够将70%的案例连接在一起,更不用说在企业环境中。 http://webrtcstats.com/webrtc-revolution-in-progress/拥有一些供应商的最新统计数据。您可以看到,对于社交网站,截至2014年6月,92%的呼叫可以使用简单的STUN通过防火墙和NAT工作。剩下的被叫需要通过TURN服务器进行中继。你有很多免费的STUN服务器提供商,这是你应该使用的最低限度。

  3. 用于桌面IE和Safari的webRTC。

  4. 虽然Flash回调很有意思(阅读,简单),但他们暂停了两个问题:

    • 它们不会生成与对等连接或HTML5兼容的视频流。与对等连接不兼容,您无法发送图像或视频,只能在本地使用它。与HTML5不兼容意味着您无法在元素中使用生成的图像和视频,并且您无法以简单的方式将其呈现在Flash插件元素之外。在您指向的垫片的情况下,他们将每个单独的帧从Flash插件复制到HTML,并且他们在阅读中提到,这在计算上非常广泛,无法用于现场视频。
    • flash使用不同的协议(RTMP,RTMFP,..)和webrtc中的编解码器,它们不能互操作。您需要单独维护或者使用复杂的双重用途基础设施来处理它。例如,OpenClove是一家提供此类双重目的基础架构的供应商。

    另一个解决方案是在Desktop IE和Safari上安装webRTC插件(不是flash),它实现了“纯粹的”webRTC。在这种情况下,您可以直接与chrome,firefox,opera以及任何其他实现webRTC 1.0的浏览器进行互操作

    我们建议免费(免费)和所有(不是供应商特定的)here

    这样的插件

答案 1 :(得分:0)

无论您做什么,都需要在浏览器上提供WebRTC支持("没有插件")。所以," 它将更兼容所有浏览器"是一个有争议的问题,因为browser support