WebRTC 视频会议应用——星型拓扑:如何开始?
WebRTC video conferencing app - star topology: how to get started?
我正在开发一个使用 WebRTC 的教育视频会议应用程序。它需要在星型拓扑中完成,因为它最多连接 20 个参与者。
从概念上讲很容易理解,但我不知道如何开始,因为我没有任何例子。
所有客户端将使用 WebRTC 连接到服务器,服务器将以特定布局混合视频流并将其发送回所有客户端。这是我的 questions/difficulties:
服务器部分如何实现?什么是最好的技术(例如 NodeJS)?有像这样的星形拓扑应用的简单示例吗?
我们如何开始编写MCU代码?有例子吗?还是像Licode/Lynckia?
这样定制一个开源MCU更容易些
我如何估计我们将用作 MCU 服务器的正确 AWS EC2 实例类型?
如何估算会议1小时内传输的数据传输成本(大小,GB/TBs)?
非常感谢,
卡洛斯
我对你各种疑惑的两分钱:
就我个人而言,我更喜欢 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 以节省服务器时间,并为更大的会议使用不同的技术。
我正在开发一个使用 WebRTC 的教育视频会议应用程序。它需要在星型拓扑中完成,因为它最多连接 20 个参与者。
从概念上讲很容易理解,但我不知道如何开始,因为我没有任何例子。
所有客户端将使用 WebRTC 连接到服务器,服务器将以特定布局混合视频流并将其发送回所有客户端。这是我的 questions/difficulties:
服务器部分如何实现?什么是最好的技术(例如 NodeJS)?有像这样的星形拓扑应用的简单示例吗?
我们如何开始编写MCU代码?有例子吗?还是像Licode/Lynckia?
这样定制一个开源MCU更容易些
我如何估计我们将用作 MCU 服务器的正确 AWS EC2 实例类型?
如何估算会议1小时内传输的数据传输成本(大小,GB/TBs)?
非常感谢, 卡洛斯
我对你各种疑惑的两分钱:
就我个人而言,我更喜欢 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 以节省服务器时间,并为更大的会议使用不同的技术。