WebRTC到Node.JS服务器和stream作为RTP

我想问一个实验性的问题。 所以,我有一个WebRTCstream,需要XBMC / Kodi的播放器。 我正在计划这一点,我认为最大的问题是转换和发送stream(请注意,这是没有任何原型代码)。 这是计划:

  1. 获取stream(让我们忽略这个)
  2. 通过WebSocket发送stream到Node.JS(不应该那么辛苦,只要这是可能的,因为我不知道)
  3. 通过Node.JS中的WebSockets接收stream
  4. 转换stream
  5. 把它作为XBMC / Kodi可以接受的东西(比如RTP)

最后2位是最难的,我不知道该怎么做。 有人可以帮我吗?

尽pipeWebRTC是点对点的,但有一些鲜为人知的事实。 由于互联网体系结构(最显着的是对称的NAT (networking地址转换器))的不一致性,对等并不总是可能的,这对于移动networking和一些“糟糕的行为”networking通常是这种情况。

对于大多数其他networking,使用WebRTC,您不需要通过服务器发送数据,因为它将通过使用STUN协议来连接对等端,以了解公共套接字细节和穿孔以实际传输数据。 您需要服务器设置信令部分,因为它不是WebRTC的一部分。 对于信号传输,您可以使用SIP,networking套接字等协议

话虽如此,作为p2p不可能的故障安全机制,您可能采取的方法是通过您的服务器路由stream量。 好事是WebRTC提供这种方法的支持是使用TURN服务器 。 ICE用于识别最佳情况(通过使用STUN或通过TURN服务器路由数据的可能性)。 需要注意的是,后者不是对等的,并且通过TURN服务器路由数据需要高带宽TURN服务器,导致高昂的成本。

现在让我来解释一些不正确的假设:

你可以按照你的说法来处理。

2.这一步将由TURN服务器完成。 在内部,WebRTC不使用Websocket。 它在应用层和TCP或UDP上使用SRTP(基于SSL的RTP)(取决于防火墙的穿越和可靠性要求)。 所以,WebRTC是不可能的。 这是完全不同的方法。

3.与第2点相同。

4.通常不会进行即时转换或推荐转换(转换滞后将带走实时特性)。 任何这样的转换应该在步骤1中完成。

在会话启动之前,SDP(会话描述协议)在信令阶段将用于audio和video的编解码器中继到两个客户端。

5.再一次要注意的是,在会话初始化之后,无论是p2p还是通过TURN服务器,数据都应该不间断地stream向两个客户端。 这是WebRTC的本质。

如果你想要别的东西,试试websockets。 在客户端和服务器端不需要websocket支持。 它使用TCP-IP-HTTP协议栈的所有体系结构,不同之处在于它使用服务器的升级请求将HTTPreplace为应用层上的websockets。 这允许来自服务器和客户端的双向数据stream,并且您可以更自由地对数据进行计算。

在客户端之间启动WebRTC会话之前,可能会使用Websocket进行信号传输。

PS由于较less的声誉,我不能发布超过2个链接。 请使用维基百科来参考不清楚的条款。