APP下载

动态扩容视频存储分发系统设计

2016-07-04杨建光杭州字节信息技术有限公司杭州310008

电子测试 2016年9期

杨建光(杭州字节信息技术有限公司,杭州,310008)



动态扩容视频存储分发系统设计

杨建光
(杭州字节信息技术有限公司,杭州,310008)

摘要:在带宽增速,互联网用户对视频内容的要求日趋增多的趋势下,本文描述了大规模视频存储分发的系统设计和实现。该系统设计的目标是把用户上传的视频重新编解码生成适合不同场景的不同格式视频文件,然后根据客户端支持的视频属性和网络带宽的实际情况,自动分发不同码流的视频文件到客户端,从而达到流畅访问视频的目的;对系统中的热门视频,系统通过算法结合缓存,实现同一视频文件在不同服务器间动态迁移,从而充分利用系统的计算能力,最终给用户提供更流畅的视频体验。

关键词:视频存储;视频分发;动态扩容

1 系统功能模块划分

1.1 视频存储模块

视频存储模块是实现视频海量数据的多服务器文件存储,主要实现视频各种分辨率格式对应的文件存储 。热门视频需要在多个服务器上存储,而非热门视频只需要在少数服务器存储。视频存储集群结构参见图1。

1.2 视频索引缓存模块

该系统模块把视频的相关信息,如存储集群、时间、分辨率、码率、帧率、作者、拍摄时间、内容介绍等信息以数据库的方式存储起来,并对常用检索信息进行索引。 特别地,由于热门视频可能存储在多个服务器上,因此需要在缓存服务器中存有对应视频的存储服务器的信息。视频和存储服务器的对应关系可以表示为图2。

图1 视频存储集群

图2 视频和存储服务器对应关系

1.3 视频编解码转换模块

为不同网络带宽的终端提供流畅的视频服务,需要生成同一视频的不同版本。该模块以原始视频为基础,通过重新编码的方式,生成同一视频的不同分辨率或不同帧率的不同格式视频版本,并存储在相关存储服务器中。终端上传视频,后台进行重新编码的过程如图3。

有了上述视频转换并存储基础,客户端向服务器提交视频请求时,服务器端会根据网络带宽和终端属性来确定下发视频的格式和清晰度。

2 系统关键模块设计

2.1 服务器架构

整个视频存储分发系统分为以下几个部分:存储服务器集群、负载均衡/健康管理服务器、编解码服务器、视频元数据库、缓存服务器。整个系统功能模块示意如图4。

图3 视频编解码过程

图4 系统功能模块

图5 单一视频的目录组织

在所有服务器中,只有负载均衡、健康管理服务器拥有公网ip地址,其它服务器只有内网ip地址。

2.2 单视频存储设计

为适应各种终端处理视频的需求,需要把同一视频的不同格式的视频按下列目录规则组织起来。

2.3 热门视频存储迁移算法

热门视频存储迁移算法描述一个非热门视频随着同时访问者的增多转变成热门视频的过程。存储迁移算法使该视频可以动态迁移到别的空闲服务器,并且更新缓存服务器,从而增加单一视频服务的可用性。该迁移算法描述如图6。

2.4 负载均衡、健康管理模块设计

终端通过负载均衡模块获取视频服务器地址然后进行后续视频交互流程设计如图7。

图7 负载均衡流程

由于视频对服务器计算能力和网络带宽都有严苛的要求,为了保证给多个客户端的并发访问提供流畅的视频服务器,需要设计负载均衡模块以实现客户端的引流和平衡。

而健康管理模块维护可用视频服务器的列表,通过Http检测实现三大功能:

动态添加视频服务器实现扩容;

检测到某一台服务器不可用时,把该台服务器从可用服务器列表中删除;

检测到不可用服务器重新可用时,把该台服务器重新添加到可用服务器列表中。

3 总结

视频服务器、数据库服务器、负载均衡服务器、视频编解码服务器均采用阿里云服务器,服务器端采用的技术开发框架有:Nodejs + Express的Http服务器,MongoDB非结构化数据库存储引擎,Nginx反向代理,ffmpeg视频编解码框架等。经测试,在请求响应时间,视频流畅体验等方面均取得了不错的效果,后续将进一步把该系统应用在多个领域。

参考文献

[1]曹岩;网络宽带交互式视频点播系统的设计与实现;计算机工程与应用;2012

[2]单海涛;方向忠;基于FFmpeg的高清数字与电影软件编码系统的设计;信息技术;2007

[3]庞建民;王巍;视频会议系统的研究与实现[J];安防科技;2008.12

[4]徐向宇;电信流媒体系统的设计与实现[D];电子科技大学;2010

图6 视频存储迁移

Design of dynamic capacity expansion video storage and distribution system

Yang Jianguang
(Hangzhou byte information technology Co., Ltd.Hangzhou,310008)

Abstract:In the Internet bandwidth growth,user demand for video content increasing trend,this paper describes the design and implementation of the system of large-scale video storage distribution.The system design goal is to users to upload video codec is generated to fit different scenarios of different video formats file,then according to the actual situation in support of the client's video attribute and network bandwidth,automatic distribution of different streams of video files to the client,so as to achieve smooth video access; on the popular video system through the algorithm combined with caching,achieve the same video file in dynamic migration between different servers,which makes full use of the computing capability of the system and ultimately to the user to provide smoother video experience.

Keywords:Video storage;video distribution;dynamic capacity expansion