通过服务器的 WebRTC 视频流
WebRTC video streaming through a server
我想要运行来自客户端的流然后从服务器加入到客户端
.如何通过服务器将视频流式传输到其他查看器?这可能吗?
我想尝试为您指明正确的方向。
首先,让我们进一步了解 WebRTC 的工作原理。
在 WebRTC 中,您有一个称为网桥的 websocket,网桥的作用是帮助代理两个或多个对等点之间的连接。
一般来说,网桥使用 STUN/TURN 服务器和 SDP 协议来帮助建立对等点之间的连接。
STUN 服务器用于通过 NAT 打孔建立 p2p udp 连接。
如果 STUN 打不通(即有防火墙),则使用 TURN 服务器作为集线器和辐条(即通过 TURN 服务器中继数据)。
完整的 WebRTC 堆栈包括 video/audio 使用 vp8/vp9/h264 编解码器进行流式传输,数据使用 RTP 打包。
幸运的是,有一个 node-js 库几乎可以实现整个堆栈。
https://github.com/js-platform/node-webrtc
该库实质上为您提供了一个 WebRTC 数据通道。
不支持 "Media Streams",因此我假设您需要自己构建 encoding/decoding 和 RTP 包装。
但是,这里有关于如何使用数据通道流式传输 audio/video 的讨论:
https://github.com/js-platform/node-webrtc/issues/156
现在,你的具体问题是如何从 "server" 进行流式传输?
WebRTC 通常是 p2p,但是您可以设置一个 "Server Peer" 并将其指定为仅具有源通道(即没有输入通道)。
此对等点随后成为 "server",所有其他对等点在连接时都可以查看其内容。
希望对您有所帮助。
干杯!
我想要运行来自客户端的流然后从服务器加入到客户端 .如何通过服务器将视频流式传输到其他查看器?这可能吗?
我想尝试为您指明正确的方向。
首先,让我们进一步了解 WebRTC 的工作原理。
在 WebRTC 中,您有一个称为网桥的 websocket,网桥的作用是帮助代理两个或多个对等点之间的连接。
一般来说,网桥使用 STUN/TURN 服务器和 SDP 协议来帮助建立对等点之间的连接。
STUN 服务器用于通过 NAT 打孔建立 p2p udp 连接。
如果 STUN 打不通(即有防火墙),则使用 TURN 服务器作为集线器和辐条(即通过 TURN 服务器中继数据)。
完整的 WebRTC 堆栈包括 video/audio 使用 vp8/vp9/h264 编解码器进行流式传输,数据使用 RTP 打包。
幸运的是,有一个 node-js 库几乎可以实现整个堆栈。
https://github.com/js-platform/node-webrtc
该库实质上为您提供了一个 WebRTC 数据通道。 不支持 "Media Streams",因此我假设您需要自己构建 encoding/decoding 和 RTP 包装。
但是,这里有关于如何使用数据通道流式传输 audio/video 的讨论:
https://github.com/js-platform/node-webrtc/issues/156
现在,你的具体问题是如何从 "server" 进行流式传输?
WebRTC 通常是 p2p,但是您可以设置一个 "Server Peer" 并将其指定为仅具有源通道(即没有输入通道)。
此对等点随后成为 "server",所有其他对等点在连接时都可以查看其内容。
希望对您有所帮助。
干杯!