在 kurento 媒体服务器中混合流概念

Mixing streams concept in kurento media server

谁能解释一下在 Kurento 媒体服务器中混合的基本概念是什么? 正如 kurento 提供的内容中提到的,有一个术语混合。所以,我想知道 kurento 媒体服务器混合了什么。作为,

  1. 是否将一个用户生成的多流混合成一个流并将该流广播给其他接收用户?如果它这样做如何使用这个概念

  2. kurento是否能够通过与用户的一个PeerConnection对象接收多流,即在一个WebRtcEndPoint Kurento可以通过将这些流混合为一个流来接收或发送多流?


关于答案更新的编辑

所以,我可以通过 Hubport 使用混合概念。

现在,这个 HubPort 支持不同的 MediaTypes。就像,如果一个用户正在流式传输其屏幕共享,同时他也在流式传输其音频。那么,这个 composite 元素是否将两个流混合为一个并将一个流流式传输给所有其他用户?

混合的概念是指将多个媒体流合并为一个。通过会议室可以更好地理解这一点。在其他设置中,每个用户都会有一个流出去,另一个流进来给其他参与者(除了他自己)。这样一来,每个参与者就有 1 + (n -1) = n 个流。这导致总共有 n * n 个流,其中 n 是参与者的数量。

在媒体服务器中混合所有流可以节省带宽,例如,非常适合通过 3G 连接的移动设备等场景。混合器所做的是,它将所有流合并为一个流,因此每个用户发送一个流,并接收一个流,其中包含所有合并的参与者的媒体(除了他自己的)。因此,每个用户只需两个流即可节省大量带宽。

但是,这会对 CPU 消耗造成影响,因为有必要使视频适应新的分辨率,将它们结合起来...涉及一些处理。

另一方面,您所指的概念是 multicast,即通过一个 WebRTC 连接发送多个流的能力。这不会节省带宽,也不会将所有流合并为一个流,但可以帮助您减少部署中存在的端点数量。这在我们的路线图中,但无法告诉您什么时候。


编辑

混合可以通过 Composite 媒体元素在媒体服务器中实现。您可以查看此 other SO answer 以了解有关如何使用该媒体元素的更多信息。