首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Facebook怎样为数百万观众提供可靠的直播服务?

Facebook直播业务简介

随着Facebook Live和Facebook Watch的增长,这些平台上分享的内容已经扩展到包含专业制作的广播质量的内容,比如演出和现场事件报道。像西甲(La Liga)、CONMEBOL和欧足联(UEFA)提供的这种专业广播内容,与用户生成内容(UGC)相比,这是一个截然不同的挑战,而且观众的预期值要高得多。习惯了传统电视广播的可靠性和质量的观众,期望这些直播也会有近乎完美的观看体验。

Facebook直播系统

虽然许多公司在其中一方面做的很好,但我们需要大规模地同时支持UGC和广播质量的直播。这些视频必须对每个人每次都有效。为实现这一点,我们建立了一个系统,能够管理UGC(产生的设备各种各样,质量水平也参差不齐)和广播质量的高分辨率的流媒体——并且能稳定支持全球数十亿人。

要在这种规模上提供无缝的流媒体体验,整个系统,从接收到传输,都需要可靠——整个系统的可靠性取决于其最脆弱的组件。大部分UGC内容使用公共互联网,这会带来网络条件变化的风险:网络中某个地方的容量限制会降低质量,或者一个故障可能会导致观看者视频卡顿或缓冲。我们从不希望观众在社交媒体或专业广播中遇到这种中断体验,对于像欧洲冠军联赛决赛这样的大型活动来说,音频或视频丢帧几秒钟的影响也是很高的。

我们构建了新的接收能力,来弥补传统电视制作与为UGC观众设计的基于互联网的接收之间的差距。我们在每一点上都内置了冗余——传输、接收、处理、传送和回放——来确保系统能承受大部分类型的故障。而且,我们扩展了我们的传输基础设施,来支持前所未有的收视率。在这个过程中,我们还发现了新的故障模式——以及在下一次广播中缓解这些故障的方法。

该视频系统目前已投入生产,每天支持包括UGC和专业广播在内的数百万直播流量。在8月份,我们在Facebook Live上直播欧冠决赛时达到了巨量的并发观众数,这个系统证明了自己。在巴西和讲西班牙语的拉丁美洲,观看人数达到了720万人的并发量。确保这种级别的无缝的可靠性,需要接收和传输两方面的努力。

可靠的接收

因为风险很高,电视广播公司把所有东西都放在保证带宽的私有专用线路上。这些线路在地理上总是多样的:要么是两条独立的光纤,要么是一条光纤带一个卫星备份。为了可靠地支持相似的高收视率广播,我们使用了一些可控性强的广播设施(这些设施使用了我们自己管理的解码器),以便我们能轻松访问广播网络(通常是私人光纤和卫星链路),从而尽可能高地保持视频/音频质量和可靠性。该设施通过专用的多样化的连接与我们数据中心相连。

我们还构建了一些机制,允许将主数据流和备份数据流接收到我们的基础设施,并能在出现问题时手动或自动进行故障切换,将主数据流切换到备份数据流,同时确保观看体验保持完美无缺。

这种从支持整体广播到支持单一广播的转变,意味着我们传统上接受的事情(机器重启、网络故障、拥塞等)现在需要小心地缓解。这些缓解措施(协调的故障转移、专用链路容量、多个地理分布的线路等等)需要在整个比赛期间进行,包括事前和事后,能轻松地运行四个小时以上。

大规模传输

除了无缝大规模地接收内容外,我们还需要管理面向观众的视频内容的大规模传输。这些大型活动和广播公司会被数百万人关注,他们在直播开始时会收到通知。这就造成了同时观看直播的观众数激增。当边缘缓存服务器(位于用户附近)没有请求的内容时,它们将请求转发给底层服务。这就导致我们所说的惊群效应——太多的请求会使系统崩溃,导致延迟、丢失和断开连接。

我们已经建立了强大的技术设施,通过开发新形式的请求合并和缓存分片来保护我们的后端服务避免惊群效应,使我们在确保实时回放的同时能够可靠地传输视频内容。

在提供视频数据时,我们尽可能与ISP合作,防止网络因为这些高并发事件而过载。例如,当我们发现里约热内卢的观众体验因Facebook和某个ISP之间的拥塞而恶化时,我们将本地互联能力从20 Gbps提高到120 Gbps。

因此,我们能将几乎所有的视频流量保持在观众的ISP网络中。这让我们的流量保持在国内而避免拥塞的国际链路上,这对ISP(降低成本)和观众(改善体验)都有好处。

通过我们的直播视频缓存和与ISP的紧密连接,我们比以往任何时候都更接近我们的观众,因此我们可以提供更高分辨率的视频,并且卡顿更少。这些投资确保了数百万Facebook观众在欧冠决赛中有一个无缝的体验。

尝试

面向720万并发用户的欧冠决赛视频流是一次成功,让我们对最后一公里的连接挑战有了更多的理解。我们能无缝地接收视频、处理视频并将它传送到边缘(我们在这里与ISP互联),但是由于当前蜂窝技术的限制,对于流行比赛的最后一公里的无线传输是一个巨大的挑战。为了将来解决这个问题,我们正在探索使用LTE广播来为同一个蜂窝基站的每一个人共享一份视频流的副本,来克服这最后一公里挑战。

在连接性和互联网基础设施上进行投资是很重要的,有助于给更多人提供可靠的负担得起的网络。我们即将完成一条新的海底电缆,这将改善拉丁美洲的连接性并提高冗余度和恢复能力。

我们将继续评估新的边缘位置的部署,来帮助创建健康的网络互联生态系统,并保持流量都在国内线路,这些流量不仅仅是Facebook的流量,而是同一个国家的ISP之间的流量。

结语

虽然这对于我们来说是一个巨大的里程碑(也是一次学习体验),但这决不是道路的终点。我们的下一个挑战是除夕夜,这与我们在欧冠决赛中所面临的挑战相反。传统上,当世界各地的钟声敲响时,数百万人同时开始燃放烟花庆祝,我们会看到来自个人设备的实时流量达到峰值!对于除夕夜,我们不需要为少数非常流行的广播优化缓存,而是需要为大量同时进行的较小范围的视频流来优化我们的处理、I/O和存储。

原文链接:

https://engineering.fb.com/2020/10/22/video-engineering/live-streaming/

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/KdHX4iMFOT8UxlYAS1ei
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券