什么是WebRTC联播?
由于WebRTC的开源性质,许多流媒体解决方案已经找到了利用其功能的方法。毕竟,谁不希望为更广泛的广播点亮快速流?但是,您添加到流中的观看者越多,某人就越有可能没有足够的带宽来跟上。这就是WebRTC联播的用武之地。
WebRTC联播准备备用流以满足一系列带宽,并有助于确保每个人都获得稳定的流。它通过预测带宽需求并根据这些需求编码多个备用流以进行分发来实现这一点。然而,在我们深入探讨这个过程之前,让我们花点时间更好地定义WebRTC是什么。
WebRTC 联播与多流
广义上的联播,也称为多流,是一种完全不同的动物。多流是指同时流式传输到各种平台(包括社交媒体网站)的行为。这一切都与播放位置有关,而不是与编码媒体以在一定带宽范围内播放有关。也就是说,最终目标是相似的:覆盖更多人。
WebRTC 联播与自适应比特率流
我们一直在谈论比特率,这可能会让你的耳朵振作起来。毕竟,自适应比特率 (ABR) 流媒体是实时流媒体中的一个热门话题,这是有充分理由的。但是,值得注意的是,虽然术语 ABR 可能会调用更广泛的活动,但它指的是涉及编码梯形图和对可用带宽的动态调整的特定过程。这与WebRTC联播中可以预期的更基本的自适应比特率活动不同。
WebRTC联播涉及在客户端编码一小部分比特率选项,然后根据单个带宽可用性选择这些选项进行分发。每个查看器只选择一个比特率,一旦选择,它就不会像 ABR 的权限那样随着带宽波动而变化。 另一方面,ABR 准备多个比特率选项,最终用户设备根据需要从中进行选择。然后,设备根据需要在中游之间切换,以在不牺牲可靠性的情况下最大限度地提高质量。
通过这种方式,ABR能够更好地处理单个观众的波动带宽,而WebRTC联播则停留在最初的估计中。但是,联播通常通过生成备用流并将其发送到服务器来减轻服务器的压力。服务器需要做的就是将它们转发到最终用户设备上。无论如何,这两种技术是紧密相连的。
如何在WebRTC中联播?
使用WebRTC进行联播比你想象的要简单得多。这一切都归结为拥有选择性转发单元 (SFU) 媒体服务器。
什么是SFU?
SFU 也称为选择性转发中间盒 ,从数据源接收多个数据流,并将这些数据流重新路由到相应的播放位置。换句话说,它不会对数据进行转码或托管,它只是以一种开箱即用的WebRTC无法做到的方式对其进行分类。
WebRTC联播工作流程
让我们从头到尾看一下WebRTC联播,然后深入探讨它与点对点WebRTC函数的区别。
- 发布服务器选取目标输出分辨率。
- 联播使用目标输出分辨率,根据设定的算法确定三种不同的比特率选项。
- 联播对三个流进行编码,每个比特率选项一个。
- 每个备用流都发送到 SFU 服务器进行分类。如果发布者和 SFU 之间的带宽太低而无法发送所有三个流,则将以较低的比特率重新编码它们。
- SFU 服务器根据可用带宽向每个最终用户设备发送单个备用流。
- 用户体验流可靠性和质量的最佳组合。
WebRTC 联播与 WebRTC 带宽估计
很容易将这些以不同比特率编码多个流的尝试与所谓的WebRTC带宽估计混淆。在点对点连接中,WebRTC在开始流之前采用带宽估计。WebRTC确定最终用户设备必须使用的带宽量,并相应地准备数据。最终目标是在不牺牲质量的情况下避免滞后。
但是,由于WebRTC联播使用SFU将备用流分类到各种最终用户设备,因此发布者无法再“看到”最终用户设备必须使用多少带宽。相反,它必须根据目标输出分辨率以及它与 SFU 之间的可用带宽量来估算这些估计值。SFU 在收到备用流后从那里获取它。
WebRTC 联播与 WebRTC 比特率控制
在研究中可能遇到的另一个术语是WebRTC比特率控制,可以指从生成用于联播的备用流到尝试在对等连接中适应带宽估计的任何内容。
在后者中,WebRTC可以对可用的比特率进行一些控制。WebRTC将根据其带宽估计选择它认为最好的比特率选项。在WebRTC联播的情况下,准备了三个比特率选项并发送到SFU进行分类。在这两种情况下,为给定最终用户设备选择的比特率都是流持续时间内的比特率。
WebRTC联播的好处
- 通过适应他们的带宽限制来扩大您的受众。
- 通过 SFU 服务器可以将这些选项分发到相应的最终用户设备,从而保持视频质量。
- 通过满足不同的带宽需求来提高可靠性。
- 享受超低延迟,同时实现上述所有目标。