1 选题背景
美国互联网流量监测机构comeScore在2013年5月发布报告称,2013年4月有1.829亿美国人观看了网络视频,观看量达到388亿次,网络视频广告观看量也创下132亿次的历史新高。总的来看,当月共有84.7%的美国人观看过网络视频。平均每段网络视频内容持续5.6分钟,平均每段网络视频广告持续0.4分钟。
在国内,据iUserTracker监测数据显示,在线视频在2012年第二季度已经超越搜索服务和社区交友,成为中国用户规模最大的网络服务,2012年5月用户规模达到4.2亿。艾瑞的分析报告指出,2012年视频行业整体市场规模达到92.5亿元,同比2011年增长了47.6%,而且未来还会以30%以上的速度继续增长。
根据以上统计数据,网络视频的网民渗透率非常高,网络视频汇集了大量网民。而在2012年世界网民的数量已经超过25亿,国内网民的规模也达到了5.64亿。面对规模如此之大的网络视频市场,在线视频服务商们对这块大蛋糕当然是虎视眈眈。
视频行业充满机遇与挑战。2012年,国务院“宽带中国”工程,加快信息网络宽带化升级的决定出炉,北京、上海、南京、西安等城市也先后宣布了大幅度免费提升居民宽带速度。业内预计,此举将让网络视频等对网络环境有较高要求的行业迎来新的发展机遇。随着视频成为网络基础应用,大量企业需要通过自己网站进行视频推广,而传媒和教育等行业更需要构建在线视频平台。传统情况下,企业需要花费巨大的资金成本购置宽带和服务器,再雇佣技术公司来自建系统,继而组建一支IT团队对系统进行后期维护和升级。最后却是投入和产出之间的极大不平衡。
保利威视(POLYV)(保利威视,http://www.polyv.net)是在此背景下提出来的一个集视频管理、视频存储、视频转码、视频加密、视频CDN分发、视频播放器、多终端播放支持、广告系统、统计系统于一身的在线视频(SAAS)云服务平台。用户只需按需购买保利威视(POLYV)的服务,即可快速开展在线视频业务,大大节约了企业的成本并提高了效率,使多数企业的核心竞争力回归业务本身,抹平企业规模所导致的优劣差距,从而纠正互联网企业竞争资本化的趋势。保利威视(POLYV)也将大幅度降低中小企业参与竞争的门槛,为市场注入更多的活力,有利于行业的长足发展。
2 平台需求
保利威视(POLYV)在线视频云服务平台需要提供视频发布、视频转码、视频存储、视频管理、播放器设置、多终端播放、广告系统、统计系统、视频加密等基础核心功能。
2.1 视频发布
保利威视(POLYV)提供至少3种视频上传方式:通过保利威视(POLYV)管理后台进行上传,通过保利威视(POLYV)客户端进行上传,使用Flash插件上传。其中,保利威视(POLYV)客户端需要支持大文件(2G以上)上传,并支持断点续传。
2.2 视频转码
保利威视(POLYV)支持对FLV、MP4、AVI、MPG、MOV、ASF、3GP、F4V、WMV等多种格式的视频源文件进行转码,输出多种码率、多种格式的视频文件,同时需要抽取视频的关键帧,形成视频的截图集。
2.3 视频存储
提供PB级别的存储能力,多副本、多数据中心容灾备份,并提供高带宽、覆盖全国骨干节点的双CDN加速服务。
2.4 视频管理
视频信息编辑、删除、视频搜索、截图修改、视频预览、播放列表、视频信息分页显示等多项视频管理功能。
2.5 播放器设置及多终端播放
提供丰富的播放器皮肤,用户可自由调节播放器面板的颜色、透明度、视频水印、播放器LOGO,可以设置片头、片尾、播放列表的位置等,提供实时预览功能,马上看到设置效果。
视频可以在Web页面播放,也可以在iOS设备(iPad、iPhone)上播放,也可以在Android移动设备上播放。
2.6 广告和统计
提供视频片头、视频片尾、暂停播放等广告位置,支持多样广告素材,可设置广告开始、广告结束的时间。
记录视频播放量、观众量、播放时长、视频平均播放时长、人均播放量、人均播放时长、地理位置、以及每次播放的细节过程和播放行为,统计广告访问的情况。
2.7 视频加密
2.7.1具有自主知识产权的视频加密技术,具体实现原理和流程如下:
图2:视频加密实现流程
保利威视(POLYV)的视频加密技术在较高级别加密安全性的前提下实现了用户的易用体验。
3 行业应用
本节对保利威视(POLYV)平台应用的几个重点行业做简单的描述。
3.1 教育应用
3.11 行业需求:
3.12 方案优势
3.2 企业应用
图4:企业用户
3.21 行业需求:
3.22 方案优势
3.3 广电应用
3.31 行业需求:
3.32 方案优势
4 技术路线
保利威视(POLYV)是一个复杂的分布式软件系统,在技术选型方面采用目前主流的JavaEE平台。开发语言主要使用Java和Python,关系数据库使用MySQL,NoSQL数据库使用MongoDB、Redis和Memcached,其中,MongoDB主要用于存储访问日志,Redis主要用于构建具有优先级的分布式队列,Memcached用于缓存数据。保利威视(POLYV)平台的架构如图6所示。
5实现过程
本节对保利威视(POLYV)几个重要系统的实现过程进行简单描述。
5.1 分布式存储系统
在选型阶段,作者分别对Lustre、MogileFS、FastDFS、MooseFS、HDFS等开源分布式文件系统进行了调研和评测,结合保利威视(POLYV)平台对存储需求的特点,最终从性能、易用、易扩展等方面来确定使用FastDFS搭建保利威视(POLYV)的分布式文件存储系统。
FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD等操作系统。它只能通过专有的API对文件进行存取访问,不支持POSIX接口访问,不能mount使用。
总体来说,基于FastDFS搭建的保利威视(POLYV)分布式存储系统可以容易扩展到PB级别的存储能力,而且比较适合用于存储图片和视频文件。
5.2 视频转码服务
保利威视(POLYV)平台的视频转码服务流程如图8所示。
图8:视频转码序列图
用户发布视频后,视频发布服务根据用户的类型和级别、视频文件的大小、视频的码率等信息计算一个权重值,新建一个具有权重优先级的视频转码任务,并把任务加入到分布式队列中。转码机器群中的守护进程会定期从分布式队列中提取转码任务,进行视频转码,转码完成后把相关状态数据更新到数据库中。
5.3 统计系统
保利威视(POLYV)平台的视频播放和广告访问统计的处理流程如图9所示。
图9:统计流程序列图
保利威视(POLYV)的视频播放器在播放视频的过程中会将相关数据通过HTTP发送到Nginx,Nginx会将此类请求以日志的方式记录下来。保利威视(POLYV)的统计程序将定期分析Nginx的日志,提取相关数据并把数据保存到MongoDB数据库中。统计程序还将定期对MongoDB中的数据进行统计,并把统计结果转存到MySQL数据库中。
6 效果及评价
作为新兴的在线视频云服务平台,保利威视(POLYV)深入分析了不同行业企业对视频应用的个性化需求,针对教育培训、传媒、政企、电子商务分别推出了行业应用解决方案。保利威视(POLYV)自上线以来,接受了大量用户的试用,发展了数家代理商。到目前为止,平台的用户数已超过1000个,平台的服务得到了广大用户的认可。
除了解决方案的行业针对性外,保利威视(POLYV)还因其开放平台模式,深受用户的欢迎。通过保利威视(POLYV)开放的API接口,用户可以自己开发应用程序来实现个性化的需求,可以整合第三方视频增值业务平台,包括统计、分享、营销工具、广告联盟等,使网站对视频的应用更灵活和强大,网站视频价值实现最大化。
保利威视(POLYV)处于迅速发展中,在未来一段时间内,随着用户量的不断增加,保利威视(POLYV)需要对平台进行扩展和优化甚至是重构,以增强平台的服务能力。
参考文献
[1] comScore. April 2013 U.S. Online Video Rankings[OL]. 2013. http://www.comscore.com/chi/Insights/Press_Releases/2013/5/comScore_Releases_April_2013_US_Online_Video_Rankings
[2] Ffmpeg. FFmpeg Documentation[OL]. 2013. http://www.ffmpeg.org/documentation.html
[3] MongoDB. MongoDB Documentation[OL]. 2013. http://docs.mongodb.org/manual/
[4] Redis. Redis Documentation[OL]. 2013. http://redis.io/documentation
[5] Leonard Richardson, Sam Ruby. RESTful Web Services[M], O’Reilly Media, Inc, USA, 2007
[6] 余庆. 分布式文件系统FastDFS架构剖析[J]. 程序员, 2010(11).
[7] 李敏, 郭捷. 基于H.264/SVC的视频加密技术研究[J]. 信息安全与通信加密, 2012(5)
[8] 曹蕊, 陈丹, 杨帆. 帧异或视频加密算法[J]. 计算机与数字工程,2012, 40(2)
[9] 胡文波, 徐造林. 分布式存储方案的设计与研究[J]. 计算机技术与发展, 2010(4)
[10] 宋爱青. 基于Hadoop的日志分析系统的设计与实现[D]. 北京:中国地质大学, 2012
欢迎来信交流:[email protected]