不同直播类型的CDN技术浅谈分析
内容分发网络(Content Delivery Network,简称CDN)是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络。CDN分担源站压力,避免网络拥塞,确保在不同区域、不同场景下加速网站内容的分发,提高资源访问速度。许多用户在实际运用CDN的过程中都会遇到如何有效开发CDN的问题,今天小编跟大家浅谈下直播行业跟cdn技术两者之间的关联:
随着直播行业的兴起,各种直播应用、平台和产品万花齐放,直播场景也越来越多元化,这就对视频技术的发展提出了"日新月异"的需求。那么,目前视频直播的场景主要有哪些?不同类型的直播场景对视频技术又有怎样不同的要求?本文将通过分享一些个人经验,简要分析不同直播类型的CDN技术要点。
要说清楚这个问题,我们需要从头说起:
基础网络的发展路径
80后、90后都是见证互联网崛起的一代,互联网的发展史,本质上就是网络速度的发展史。刚开始的时候,网民用电话线拨号上网,下行速度只有不到几十K,打开一个复杂的网页要十几秒到几十秒;后来宽带兴起,网民使用了现在常见的网线(其实和电话线一样都是铜芯),传输速度能达到1000Mbps;再到后来光纤到户了,不再使用铜线,传输介质都变成了光纤,传输速率高达万Mbps。
上面说的是家里的固网,下面再来聊聊手机移动网络。移动网络包含语音和数据两块,语音就是我们常用的打电话业务,数据就是我们访问互联网的数据传输。要分清楚这两个业务,最简单的秘诀就是看手机顶端显示的信号图标。(这里简单扩展一个基础知识:我们常说的几G就是代表第几代移动通信技术Generation。G代表GPRS, 2.5G也就是第二代移动通讯网络的延伸,速率能够到达115kbpsE是EDGE,经常被叫2.75G网络,速率有384kbps。)
大概六七年前开始,网络用户开始使用3G,就是第三代移动通讯技术,速率可达2Mbps,还有一些时候会显示H或者H+,可以当做是3.5G4G,后来就是目前比较流行的4G,速率在100Mbps以上。
随着传输技术的演进,互联网上的应用也发生了很大变化。用一些具有代表性的例子来说,早年间大家使用的应用主要是通讯软件例如QQ、发邮件、访问网页;到后来网络可以便捷快速的传输较大的文件,就有了在线听音乐千千静听、酷狗音乐;然后普及了在线视频优酷、土豆、pps;到现在我们可以看到,网络上已经有了爱奇艺这样全高清的在线视频。
随着直播,尤其是移动直播在近两年突然爆发,给基础网络提出了最严苛的要求。一方面,以往用户的上网行为对带宽的要求是极不对等的,用户对上行带宽的需求普遍是只要能发送出请求消息就行,日常用网主要靠下行带宽下载大量数据。但现在有了直播,用户可能随时随地就会开启直播,而当用户开启直播以后,应用需要把直播内容上传到服务端,这个过程就对上行带宽提出了新的要求,只要直播上传端出现卡顿,所有看直播的观众都会受到影响。另一方面,直播从内容产生到上传到分发最后用户播放整个链路完全是实时的,每个环节都容不得细微的网络抖动和异常,尤其很多高清的直播对上下行带宽要求都非常高。怎么解决这个问题?
通过CDN解决内容传输问题
下面两张分别是我在电脑和手机测速的截图,速率都达到10Mbps或100Mbps,那为什么往往上传2M以上的直播或观看3M以上的直播会经常很卡呢?
这是因为传输技术、移动通讯技术都已经能够支持这么大的传输速率,但是接收的服务端却没有那么强的接收能力,以及各种各样小运营商之间的互联很差等导致的。举个例子,如果顺丰快递在一个小区每家每户都安排一个快递员24小时等待取件,那是不是该小区所有人都能马上寄出东西了呢?不是,因为楼下的顺丰仓库就只有1平米,大家都在寄东西他们仓库满了不能再受理了,即使快递员收件很快,物流点也处理不过来。
这就需要通过CDN来解决问题。当发生物流点要处理大量快件的情况时,我们就需要在每个小区都建很多个、空间很大的物流点。回到CDN上来说,就需要在每个网络内都部署CDN服务器节点,而且需要部署非常多个。当然,这样做导致的问题就是CDN的成本会变得非常高,高到直播平台根本负担不了的地步。我们星域CDN的解决思路是采用共享经济的方式,低成本地在全网部署"无限"多的节点,解决数据传输的问题。具体怎么实现?星域CDN通过一个智能硬件--迅雷赚钱宝,将家庭用户空闲的家庭带宽资源筹集起来,一方面可以免去节点建设成本,一方面也可以使节点离用户更近。用物流来比喻,就是我们可以将小区里闲置的空房、空地、空路线利用起来,免去重新占地建房的成本。
不同直播场景的CDN技术简析
根据不同平台端直播厂商的业务需求,以及直播观看者的需求和行为分析,直播主要有以下几种类型:
1、事件直播
一般是重大活动赛事或媒体类的现场直播,所有观看者集中到一路直播流。
因此这种类型的直播最重要的是稳定性,事件带来的带宽增长、高并发需要CDN有足够的储备带宽应对突发,直播全程不能出现任何中断故障,否则影响用户体验。像熊猫直播,拥有很多人气非常高的主播,他们就会要求CDN一定要给出一个T的冗余带宽以及一千路的转码能力,就是为了应对有的主播有活动的时候流量突然爆发。
还有就是内容安全方面,尤其是现在流行的媒体类事件直播通常配合CDN的延播技术做到先审再播。一般需要有2min左右的延迟播放,以及通过视频https传输防止内容被恶意篡改。当然,CDN配套了延时配置的服务。
2、泛娱乐直播
泛娱乐直播一般是个人输出内容,涉及面非常广且主播素质良莠不齐,审核就是必要的需求。通常大直播公司会采用人工审核+购买第三方鉴黄/政审服务(这种服务都是计算机按照智能算法通过拉流接口或者截图来审核)。对CDN提出的要求就是要有一套稳定且处理能力强的截图系统,还有一旦发现不适合播放的内容时,需要有支持秒级禁播和恢复开启播放接口。星域目前的鉴黄做得挺好,准确率达到了99%,在行业里面应该是比较领先的。
此外泛娱乐直播主要靠主播同粉丝互动,所以很关心端到端延迟。端到端延迟指定就是内容从主播拍摄产生,到CDN分发再到用户观看到经过了多长时间,可以简单理解为用户观看的内容是多久时间前发生的。如果延迟很长,就会出现主播讲完一段话,用户很久以后才能看到,对于互动性要求比较强的直播来说,这是无法忍受的。业内对延迟的解决方案,传统CDN优秀的可以达到5-10秒延迟,传统P2P可能要几十秒的延迟,CDN就可以做到2秒以内的延迟。
3、游戏直播
游戏直播是非常有粘性的,一半观看者会持续长时间观看主播或电竞比赛,现在的多人在线游戏直播主播之间会需要连麦服务。再比如电竞比赛有时候为了避免暴露玩家在地图上的位置也需要延播一两分钟,我们也多次为客户配置过赛事活动延播,同时也根据客户的需求提供连麦、美颜等不同的功能。另外,卡顿应该是所有直播场景中都无法忍受的情况,我自己有时候会打游戏,看游戏直播的时候卡顿尤其令人恼火。CDN的卡顿率就做到了1%,行业内其他的可能做到4%,这一点上我们是比较有信心的。
4、移动直播
从用户行为上来看,当前很火的移动直播花椒、映客,从APP界面上就已经把直播做成了列表浏览的方式。用户可以像刷微博、看新闻一样的刷直播,通常是随机的通过封面选择,感兴趣的点进去观看不超过1min就退出观看下一个。有的APP还专门设计了左右滑动或者上下滑动就切换到下一个房间。在这样频繁的观看和退出操作下,首屏的体验就变成了最重要的了,用户难以忍受切换或者打开房间后要等很久的体验。在这个方面做到的首屏秒开是很多客户非常看重并评价很高的技术服务。
5、户外直播
户外直播最大的特点就是多采用4G网络直播。采用这种无线方式传输时,本身网络就不够稳定,再加上运营商基站覆盖不全导致很多野外或山上的活动根本没法保证,或者一些角落、电梯等屏蔽信号的地方就会出现直播质量差的问题。主播推流的卡顿会造成整个链路的所有观众都收到影响,所以核心就是要做好推流的优化和保障。解决户外直播的这些问题,我们通常可以采用码率自适应进行轻量化推流,同时结合多节点服务冗余和平滑切换技术来保障,也提供了现成的推流SDK来实现这些方案。比如我们在业内比较有名的独创的弱网加速技术,也是星域的四大技术之一,从TCP协议底层专门解决这种弱网场景的传输稳定性。
6、VR直播
现在的VR直播从技术上看比普通直播主要的差别就是码率要高出N倍。普通的直播可能几M,几十M,VR直播可能G级起跳,普通的网络甚至现在市面上的CDN一般都是没法承载的。VR直播主打的就是用户体验的视觉冲击力,所以在画质上要保证是最好的,不能打折扣;再有就是观看流畅度如果不能保证,用户体验就会根本无法体验。目前业内对VR直播的技术和成本控制都比较敏感,像CDN支持h.265编码,能够在保证原有画质前提下将带宽压缩一半,这样VR直播的企业就不用承受太大的成本压力了。另外,CDN还和insta360联合开发的针对全景直播压缩锥形编码技术,能把带宽占用压缩为原来的1/8。
7、教育直播
跟直播一样,教育也是近两年非常火热的领域,各个大学,培训机构也都推出在线教育直播,让学生能够远程便利的随时接受各种知识,教育机构会非常重视教材跟视频课程版权和保密性,所以CDN对这种需要提供防盗链的访问方式,甚至视频级的加密技术。CDN的动态防御就有非常好的防盗链机制,迅雷看看的高清内容使用这个机制后,目前仍然保持0盗链的记录。
如果大家还有什么不明白的地方可以在官网找我们的CDN技术工程师的,CDN技术工程师在行业内拥有十几年的经验了,所以会比小编回答的更加详细专业。官网链接www.yisu.com