熊晓芸,段良涛,王金龙
(青岛理工大学 计算机工程学院,山东 青岛 266033)
云平台上AVS视频转码系统的设计与实现
熊晓芸,段良涛,王金龙
(青岛理工大学 计算机工程学院,山东 青岛266033)
摘要:随着网络与宽带技术的飞速发展,数字视频呈现出海量化与多样化的特征。AVS作为我国自主音视频标准,编码效率优于同期国际标准,在保证图像质量的同时,便于视频数据的存储与传输。为了将数字视频进行高效的AVS转码,提出并实现了一种云平台上的AVS转码系统,该系统采用音视频分离方法将其他格式视频文件快速转码成AVS格式,并避免了转码文件中音视频内容间不同步问题,实验结果证明了方案的有效性。
关键词:云平台;AVS;视频转码;Hadoop
随着网络技术、宽带技术以及数字视频压缩技术的飞速发展,当前视频呈现出数据海量化、播放终端多样化的特点,据统计,视频数据已经占网络流量的80%左右,这些视频主要采用MPEG、H.26x以及AVS等进行编码。AVS作为我国具有自主知识产权的视频编码标准,编码效率优于同期国际标准[1],在保证图像质量的同时,更适合视频数据的存储与传输。目前,大量前端视频设备与视频网站提供对AVS标准的支持,但数字视频大多以MPEG、H.264压缩编码格式存储,将视频内容进行AVS格式的转码具有重要意义。
视频转码主要有三种解决方案:单服务器转码、分布式集群转码和基于云平台的转码。由于受单机计算能力的限制,单服务器转码方案效率较低。而分布式集群转码则存在软、硬件投资成本大,同时转码任务以单个任务为分派单位,往往适合大批量转码。不管是单任务的转码还是批量转码,现在普遍采用云平台方案。文献[2-6]研究了云平台上流媒体数据的存储、转码、分发以及实现过程中所采用的策略,但他们主要针对目前流行的视频编码格式,如MPEG系列及H.26x系列的编码标准,没有涉及对AVS的支持。
本文设计并实现了云平台上的AVS视频转码系统,其采用廉价服务器,将AVI,MPEG4,FLV等常用视频格式转换成符合AVS编码标准的CAVS(Chinese AVS)格式,对AVS在视频网站的应用具有实际意义。
1系统总体设计
系统主要由Web服务器、数据库服务器以及Hadoop集群三部分组成。最重要的AVS并行转码工作由Hadoop集群承担。系统总体架构如图1所示。
图1 系统总体架构图
Web服务器负责对用户上传的常见格式原始视频文件进行分割预处理,以便在集群中并行转码,主要包括三方面工作:1)将原始视频文件进行音视频分离;2)对分离后的音频文件进行单机转码;3)将分离后的视频文件分割成若干个视频片段,再将这些视频片段以及转码后的音频文件上传至Hadoop集群,同时将视频文件相关信息写入数据库。
视频属于非结构化数据,帧与帧之间存在着时间关联性,对视频文件的分割主要有两种方式:一是直接将原始视频数据分割成若干视频片段;二是对原始视频先进行音视频分离后,再将分离后的视频文件进行分割[7]。为了避免转码文件出现音视频内容间不同步的问题,笔者选择了第二种方式。
视频分离后产生的音频文件因为本身不大,所需转码操作时间也比较短,再考虑到分割及合并的时间开销,采用集群方式并行转码并没有太大的优势,所以本方案选择单机转码。
Hadoop集群主要负责将上传至HDFS的视频片段分发至各节点,用MapReduce计算框架执行AVS并行转码及转码后的合并工作,再将合并后的CAVS格式视频文件分布式存储在HDFS中[8-9]。同样,完成这部分工作后,也需要将转码后的视频文件信息写入数据库中。
数据库服务器主要用于存储两方面的内容:用户信息和文件信息。用户信息是用户的描述信息,如用户的个人信息及权限等级等。通过对用户信息的描述,可实现对用户的管理与控制。文件信息是视频文件的描述信息,包括视频本身的信息(如名称、格式、大小、时长、简介、类型等),视频状态信息(如审核中、已发布、转码中、未通过等),以及视频文件在集群上存储的相关信息(集群上的存储路径、所属用户等)。
从视频处理的角度,系统业务流程将AVS视频转码系统划分成3个功能模块:视频预处理模块、视频上传模块、AVS并行转码模块,如图2所示。
2系统详细设计
2.1视频预处理模块
视频预处理模块主要进行原始视频文件的音视频分离、音频文件单机转码、视频文件分割。
为了减少文件在Hadoop集群中多次拷贝,将视频预处理放在Web服务器上执行。以视频文件分割为例,用户如果直接将视频文件上传至Hadoop集群,在Hadoop客户端看到的只是一个逻辑文件,实际上文件是以数据块(默认为64 Mbyte)的形式分布式存储在HDFS中。进行视频分割时,需要将视频文件下载到执行分割任务的节点。文件分割成多个视频片段后又需要将多个视频文件再次上传到HDFS上进行存储。
视频预处理具体算法如下:
图2 视频处理流程及模块划分图
1)接受用户上传的源视频文件,放到相应的视频文件预处理队列中,采用先来先服务的调度策略,也可以根据实际需要采用高优先级或其他的调度策略;
2)取出视频文件预处理队列队首的视频,用Ffmpeg工具进行音视频分离,生成相应的音频文件与视频文件;
3)对音频文件进行MP3格式转码;
4)获取视频文件的时长,根据分片数,计算出每个视频片段的时长;
5)按照步骤4)设置参数,将视频文件分割成Chuck_x(x=1,2,…,n)视频片段,并存储Chuck_x文件信息,作为接下来进入AVS并行转码阶段时Map的输入。
2.2视频上传模块
视频上传模块将视频预处理模块分割好的视频片段Chuck_x以及转码后的音频文件从Web服务器上传到HDFS上进行存储。这个模块通过调用HDFS API,根据分割后视频片段路径,将若干视频片段Chuck_x以及转码后的音频文件上传到HDFS上;上传文件的同时将用户文件列表的信息更新到MongoDB数据库。
视频文件上传的流程如图3所示,图中标识的①和②为用户进行视频上传前的用户信息验证,这部分信息是用户信息,存储在Mysql数据库中;③和④为用户通过HDFS API向HDFS上传分割后的视频片段文件;⑤和⑥为维护用户的文件信息列表,这部分传递的信息是属于文件信息,存储在MongoDB中。
图3 视频文件上传流程
2.3AVS并行转码模块
AVS并行转码模块由Map与Reduce两部分组成,负责将上传到HDFS节点上的视频片段Chuck_x,用MapReduce计算框架进行并行转码,生成转码后的视频片段Chuckm_x(x=1,2,…,n),然后将Chuckm_x合并成一个CAVS格式的视频文件,再将它分布式存储在HDFS中。
图4 AVS并行转码流程图
AVS并行转码在Hadoop集群中完成,其流程如图4所示。
通过Hadoop客户端可以查看上传的视频片段Chuck_x,在NameNode中存放着这些视频片段在HDFS上存储位置的元信息。
1)首先,JobTracker负责任务的分派,它将Map转码任务分发到存放视频片段文件的结点,JobTracker分派了多少个视频片段,就会产生多少个Map任务;
2)转码任务由DataNode上的TaskTracker执行,Map任务用Ffmpeg工具对本结点上的视频片段进行AVS转码,多个DataNode上的Map任务并行执行;
3)转码后生成的视频片段文件Chuckm_x被存储在本结点上;
4)Map任务执行完后,JobTracker启动Reduce任务,先将各节点的Chuckm_x片段远程下载到本机,然后将各个视频片段文件Chuckm_x进行合并,生成一个CAVS格式的视频文件;
5)CAVS格式的视频文件被上传到HDFS上分布式存储。存储后,删除NameNode上的视频片段文件Chuck_x,元数据与文件系统的内容均会被刷新,文件系统中显示转码后的CAVS格式视频文件,同样元数据中保存的也是该文件在HDFS上的存储位置信息。
最后,转码后的视频信息存储在MongoDB数据库中。
3实验结果
3.1实验环境及配置
Web服务器与数据库服务器共用一台计算机,其软硬件配置信息如表1所示。
表1Web服务器与数据库服务器软硬件配置信息表
硬件处理器:IntelCorei5-2400(4核),3.1GHz内 存:12.0Gbyte软件操作系统:Win7x64关系数据库系统:MysqlV5.5No-SQL数据库系统:MongoDB32bit,V2.6.5JDK:jdk_1.6Ffmpeg:V1.2
用3台PC搭建Hadoop集群。集群中共设置了4个节点,1个NameNode和3个DataNode。3台PC的软硬件配置信息如表2所示。
表2Hadoop集群软硬件配置信息表
硬件处理器:Intel奔腾双核E5500,2.8GHz内 存:2.0Gbyte软件操作系统:CentOS6.4(32bit)JDK:jdk_1.6Hadoop:Hadoop-0.20.0Ffmpeg:V1.2,集成了AVS编解码插件
Hadoop集群设备配置信息如表3所示。
表3Hadoop集群设备配置信息表
主机名IP地址作用内存/Gbyte硬盘/GbyteMaster.Hadoop192.168.1.2NameNode,JobTracker2250Master.Hadoop192.168.1.2DataNode,TaskTracker2250Slave1.Hadoop192.168.1.3DataNode,TaskTracker2250Slave2.Hadoop192.168.1.4DataNode,TaskTracker2250
3.2实验结果
在上述实验环境中部署并安装了AVS转码系统,用户在客户端界面上向Web服务器上传需要进行AVS转码的视频,界面默认加载AVI格式视频,如图5a所示;同时还需要指定AVS转码后的输出路径,如图5b所示。开始执行“转换AVS”期间,用户可以查看视频上传的进度或状态。
a 用户选择上传的视频文件 b 选择转码后的输出目录 图5 用户上传视频文件(截图)
进行AVS转码时,可从Hadoop 作业后台上查看转码情况,如图6所示,图6a为开始进行AVS转码时的截图,图6b为转码结束后的截图,图中用箭头标识的位置显示的是转码后视频文件的大小。
4结论
近几年来,随着网络条件持续地得到改善,数字视频呈现出数据海量化与多样化的特征。作为我国自主产权的AVS视频编解码标准,在编码性能方面已经具有国际先进水平,在保证图像质量的同时,便于视频数据的存储与传输。为了解决数字视频AVS格式转码的问题,本文设计并实现了一种云平台上的高效AVS转码系统,采用Hadoop平台,利用MapReduce计算框架将其他格式视频快速转码为AVS格式视频,系统采用音视频分离的方法,避免了转码文件出现音视频内容间不同步的问题。
a 开始进行转码时的截图
b 转码结束后的截图图6 AVS视频转码后台截图
参考文献:
[1]马思伟. AVS视频编码标准技术回顾及最新发展[J]. 计算研究与发展,2015, 52(1):27-37.
[2]刘炳均,戴云松. 基于超算平台和Hadoop的并行转码方案设计[J]. 电视技术,2014,38(7):123-126.
[3]王嶺,张世乐,陆伟,等. 基于云计算框架的视频转码系统[J]. 计算机应用与软件,2013,30(3):111-113.
[4]李亮. 全台网环境下的云视频素材转码系统的设计[J]. 电视技术,2013,37(10):67-69.
[5]KIM M, HAN S, CUI Y, et al. CloudDMSS: robust Hadoop-based multimedia streaming service architecture for a cloud computing environment[J]. Cluster comput, 2014(17): 605-628.
[6]TUNG C, YANG K-L, HUANG J-C, et al. On construction of cloud IaaS using KVM and opennebula for video services[C]//Proc. 41st International Conference on Parallel Processing Workshops. [S.l.]:IEEE Press, 2012:212-221.
[7]张树军,刘希斌,张仕强. 对音视频文件进行转码处理的方法和设备:CN103929655A[P]. 2014-07-16.
[8]李晓波. 基于Hadoop的海量视频数据存储及转码系统的研究与设计[D]. 杭州:浙江工业大学,2013.
[9]张浩. MapReduce编程模型在云海量视频转码中的研究[D]. 成都:成都理工大学,2012.
熊晓芸(1972— ),女,副教授,主要研究方向为普适计算、计算机网络等;
段良涛(1990— ),硕士生,主要研究方向为数据库,并行计算等;
王金龙(1979— ),教授,本文通讯作者,主要研究方向为数据挖掘、普适计算、大数据技术等。
责任编辑:闫雯雯
Design and implementation of AVS video transcoding system on cloud platform
XIONG Xiaoyun, DUAN Liangtao, WANG Jinlong
(CollegeofComputerEngineering,QingdaoTechnologicalUniversity,ShandongQingdao266033,China)
Abstract:With the rapid development of Internet and broadband technology, the digitized video involves huge volumes data, with more and more diverse. As the audio and video coding standard owned by China, the coding efficiency of AVS is better than current international standards. It can ensure the image quality, and is convenient for video data storage and transmission. In order to transcode the digital video into AVS efficiently, a kind of AVS transcoding system on cloud platform is presented and implemented in this paper. Employing the method of separation of audio and video, the system transcodes other compressed video into AVS video. With this method, the synchronization between audio and video content in transcoded video is guaranteed. The experimental results show the effectiveness of the method.
Key words:cloud media; AVS; video transcoding; Hadoop
中图分类号:TP391
文献标志码:A
DOI:10.16280/j.videoe.2016.02.013
基金项目:国家科技支撑计划课题(2012BAH79F03)
作者简介:
收稿日期:2015-08-21
文献引用格式:熊晓芸,段良涛,王金龙. 云平台上AVS视频转码系统的设计与实现[J].电视技术,2016,40(2):69-73.
XIONG X Y, DUAN L T, WANG J L. Design and implementation of AVS video transcoding system on cloud platform[J].Video engineering, 2016,40(2):69-73.