gpt4 book ai didi

javascript - WebRTC 到 Node.JS 服务器并作为 RTP 传输

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:25 27 4
gpt4 key购买 nike

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

  1. 获取流(让我们忽略这一点)
  2. 通过 WebSocket 将流发送到 Node.JS(应该不会那么难,只要可能,因为我不确定)
  3. 通过 Node.JS 中的 WebSocket 接收流
  4. 转换流
  5. 将其作为 XBMC/Kodi 可接受的内容发送(例如 RTP)

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

最佳答案

尽管人们都说 WebRTC 是点对点的,但还有一些鲜为人知的事实。由于互联网架构的不一致,尤其是对称 NAT(网络地址转换器)的不一致,点对点并不总是可行,这通常是移动网络和一些“行为不良”网络的情况.

For most other networks, with WebRTC, you do not need to send data through your server, as it will connect peer to peer by using STUN protocol to know public socket details and hole punching to actually transmit data. You need the server to setup the signalling part as it is not a part of WebRTC. For signalling, you may use protocols like SIP, websockets etc.

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

现在,让我纠正一下您观点中的一些错误假设:

1、按照您所说的处理即可。

2. 这一步将由TURN服务器完成。在内部,WebRTC 不使用 websockets。它在应用层使用SRTP(RTP over SSL)和TCP或UDP(取决于防火墙穿越和可靠性要求)。因此,WebRTC 无法实现 websocket。这是一种完全不同的方法。

3. 同第2点。

4. 通常不进行或不建议进行即时转换(转换中的滞后将消除实时功能)。任何此类转换都应在步骤 1 中完成。

Before the session is initiated, the SDP (session description protocol) relays the codecs for audio and video to both clients in the signalling phase.

5. 再次需要注意的是, session 初始化后,无论是 p2p 还是通过 TURN 服务器,数据都应该不间断地流向两个客户端。这是WebRTC的精髓。

If you want something else, try websockets. It is doesn't need anything more than websocket support at the client and server side. It uses all the architecture of TCP-IP-HTTP protocol stack except that it replaces HTTP with websockets at the application layer with an upgrade request to the server. This allows bidirectional flow of data from server and clients and you are more free to do computations on the data.


有一种可能的情况是,您可以在客户端之间启动 WebRTC session 之前使用 Websockets 进行信号发送。

附注由于声誉较差,我不能发布超过 2 个链接。请使用维基百科来引用您不清楚的术语。

关于javascript - WebRTC 到 Node.JS 服务器并作为 RTP 传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27678315/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com