作者:刘畅。90后技术小鲜肉,天秤男,就职于网易杭州研究院后台技术中心,一入”视频云点播服务端开发“深似海,爱技术(小编内心OS:瓦特???不怕青年谢顶啊),对篮球、台球、乒乓球、毛线球...各种球类运动情有独钟,选择恐惧症,不过第一份工作选我大猪场还是选对了。
云计算近年以每年32%的增长率飞速发展
视频云领域也正以80%的流量逐年递增
腾讯、阿里、金山、,乐视,当然还有网易,各大厂商都加入了视频云的混战
这些视频云厂商,
不仅有基于IaaS、PaaS及SaaS层的服务以及对应层级的运维支撑,
还覆盖了游戏、教育、媒体、医疗…..多个应用场景
大家都说,
视频服务存储技术是视频云服务关键。
而视频服务存储技术往往像个神秘大黑箱,
今天,
我们请来了程序猿刘畅为你打开网易视频服务存储的黑箱!
伴随无线网络传输质量的提升和移动设备的智能化,2016年国内视频应用呈现爆发态势,以当下最火的直播APP为例,映客在APP Store下载量超越支付宝蹿升至第7位。相比于互联网其他应用服务,视频应用对传输的实时性,播放的流畅性,存储的稳定性有更高的要求,对于传统的视频服务企业,要提供优质的视频服务,需要极高的技术门槛和资源成本。 云计算本身具有的高可靠性、资源共享性和可扩展性,促使了视频技术的云化,加速了视频应用的发展,两种技术相结合形成了当下流行的视频云技术。
对应于云计算的分层,视频云服务相应分为产品级服务、平台级服务和资源级服务。
产品级服务包括市场上形形色色的视频类APP,应用于在线教育、游戏直播、娱乐秀场等各种场景;
平台级服务通常是指一站式的视频服务解决方案,为上层应用提供包括直播、点播、鉴权,内容审核和音视频转码在内的完整的SDK和API接口,具有接入方便,二次开发量小等特点;
资源级服务位于云计算架构的最底层,能为包括视频服务在内的所有依托于云的应用提供底层软硬件资源的支持。
针对视频服务而言,资源级服务主要包括:流传输和视频存储。
流传输的目标是速度快、卡顿低、延时小。流传输依托于流分发网络技术(VDN),类似于内容分发网络,VDN利用边缘网络节点,避开网络拥塞链路,实现视频流传输的加速。直播和点播是视频服务的两大功能模块,毫无疑问,要支持点播功能,需要先存储视频,其实直播同样离不开存储,直播具有实时性,必须主播和观众同时在线,才能完成一次直播,一旦主播推流结束,后续进入直播间的观众就无法拉流观看,主流的直播应用为了保证用户日活,通过录制直播视频,支持观众在直播结束后仍可观看高质量的直播视频,而录制的视频必须存储下来。由此可见,存储是视频服务的底层基石,接下来讨论视频的存储问题。
云端视频数据存储的关键在于稳定。网易视频云服务借助网易对象存储系统(NeteaseObject Storage,NOS)完成对视频数据的存储。NOS是一个海量的Key-Value存储系统,Value的容量上限为1TB,完全能满足高清视频文件的存储需求。桶是NOS的对象容器,是管理数据的全局唯一的逻辑命名空间。NOS以网易分布式文件系统(DFS)作为数据存储,依托网易分布式数据库(DDB)存储元数据,主要功能包括:海量数据读写删操作;大文件分块上传;文件去重上传(保存引用计数);对象多版本;安全认证;多租户流量隔离;支持POSIX接口,远程目录挂载本地等。下图是NOS的整体架构:
用户可以通过Restful接口、JAVA SDK、Android SDK和IOS SDK完成视频文件的上传下载、通管理、对象管理等操作。视频上传是存储视频的关键一环,对于平台级的视频服务而言,视频上传往往涉及多方服务调用,下图是视频上传流程的一种解决方案,其中CloudServer为视频云服务器,AppServer为应用服务器,AppUser是个人用户。CloudServer提供两个接口:1.供用户调用的上传前初始化接口,用于设定上传视频需要的偏移量、存储位置等前置条件;2.上传完成后供NOS访问的回调接口,该接口处理上传完成后的业务逻辑,例如添加视频信息、修改任务状态等。流程图中标红的实线是实际的视频流传输动作。
NOS的以上功能已经能很好的满足视频服务对存储的需求,此外,NOS支持的云分发特性和富媒体服务,使其更好的适用于视频应用场景。云分发主要包括NCDN和NCAN两个功能模块,NCDN支持加速域名创建、禁用、查询、配置等操作,提供缓存清理、流量查询等接口;NCAN支持断点续传、边缘节点上传加速等功能。富媒体服务是一个高效易用的多媒体数据处理框架,用户将原始音视频文件上传后,通过富媒体接口完成获取视频关键帧截图,去黑边,视频加水印,图片裁剪、旋转、高斯模糊等操作。网易视频云在充分发挥NOS强大的存储能力的基础上,封装出了包含视频上传、视频转码、视频分类、视频屏蔽、视频恢复等功能的一套完整的PaaS层接口,助力企业级用户快速方便地接入视频服务。