熊曉蕓,段良濤,王金龍
(青島理工大學 計算機工程學院,山東 青島 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.