0

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

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

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

  • 如何实现服务器部分?什么是最好的技术(例如 NodeJS)?有没有像这样的星形拓扑应用程序的简单示例?

  • 我们如何开始编写 MCU 代码?有例子吗?还是更容易定制像 Licode/Lynckia 这样的开源 MCU?

  • 如何估计我们将用作 MCU 服务器的正确 AWS EC2 实例类型?

  • 如何估算会议 1 小时内传输的数据传输成本(大小,以 GB/TB 为单位)?

非常感谢,卡洛斯

4

2 回答 2

5

我对您的各种疑问的两分钱:

  • 就我个人而言,我更喜欢 NodeJS,但据我所见,应用程序服务器在 WebRTC 通信中除了在对等/媒体服务器之间传递消息之外没有太大作用,因此请使用您熟悉的技术。

  • 也就是说,例如,您可以查看kurento 的Java 和 Node.js 教程、Licode示例(使用 NodeJS)和 Java 中的 Jitsi Meet

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

  • 关于最后两点,没有太多想法,取决于您的用例,流的视频分辨率是多少,有多少人,您需要运行一些测试并进行评估。

    simulcast 是另一个有趣的想法,不幸的是我相信它仍在开发中。

于 2015-12-15T01:08:19.460 回答
-1

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

我们为每个房间设置了“最多 4 名参与者”的限制,并且效果很好。

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

于 2016-01-17T08:56:48.307 回答