WebRTC视频会议应用 - 星型拓扑:如何入门?

时间:2015-12-14 16:18:08

标签: node.js amazon-ec2 webrtc video-conferencing licode

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

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

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

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

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

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

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

提前多多感谢, 卡洛斯

2 个答案:

答案 0 :(得分:4)

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

  • 就个人而言,我更喜欢NodeJS,但从我所看到的情况来看,除了在对等体/媒体服务器之间传递消息之外,应用服务器在WebRTC通信中不起很大作用,因此请使用您熟悉的技术。
  • 那就是说,例如,你可以在Java和Node.js中找到kurento's Tutorials,在Java中使用节点example(使用NodeJS)和Jitsi Meet
  • 是的,我认为使用现有的MCU是个好主意,更好的是SFU,差异是SFU只是转发流而不混合它们,混合流是一个昂贵的过程因此MCU需要具有高处理能力。 SFU比较轻,您只需要为服务器提供良好的带宽。
  • 关于最后两点,不是很多想法,取决于你的用例,流的视频分辨率,有多少人,你需要运行一些测试并测试它。

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

答案 1 :(得分:-1)

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

我们创建了限制"最多4个参与者"每个房间,它工作正常。

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