4

我正在尝试为数千个并发呼叫扩展 kurento 媒体服务器。

我打算使用 OpenVidu Pro 进行缩放。

我还保留了另一种方法来开发自己的应用服务器和管理 kms 节点。

我担心的是与 kms 节点具有相同硬件容量的 ant-media-server 支持比 kms 更多的并发调用。

以上信息来源

如果上述信息属实,kms 做了哪些额外工作以使用更多硬件资源?

可以做些什么来优化公里数。

如果可能,请提供一些启示。

4

2 回答 2

7

@Maximillian 提供错误信息。比较苹果和橙子是荒谬的。

我猜主要问题是混淆了流协议。

对于低延迟,您应该使用 webrtc 并且 ant media 和 kurento 都支持这一点。正如@Maximillian 所说,您应该决定,您是否需要低延迟和大量观众或延迟无关紧要?场景是一对多还是多对多?

在此处输入图像描述

8-10 秒的延迟在 HLS 中而不是在 webrtc 中,也不是 ant-media 或其他 Rtmp Hls 服务器故障,而是 HLS 的实现/设计。(不是指 LL HLS)

在 Hls 中,您至少需要 3 个 ts 包,并且应该至少为 2 秒(默认为 10 秒),这就是为什么您会看到延迟为 6-30 秒的 Hls 流。

在您的问题中,您指出 webrtc 的性能/资源使用情况,而 ant media 比 kurento 更好地使用系统资源。让我解释一下为什么?

Kurento 是一款出色的媒体服务器,旨在进行额外的操作,例如过滤、图像渲染、opencv 实现、Rtp 端点、Rtsp 端点等。然而,这种额外的功能实现会导致 CPU 使用率很高,即使你从未激活它。自 2015 年以来,kurento 的性能越来越好。不幸的是,不足以吸引大量观众。例如:在 kurento 中,当你有 4 核 E5 时,你只能处理 80 个并发 EndPoint。如果您的场景是 4-5 个活跃的流发布者和 1000 个并发观众在同一个房间,您最好挖掘硬币而不是处理会议:) 您将需要大量核心。

请注意,在 kurento 中,您的私人专用/虚拟服务器也没有配置或工具来自动扩展。

您需要开发自定义 docker 管理器和流重新发布器/重新流化器来分发您的流。相信我会很痛苦。@2016 当时在亚马逊市场 ElasticRtc 上有一个项目,在亚马逊云上管理集群/扩展 Kurento。然而,在 twillio 收购 kurento 之后,它就停止了。

蚁媒webrtc的产品真的比其他sfu的好用。您可以在此处查看性能比较 Ant Media、Jitsi 和 Janus 在移动应用程序中哪个最适合启动实时语音流?

如您所见,开源/付费 sfu 有很多选择,例如 mediasoup、medooze、janus、flashphoner、wowza 等,我通常更喜欢 ant media。

  • 易于设置
  • 易于集成 api(在 kurento 中,媒体管道和端点管理也很痛苦)
  • 比其他付费媒体引擎(wowza、flashphoner)便宜
  • 易于准备集群
  • 支持 Rtmp 摄取、Hls & webrtc 播放
  • 支持 Webrtc 摄取、Hls 和 webrtc 播放
  • 基于 Api 的单独开始/停止录制流
  • 支持 webrtc 的联播和 hls 的 ABR
  • 具有相同规格的服务器
    • Kurento 250 端点
    • Wowza 650-700 端点
    • Janus & mediasoup 500-750 端点 - Ant media 1400 端点
于 2020-06-30T17:45:11.627 回答
2

您使用的来源是一对多,通常情况下,几秒钟的延迟不是问题,因为一个正在说话的人会流向许多只是在听的人——比如电视节目、facebook住等

Kurento 更专注(但不限于)参与者之间的直接通信,您的延迟小于 1 秒(在良好的网络中)并且每个人都可以与每个人进行通信,对我来说听起来就是您需要的。

查看蚂蚁媒体主页可以看到免费版的延迟在8-10s之间。如果你想拥有更少,它不再是免费的。但是仍然没有直接的交流,它是许多听众的 1 个流媒体(免责声明:我从未使用过付费版本,但对我来说似乎是这样)。

我按照你提到的方式做到了,拥有多个 kms(kurento 媒体服务器)实例并通过我自己的应用程序(包括)管理它们。负载均衡器和自动缩放,但我不后悔这个决定。我希望这给它带来了更多的光明:-)

于 2020-06-29T22:52:02.517 回答