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 和存储。
原文链接:
延伸阅读:
Facebook 开源人工智能模型 RAG:可检索文档以回答问题-InfoQ
K8s和YARN都不够好,全面解析Facebook自研流处理服务管理平台-InfoQ
Facebook 新研究:使用CNN将任何2D照片转换为3D-InfoQ
关注我并转发此篇文章,私信我领取资料”,即可免费获得InfoQ价值4999元迷你书,点击文末「了解更多」,即可移步InfoQ官网,获取最新资讯~
做一场Facebook直播有哪些关键点?
数据显示,自Facebook推出直播功能以来,平台上的直播总场数已经超过了100亿次。那么,想要做好一场Facebook直播有哪些经验可以参考呢?
一、直播开始前提前做好预告
1、在直播开始之前要定义清楚,你的直播是个人类型还是品牌类型。因为在Facebook做直播是没有限制个人的,但商家号直播可以获得很多附属功能,如果使用品牌直播可以更好的树立品牌形象。
2、当定好直播时间后,要提前通知粉丝。Facebook有一个预告功能,可以通过文字、图片、短视频的形式进行预告。预热期也可以设置得长一些,提前一两天发布一些广告或与直播相关的内容。不过预热有一个前提,需要有一定粉丝群体,才能有推送的对象。
3、直播主页面的细节展示
用户点击账号进入到你的Facebook主页,你的Facebook主页呈现的内容会决定用户的跳转率,如果主页信息杂乱、视觉低劣,用户会很快跳出。
4、直播开始之后的状态设置
点击开始直播之前可以添加标题,直播标题是吸引用户关注的第一要素,一个准确的直播标题可以让用户快速知道你的主题内容。此外,你也可以设置直播展示的内容,如当前进入直播间的用户流量数、当前直播间内的讨论用户数,通过直播间详细的指标维度及时调整直播内容。
二、固定时间直播
1、当你有一定粉丝量后,粉丝肯定会比较关注你的动态,如果能设置一个固定一个时间直播,可以很好的培养粉丝观看直播的习惯性,也会让粉丝更有归属感。
2、根据你的直播时间、直播地区去制定直播内容。比如,你需要考虑时差问题,面向亚洲地区用户与面向美国地区用户,开播时间肯定是不同的。
三、灵活的管理机制
通常在直播的时候,直播间都会设置管理员,这样可以更好的与观众进行互动,同时管理你的直播间。
四、与网红合作
与网红进行合作,让网红帮助你转帖、宣传直播,或者请网红来你直播间做客或者做你直播间的播主,都是非常好的引流手段。
以上就是小编今日关于做一场Facebook直播有哪些关键点的分享,希望能对你有一些帮助。亿邦小编会定期更新该知识。如果你有相关问题或者好的答案,也欢迎留言。