点击上方“LiveVideoStack”关注我们
翻译 | Alex
技术审校 | 杨硕
本文来自OTTVerse,作者为Krishna Rao Vijayanagar。
CDN
Easy Tech
#009#
CDN(Content Delivery Network,内容分发网络)是由分布在世界各地的服务器组成,它可以根据用户的位置来就近分发缓存的视频数据,这对于直播来说非常重要。CDN通过将用户的访问,指向距离最近的缓存服务器来提升直播的性能。因此就算在高流量负载的情况下,直播也不会出现缓冲或者中断。
你在直播时遇到缓冲、延迟、视频中断或其他故障吗?想要确保这些问题不会发生,使用CDN绝对是一个好方法。CDN已经存在有一段时间了,随着时间的推移,CDN会变得更加流行,对于直播也会更加重要。
在本文中,我们将会讨论:你为什么应该在下一场直播中使用CDN,以及它是如何影响终端用户体验的。
我的直播需要使用CDN吗?
答案非常简单:是的!使用CDN将有助于:
服务在地理位置上广泛分布的观众
减少源服务器的负载
降低延迟
减少视频缓冲
防御DDoS攻击,从而提升安全性
其他还有很多!
但是,你知道为什么CDN会帮助你提升直播性能吗?为了理解其中的原因,让我们来看下CDN是如何工作的。
什么是CDN?
正如上文所提到的,CDN(内容分发网络)将缓存服务器分布在世界各地,这些服务器中存储了你的视频数据副本,会根据观看用户的位置将内容就近分发出去。这说明什么?
如果你在旧金山直播,而你的大部分观众在新加坡,那么距离新加坡最近的CDN节点将缓存你的内容,并将内容分发给当地的观众。这些观众的请求不必往返美国和新加坡,这样一来,他们就能体验到更快的下载速度。观众的等待时间缩短,获得了更好的观看体验。
左图:无CDN 右图:有CDN (图片来自Wikipedia)
CDN通过将用户的访问指向距离最近的缓存服务器来提升性能,因此对于那些没有充足带宽资源的直播源站来说,视频不会在高流量负载下缓冲或者中断。
CDN让流媒体数据直接在用户访问的本地节点快速响应,而不是让多个请求通过昂贵的长途链路在全球范围内来回传输(数据中心则需要尽量明确每个观众的地理位置)。
在深入了解CDN技术的好处之前,让我们先来快速了解一下ABR(关于ABR的更多知识,可以阅读这篇文章:理解ABR及其工作原理)——这是一种通过适应用户带宽条件来达到高质量视频传输的视频流方式。ABR的实现方式非常适合基于CDN的传输。
下一部分我们将对此进行讲解。
ABR和CDN
使用基于HTTP的视频传输协议的ABR可以通过CDN进行分发。在ABR直播中,编码器的输出数据被切割成小块,然后视频播放器依赖索引列表进行播放。索引列表显示了分片的名称和播放地址,播放器根据播放地址来请求视频文件。
这些视频分片和索引文件存储在源服务器中,而源服务器通过CDN网络分发数据。
当播放器请求视频分片时,该请求先到达CDN,CDN节点会判断本地是否有缓存。如果视频并不在CDN缓存中,CDN就向直播源服务器转发该请求,并获取到对应的视频分片文件。CDN将其传送给请求视频的客户端,同时缓存该视频分片。
通过HTTP请求直播流的视频分片文件,CDN可以简单地利用缓存和码率自适应技术,将直播流分发到全世界的视频播放器上。
总之,ABR和CDN在OTT流媒体世界掀起了一场革命,并使内容生产者和消费者受益良多。
那他们都获得了哪些好处?我们将在下一部分讲到。
使用CDN进行直播时有哪些好处?
使用CDN进行直播视频对你的观众来说帮助很大,因为CDN将直接影响他们的观看体验,并帮助你获取或者留存更多的粉丝和观众。
接下来,让我们详细了解一下这些好处。
CDN减少直播服务器的负载
CDN处在直播服务器(甚至可以是你的笔记本电脑!)和观看视频的一大批观众之间,它可以用来降低源站服务器的负载。来自观众设备上的请求先到达为他们提供服务的CDN,只有被请求的视频分片不在CDN的缓存中,CDN才会向源服务器请求视频。如果没有CDN在中间,你的直播很快就会和笔记本电脑一起down掉!
多像没有CDN保护被请求轰炸的服务器!
使用CDN进行直播有助于降低延迟(首屏时间)
当观众距离你的直播地理位置较远时,你需要考虑到访问视频分片的往返时间。如果有人按了播放键,然后要等待20~30秒视频才能播放,那么他们肯定会放弃这个视频而去看别的了。
所以,使用CDN就可以通过距离观众较近的服务器将第一个视频分片响应出去。这大大减少了响应请求的时间和下载时间,并降低了延迟和首屏时间。这些对于保障良好的用户体验非常重要!
使用CDN进行直播时减少缓冲
为什么视频播放器会缓冲呢?当播放器向服务器请求视频分片后,要花一段时间等待视频分片从服务器到达播放器。当播放器在等待视频分片到达的时间里,如果缓冲区被清空(缓冲区中所有视频已经被播放完),则被判断为underflow(数据不足或欠载),然后播放器开始缓冲。如果直播服务器因为请求过多,不能快速地给每个播放器发送数据,就会发生这种情况。
但是如果你使用CDN的话,这些请求就不会直接访问到源服务器,而是来到了CDN。这减少了每个视频分片的响应时间,因而在使用CDN进行直播时,播放器的缓冲区会得到快速填充。
保护直播基础设施免受DDoS攻击
如上文所述,CDN位于观众和源服务器(或直播服务器)之间,它发挥了屏障或第一道防线的作用,使得服务器免遭DDoS攻击。商业CDN内置了很多智能防护策略,如果它检测到恶意流量或者DDoS攻击,那么就会阻止这些IP地址或者客户端。
如果没有好用的CDN,这些恶意请求将席卷你的服务器,直播基础设施将不堪重负甚至崩掉。
使用CDN进行直播有助于获得高质量视频
高质量ABR流媒体的实现关键是播放器可以每次独立地从多码率配置文件中选择对应的视频分片进行播放。而CDN的快速响应特性,可以确保在带宽足够的情况下,播放器请求播放高码率视频分片能够及时收到数据,不会出现播放器缓冲区不足的情况。如果没有一个好用的CDN或实时流媒体服务器,那么使用ABR最基本的优势也就不存在了!
直播时应该使用Multi-CDN吗?
到现在为止,你已经知道使用CDN直播是一个好主意,因为它会保护你的直播设施免受攻击,并为观众提供出色的观看体验。
但这里有一个问题:如果你的CDN提供商出了故障或者崩溃,你该怎么办?这就麻烦了,观众正在通过已发生故障的CDN观看你的直播。
为了避免这类问题的发生,有些公司使用了Multi-CDN架构,即通过多个不同的CDN将视频传送给终端用户。这是一种集合多个CDN,可以支持智能切换策略,从而实现灾备冗余的方式。
虽然小型直播活动并不强制要求使用Multi-CDN架构,但如果是奥运会、大型音乐会或者高流量直播活动等,则值得考虑使用Multi-CDN进行直播。
总之,你会使用CDN直播吗?
阅读本文之后,你会怎么做?你会在直播时使用CDN吗?大部分在线视频直播平台都和CDN公司有合作,这些视频平台都获得了更好的发展并与CDN提供商的合作也更加紧密。
当你下次选择直播平台观看直播时,请务必向平台问这个简单的问题:你用了哪家CDN来向终端用户分发内容的?这个简单的问题可以让你对视频平台如何运行有更多的了解。
我们下次再见,感谢阅读本篇文章,直播快乐!
致谢
本文已获得作者Krishna Rao Vijayanagar授权翻译和发布,特此感谢。
原文链接:https://ottverse.com/cdn-for-live-streaming/
延伸阅读:
视频编码完全指南
Easy Tech:什么是I帧、P帧和B帧?
为什么视频压缩如此重要
讲师招募
LiveVideoStackCon 2022 音视频技术大会 上海站,正在面向社会公开招募讲师,无论你所处的公司大小,title高低,老鸟还是菜鸟,只要你的内容对技术人有帮助,其他都是次要的。欢迎通过 [email protected] 提交个人资料及议题描述,我们将会在24小时内给予反馈。
喜欢我们的内容就点个“在看”吧!