2019年4月10日,2019北京第七届“亚太内容分发大会”暨CDN峰会在北京隆重召开。本届大会共设:CDN领袖峰会、边缘计算论坛、视频云论坛、智能网络论坛、国际论坛、移动&应用分发论坛、电视&媒体分发论坛、版权&安全分发论坛共计8大主题论坛,在4月10日下午举行的视频云论坛上,苏宁视频云首席高级开发工程师董昊做了题为《视频云服务平台建设实践》的主题演讲。
苏宁视频云后端服务架构主要有以下四点:第一,视频云后端整体架构。第二,文件上传与CDN加速。第三,短视频编码与播放。第四,视频云产品特性。
视频云的点播服务是把文件上传到视频云上,供客户端下载和观看,视频云支持几乎市面上所有的文件格式,上传方式支持的是web、移动端安卓和ios、JAVA服务端和服务端接口上传。
这个是服务的总体架构,首先是官网和管理后台,供客户上传视频。在这个地方可以设置自己视频转码的模板,或者对视频信息进行管理,以及视频文件的基本操作。在流量监控方面采用的是一种算法,当访问量比较大时可以进行减低流量的峰值。校验一般对外的API接口为了防止用户的攻击性访问以及超时访问,一般会设置校验,可以在HTTP里加一些校验参数。还有服务的降级,服务的降级主要是为了防止包括数据库负载过高时出现大面积的查询不可访问、上传不可使用的情况。
文件上传完成之后,会通知CC服务,会再进一步进行文件的压制,或者当用户请求播放时,会请求调度来获得视频在CDN节点上的播放地址。下一层是压制调度服务,根据用户传过来的视频压缩参数进行视频转码,支持从流畅到超清的转码。调度一般根据IP的调度获得视频在SDN上的播放地址,以达到更好的播放效果。
讲述文件的上传流程,用户端根据提供的算法自己算出来的,是文件唯一的标识。当它请求到云上传服务的时候,上传服务会根据这个拿到文件的FID。如果相同的话,则认为它是同一个文件。在上传的时候,如果说同一个文件已经上传网络了,会出现一个秒传的过程。不会进行实际的上传,只有一条记录,是为了减少文件的存储。
当请求通过fid获得一个上传的地址,其实获得的是一个上传的分段地址,通过不断循环上传完成文件的上传流程。当文件上传完后,它会提交一个文件的上传清单给后面的存储服务,存储服务会把文件合并,算一个文件的整体MD5的签名值,客户端自己也算一个文件的MD5,进行文件的比对,MD5相同的话才表明文件是整体的上传完成了。
此外还有一个上传文件的CDN加速。一般CDN加速往往用在静态资源的加速上,现在做到上传文件的动态资源加速上。用一个智能鉴黄模块,当用户上传的文件上传到加速平台的中间层时,它相当于会分发一定的流量过来,给到它智能鉴黄的集群里去进行鉴黄校验,这个地方主要是为了给文件做打分标识。这个地方不会影响文件整体上传的过程,只会分发一段流量过来。
现在比较火的是抖音短视频,苏宁也做了非常完善的短视频,只不过它的用户是在苏宁APP里面的视频里,短视频比较多。包括智能编辑、滤镜、美颜、混音、字幕都已经做得比较完善。
目前苏宁的短视频一般分为三种:一种是在手机端传输视频,需要在客户端进行转码,然后上传到文件服务器上。第二种是客户端无需转码的,直接上传到文件服务器上就可以。第三种是为了满足苏宁易购商家上传的视频,一般不会上传MP4,往往上传的是各种各样的格式都有,为了兼容这一服务,又把短视频也放在了压制平台上去,提供MP4播放地址。
用户获得MP4地址都是自己通过集成苏宁的SDK来生成的。在播放地址里一般会加上时间戳的校验。当用户在播放视频时,首先做一层CDN的加速服务,当CDN上没有资源时,回源到文件服务器上。目前一般可以由用户来指定客户端的缓存时间和CDN资源平台节点上的缓存时间。现在服务的主要是苏宁易购和PP体育,一些精彩好球会用到短视频,它是一个短视频的播放流程,也支持大文件的播放,因为一场比赛的视频大概2、3个小时左右,编码已经做好了,为了支持这种视频直接的播放,也做了流式或者Range的播放。
苏宁的资源比较丰富,技术实力比较强。完善了文档、DEMO以及技术支持,在官网上已经做得很完善,把一些代码开源出来了。服务稳定性,为了支持PP体育半夜的赛事,24小时都可以做到支持。
苏宁目前服务的厂商包括苏宁易购、PP体育、海口电视台、红孩子等等。