《AcFun 的视频架构演化实践》读后感
《AcFun 的视频架构演化实践》从视频的核心技术栈、视频生产、视频消费、AcFun 的选择介绍了AcFun 的视频架构演化。
1、视频的核心技术栈
AcFun 弹幕视频网(acfun.tv)是中国最早上线的弹幕视频网站,也是最具影响力的弹幕视频平台。“AcFun”原取意于“AnimeComic Fun”。自2007年6月6日成立以来,AcFun 历经几年努力,从最初单一的视频站发展为现在的综合性弹幕视频网站,目前已是国内弹幕视频行业的领军品牌。
AcFun 从 2007 年建站,至2015 年正式专业化运营,从起初的盗链站,到如今由自身平台支撑绝大部分视频内容,伴随着业务的成长,技术架构也随之迅速演进,需要兼顾成本与用户体验,我们在视频存储转码、防盗链、媒体资源管理等领域进行过诸多尝试和变革,也乐于和大家分享在这过程中的思考和抉择。
视频主要由两部分组成,视频生产和视频消费端,A 站视频上传和存储、转码、内容的审核监控对生产方非常重要。播放器、cdn、宽带和防盗链后面会给大家介绍。
2、视频生产
A 站上的内容绝大多数是 UGC 的内容,UP 主(上传视频的人,搬运工)上传视频的体验,直接会影响网站内容的数量和质量,如果上传体验太差,UP主不愿意上传视频了,那离闭站也不远了。
A 站自2007年建构以来,在架构上发生了翻天覆地的变化。如图1所示,作为个人站点的时候,用户会主动上传到优酷、土豆这些平台上,以链接投稿的形式投在 A 站的网站上,然后再把弹幕做上去。A 站使用视频云平台,拥有了自己的账户,使用云平台的上传插件,UP 主直接上传到云平台上。但是并没有对视频进行备份,导致后来跟平台合作出现问题的时候,花了很大精力把视频源文件从平台上下载下来,导致很多视频丢失,到现在也没有找回来。希望大家重视一下视频的源文件。A 站现在开发了上传的服务,公司建立了自己的存储。刚开发这个功能时是很粗糙的,现在是上传到A站的服务器,接到用户上传时,分发到合作的视频平台上。A 站选择了多家的视频平台。以前遇到过一件事情,当一家服务有问题的时候,会导致网站有数个小时访问不了。所以,A 站选择了多家 CDN 厂商。
现在 A 站也遇到了很多问题,例如刚开始上传的服务做好之后,因为机房是双线的,对于海外的用户体验都不好,上传到一半就断掉了。上传一个大视频有几 G,需要两三个小时,上传到一半了还得重新传。根据这些情况 A 站陆续开发了断点续传和秒传的功能,先扫描一下是否有这个文件,如果有的话,就不需要用户再上传了。A 站还建立了多线机房,相应的带宽的成本也大大提高了。
视频消费方在 CDN 加速方面用得比较多,用户进行加速。但是 CDN 还有一个上传加速的功能,七牛有一种反向 CDN 加速的服务。这种服务的好处就是用户先上传到CDN 厂商,回调告诉我们,再从 CDN 厂商把视频拿过来,节省了用户时间。A 站和 CDN 厂商进行协调,可以用单线和双线的机房把视频文件拖到自己的存储上,这样降低了一些带宽的成本。
视频转码方面,实际上A站并没有自己的转码服务,而是和 CDN 厂商合作,用他们来进行转码。现在支持的视频格式有FLV、MP4,码率有标清480P、高清720P、超清1080P和原画。在视频转码方面有一些策略和针对A站的情况进行优化,比如说 A站有音乐区,这部分的用户更关注音质,对图片要求不是特别高,A 站会针对这一部分视频进行音质的保持和无损。大家对于舞蹈区的视频主要看萌妹子,如果是朱军画质那宅男们就要骂街了,当然要尽量保持超清原画质的视频。
曾经视频是没有切片的,一个视频不管多大,转完码后都是单一文件。现在通过调整转码方案,采用视频切片技术,这样有助于节约带宽,视频缓存的时候一段一段的缓存,不像之前全缓存到本地,有可能用户只看了一半就不看了,这样无疑浪费了带宽,无形中提高了公司的成本。而且切片转码能提高转码的速度。有利有弊,提高了播放器的开发成本,现在还存在一些问题。比如,到切换分片的时候,有几率产生回退几秒的情况。用户体验十分不好。
因为 A 站内容以 UGC 为主,因此会有大量的政策风险,需要有一套完整的审核监控流程,举报机制来完善。如图2所示,这是一个简单的流程,用户上传视频之后,发现不符合的可以进行退稿,如果视频通过,用户看这个视频特别不舒服也会进行举报,举报到一定的次数之后,系统会自动的把稿件退掉,UP 主可以申诉。
3、视频消费
视频消费端方面,A 站所有的播放内核都是第三方提供的,现在主要是 Flash、链接投稿和视频方合作的一些东西,以及客户端的一些东西。所有的播放器内核都是别人提供的,A 站只需要把自己的弹幕做好就可以了,可以发一些表情和文字。
讲到消费,大多数视频网站都很头疼,因为 CDN、带宽占公司很大一部分开销。A站选择 CDN 厂商的时候,会考虑服务稳定性、价格和服务质量。现在 A 站在 CDN 服务商选择上用了多服务商,因为以前发生过服务商中断服务之后,导致网页不能用的情况。现在如果某家服务商服务中断,我们可以切换到其他的服务商,不会造成其他的影响。
4、AcFun 的选择
带宽的价格和 CDN 价格很高,所以A站在播放端想加入 P2P 技术,这样可以节省很多带宽,用户之间进行数据的传播。其他的网站上防盗链都有很大的一个技术团队支撑,A 站是刚起步的阶段,现在介绍几种防盗链的措施。
首先是在接口层做一些防范,然后在播放的时候,播放器会拿播放地址,防止他们抓取播放地址,就会用一些简单的措施,比如说去判断一下请求来源,判断 http 请求的 refer 还有 UA。还有一种是和 CDN 厂商联合做防盗链的一些措施,比如说播放地址的时效性,20分钟、30分钟等等,有效的防止盗链的情况。
关于 AcFun 下一段的路程还是很长的,A 站要尽快提高技术水平。A 站的定位并不是简单的视频网站,现在想往综合性网站上发展,不会投入太多的成本做所有事情,A 站积极寻求与第三方合作。比如说推送、图片、统计服务都是和第三方进行合作的,会寻求市面上最好的服务支撑网站的功能。
原文链接:https://www.cnblogs.com/wxd136/p/11045486.html
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/7665