基于 WebRTC 的事件视频广播,无需服务器即可连接 1000 人





5.00/5 (1投票)
基于 WebRTC 的事件视频广播,无需服务器即可连接 1000 人
我一直在思考一个视频广播系统,不需要任何媒体服务器。
我的想法是:A 捕获实时视频/音频事件。当 B 进入某个聊天室并与 A 连接时,A 将其转发给 B,当 C 进入同一个房间(或同一页面)时,C 连接到最新的用户 B,B 将从 A 接收到的视频转发给 C... 依此类推 C->D->E->F... 创建一个观众链,每个观众最多需要维持 2 个通信通道。我认为 RCTPeerConnection
接收媒体流,所以如果 B 从 A 接收到的远程流,在 B 尝试连接 C 时可以使用,而不是本地流,那么应该是可行的。
我认为我已经成功地将 A 的视频转发给 C 了。由于我只用一台 PC(笔记本电脑)和两个不同的摄像头进行测试,我不能 100% 确定,但我认为我做到了,看起来 RTCPeerconnection
能够接收远程流。顺便说一下,我使用的是 easyrtc
库,因为我找不到任何可用的简单代码进行测试。所以基本思路是,A 捕获事件视频。B 连接到 A,B 保存从 A 接收到的远程流引用;C 连接到 B,B 不传递本地媒体流,而是将远程媒体流传递给 C;C 会保存该远程媒体流;当 D 连接到 C 时,C 会将从 B 接收到的远程媒体流(实际上最初是从 A 接收到的)传递给 D,依此类推,流程继续... 也就是说,A 的媒体流像波一样通过 B、C、D、E... 传递。请注意,连接流程应该如下所示:A<-->B<-->C<-->D<-->E... 每个节点只有两个连接,与前一个节点和下一个节点。但是,长话短说 - 你可以访问媒体流并将其传递给另一个远程连接,我只需要一个专家提供一个可用的基于原始 JS 的 WebRTC 代码,其中 A 连接到 B,反之亦然... 我会尝试编写 C 连接到 B 和 D 连接到 C 的代码进行适当的测试。