WebRTC 视频会议应用——星型拓扑:如何开始?

WebRTC video conferencing app - star topology: how to get started?

我正在开发一个使用 WebRTC 的教育视频会议应用程序。它需要在星型拓扑中完成,因为它最多连接 20 个参与者。

从概念上讲很容易理解,但我不知道如何开始,因为我没有任何例子。

所有客户端将使用 WebRTC 连接到服务器,服务器将以特定布局混合视频流并将其发送回所有客户端。这是我的 questions/difficulties:

非常感谢, 卡洛斯

我对你各种疑惑的两分钱:

  • 就我个人而言,我更喜欢 NodeJS,但据我所知,除了在对等/媒体服务器之间传递消息外,应用服务器在 WebRTC 通信中并没有发挥太大作用,因此请采用一种技术你觉得舒服。

  • 也就是说,例如,您可以查看 Java 中的 kurento's Tutorials in both Java and Node.js, Licode example(using NodeJS) and Jitsi Meet

  • 是的,我认为使用现有的 MCU 是个好主意,更好的是 SFU,不同之处在于 SFU 只是转发流而不是混合它们,混合流是一个昂贵的过程,因此 MCU 需要具有高处理能力力量。 SFU比较轻,只要给服务器一个好的带宽就可以了。

  • 关于最后两点,没有太多想法,取决于你的用例,什么是流的视频分辨率,有多少人,你需要运行一些测试和衡量。

    联播是另一个有趣的想法,不幸的是我认为它仍在开发中。

我们在 WebRTC 上构建基于 NodeJS 的解决方案。使用这项技术是一个大问题——每个人都在向每个人发送视频流。如果你有 20 个参与者,那么每台计算机发送和接收视频 19 个流。

我们为每个房间设置了限制 "up to 4 participants",并且效果很好。

所以在我看来,如果您有足够的时间 - 您可以混合使用两种技术(最多 4-5 个用户)WebRTC 以节省服务器时间,并为更大的会议使用不同的技术。