一種云環(huán)境下的視頻轉(zhuǎn)碼系統(tǒng)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種云環(huán)境下的視頻轉(zhuǎn)碼系統(tǒng)方法。
【背景技術(shù)】
[0002]隨著移動互聯(lián)網(wǎng)的不斷發(fā)展,視頻傳播的平臺越來越多,不同平臺支持的視頻格式也越來越多,由于網(wǎng)絡(luò)環(huán)境、終端類型、視頻格式的不同,對視頻內(nèi)容的編碼格式進(jìn)行轉(zhuǎn)換變得必不可少。
[0003]傳統(tǒng)情況下是將視頻存儲和視頻轉(zhuǎn)碼放在不同的系統(tǒng)中,專門的視頻存儲系統(tǒng)成本昂貴,長期維護(hù)消耗量大,而由于轉(zhuǎn)碼系統(tǒng)很多情況下采用的是單一服務(wù)器,這在需要轉(zhuǎn)碼大量視頻時耗時太長,對硬件支持需求較高,同時兩個系統(tǒng)之間頻繁的數(shù)據(jù)傳輸會加大網(wǎng)絡(luò)負(fù)載。由此可見,傳統(tǒng)的視頻轉(zhuǎn)碼方式難以滿足大批量的視頻轉(zhuǎn)碼,因此,有必要進(jìn)行分布式視頻轉(zhuǎn)碼的研宄。分布式視頻轉(zhuǎn)碼軟件和隨需視頻轉(zhuǎn)碼服務(wù)的推出使得媒體服務(wù)提供商在提供高質(zhì)量的視頻轉(zhuǎn)碼服務(wù)的同時降低了視頻轉(zhuǎn)碼的成本。
[0004]Hadoop是在云計算領(lǐng)域運(yùn)用廣泛的分布式基礎(chǔ)架構(gòu),可靠性和可擴(kuò)展性高。Hadoop處理任務(wù)時,用戶將Job提交給Hadoop系統(tǒng),Hadoop會將用戶提交的作業(yè)分配給多個子節(jié)點(diǎn)并行處理,這種分布式的處理方式無疑會加快作業(yè)的處理,將分布式的方式運(yùn)用在大量的視頻轉(zhuǎn)碼中也可以加快視頻的轉(zhuǎn)碼速度。Hadoop主要包括兩個方面的內(nèi)容,HDFS (Hadoop Distributed File System)和 MapReduce。HDFS 按照預(yù)先配置的情況進(jìn)行數(shù)據(jù)的多節(jié)點(diǎn)備份,保證數(shù)據(jù)存儲的可靠性。MapReduce是一個分布式的計算框架,負(fù)責(zé)的是Hadoop集群中作業(yè)的調(diào)度,程序員不需要考慮集群中的數(shù)據(jù)是如何分布的,也不需要擔(dān)心集群中的各個節(jié)點(diǎn)是否可靠,只要按照MapReduce框架中對應(yīng)的處理函數(shù)就可以實(shí)現(xiàn)分布式的計算。采用Hadoop進(jìn)行分布式視頻轉(zhuǎn)碼可以在提高視頻轉(zhuǎn)碼效率,保證服務(wù)質(zhì)量的同時降低視頻轉(zhuǎn)碼的開銷。本發(fā)明利用Hadoop的這些特性實(shí)現(xiàn)基于Hadoop的分布式視頻轉(zhuǎn)碼,用來滿足大量的視頻轉(zhuǎn)碼需求。
[0005]OpenStack是云計算平臺的一個開源解決方案,目的是實(shí)現(xiàn)平臺構(gòu)建的簡單化,規(guī)模的可擴(kuò)展以及功能盡可能的強(qiáng)大。OpenStack通過一系列相關(guān)的組件來提供一個基礎(chǔ)設(shè)施即服務(wù)(IaaS)的平臺,讓任何人,任何組織可以簡單的通過硬件設(shè)施部署云計算集群環(huán)境,以實(shí)現(xiàn)各種云服務(wù)。OpenStack借鑒了亞馬遜AWS的成功經(jīng)驗(yàn),所有服務(wù)均是用一種標(biāo)準(zhǔn)化的服務(wù)接口來實(shí)現(xiàn)的,并且OpenStack的提出有利于云計算形成更加標(biāo)準(zhǔn),更加嚴(yán)格的服務(wù)提供方式。OpenStack具有相當(dāng)靈活的服務(wù)理念,可以支持多虛擬機(jī)的管理和擴(kuò)展,所以O(shè)penStack被越來越多的服務(wù)提供商所采用并運(yùn)用于實(shí)踐中。
[0006]Sahara是OpenStack的一個社區(qū)服務(wù),Sahara的實(shí)現(xiàn)是對OpenStack在構(gòu)建大數(shù)據(jù)服務(wù)能力上的不懈努力,使得用戶能夠輕松的實(shí)現(xiàn)在OpenStack基礎(chǔ)設(shè)施即服務(wù)的平臺上搭建彈性集群服務(wù)。該項(xiàng)目旨在為OpenStack用戶提供一種簡單、快捷地部署以及管理Hadoop集群的方案,作為云計算和大數(shù)據(jù)的橋梁之一,Sahara無疑將推動OpenStack和Hadoop的完美整合,加快Hadoop在OpenStack上的開發(fā)和部署進(jìn)程。
【發(fā)明內(nèi)容】
[0007]針對上述技術(shù)問題,本發(fā)明所要解決的技術(shù)問題是提供一種基于云平臺環(huán)境,運(yùn)用OpenStack和Hadoop的特性將集群的資源進(jìn)行有效調(diào)度,能夠有效提高分布式視頻轉(zhuǎn)碼工作效率的云環(huán)境下的視頻轉(zhuǎn)碼系統(tǒng)方法。
[0008]本發(fā)明為了解決上述技術(shù)問題采用以下技術(shù)方案:本發(fā)明設(shè)計了一種云環(huán)境下的視頻轉(zhuǎn)碼系統(tǒng)方法,包括如下步驟:
步驟001.在物理主機(jī)上配置OpenStack云平臺環(huán)境;
步驟002.在OpenStack云平臺環(huán)境上配置Hadoop集群構(gòu)成視頻轉(zhuǎn)碼系統(tǒng);
步驟003.客戶端將視頻處理任務(wù)上傳至視頻轉(zhuǎn)碼系統(tǒng);
步驟004.視頻轉(zhuǎn)碼系統(tǒng)中的作業(yè)配置模塊接收視頻處理任務(wù),按接收順序構(gòu)成作業(yè)隊(duì)列,并且作業(yè)配置模塊根據(jù)作業(yè)配置機(jī)制分別獲得對應(yīng)各個視頻處理任務(wù)的作業(yè)處理配置信息;同時,視頻分割管理模塊根據(jù)各個視頻處理任務(wù)分別對應(yīng)的作業(yè)處理配置信息,分別針對各個視頻處理任務(wù)進(jìn)行視頻分割,分別獲得對應(yīng)各個視頻處理任務(wù)的各個視頻作業(yè)分片;
步驟005.視頻轉(zhuǎn)碼系統(tǒng)中的視頻傳輸模塊將分別對應(yīng)各個視頻處理任務(wù)的各個視頻作業(yè)分片上傳至HDFS分布式文件存儲系統(tǒng)中進(jìn)行存儲;
步驟006.作業(yè)調(diào)度器根據(jù)作業(yè)隊(duì)列中視頻處理任務(wù)的順序,依序從HDFS分布式文件存儲系統(tǒng)中讀取對應(yīng)其中一個視頻處理任務(wù)的各個視頻作業(yè)分片,并通過Map框架進(jìn)行視頻轉(zhuǎn)碼處理;
步驟007.針對經(jīng)Map框架完成視頻轉(zhuǎn)碼操作的各個視頻作業(yè)分片,通過Reduce框架進(jìn)行視頻合成操作;
步驟008.刪除作業(yè)隊(duì)列中上述處理的視頻處理任務(wù)。
[0009]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟001中在物理主機(jī)上配置的OpenStack云平臺環(huán)境,包括一個控制節(jié)點(diǎn)和多個計算節(jié)點(diǎn),并且每一個節(jié)點(diǎn)均使用雙網(wǎng)卡,一個作為OpenStack云平臺環(huán)境的網(wǎng)絡(luò),是控制節(jié)點(diǎn)與計算節(jié)點(diǎn)之間的通信網(wǎng)絡(luò),一個作為用戶提供外部服務(wù)的網(wǎng)絡(luò);所述OpenStack云平臺環(huán)境中將nova_compute和nova-network兩個組件安裝在一起;并且所述OpenStack云平臺環(huán)境以用戶的形式來授權(quán)服務(wù)給用戶,用戶可以根據(jù)需求申請多個虛擬機(jī),用戶有權(quán)限管理相應(yīng)的虛擬機(jī)。
[0010]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟002具體包括如下步驟:
步驟00201.在OpenStack云平臺環(huán)境上安裝Sahara組件;
步驟00202.配置OpenStack云平臺環(huán)境中的keystone端點(diǎn)信息;
步驟00203.向OpenStack云平臺環(huán)境中的Glance組件上傳相應(yīng)的鏡像文件;
步驟00204.通過注冊服務(wù)向Sahara組件注冊上述所上傳的鏡像文件;
步驟00205.創(chuàng)建節(jié)點(diǎn)組模板,定義節(jié)點(diǎn)組信息;
步驟00206.根據(jù)穩(wěn)定性和負(fù)載,選定節(jié)點(diǎn)進(jìn)行Hadoop集群模板的創(chuàng)建;
步驟00207.根據(jù)Hadoop集群模板,創(chuàng)建Hadoop集群,構(gòu)成視頻轉(zhuǎn)碼系統(tǒng)。
[0011]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟004中,視頻分割管理模塊根據(jù)各個視頻處理任務(wù)分別對應(yīng)的作業(yè)處理配置信息,分別針對各個視頻處理任務(wù)根據(jù)視頻大小進(jìn)行視頻分割,其中,通過分析計算視頻處理任務(wù)的幀數(shù)和體積,根據(jù)對應(yīng)作業(yè)處理配置信息的分割個數(shù)獲得對應(yīng)視頻處理任務(wù)進(jìn)行視頻分割的時間段,以此針對對應(yīng)視頻處理任務(wù)進(jìn)行視頻分割,分別獲得對應(yīng)各個視頻處理任務(wù)的各個視頻作業(yè)分片。
[0012]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟005中,視頻轉(zhuǎn)碼系統(tǒng)中的視頻傳輸模塊根據(jù)視頻作業(yè)分片的轉(zhuǎn)碼工作量、帶寬、視頻作業(yè)分片到Hadoop集群各節(jié)點(diǎn)之間的傳輸距離,以及視頻轉(zhuǎn)碼系統(tǒng)中虛擬機(jī)節(jié)點(diǎn)的負(fù)載,將分別對應(yīng)各個視頻處理任務(wù)的各個視頻作業(yè)分片上傳至HDFS分布式文件存儲系統(tǒng)中進(jìn)行存儲。
[0013]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟005中,視頻轉(zhuǎn)碼系統(tǒng)針對上傳的各個視頻作業(yè)分片進(jìn)行備份。
[0014]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟006中,首先根據(jù)作業(yè)隊(duì)列中視頻處理任務(wù)的順序,由作業(yè)隊(duì)列向NameNode節(jié)點(diǎn)發(fā)出視頻轉(zhuǎn)碼處理的請求,并從NameNode上獲取對應(yīng)其中一個視頻處理任務(wù)的各個視頻作業(yè)分片位于HDFS分布式文件存儲系統(tǒng)中的存儲位置;然后作業(yè)調(diào)度器根據(jù)存儲位置獲得對應(yīng)視頻處理任務(wù)的各個視頻作業(yè)分片,并解析出對應(yīng)各個視頻作業(yè)分片視頻分割形成的數(shù)據(jù)塊鍵值對,形成Map框架針對對應(yīng)視頻作業(yè)分片進(jìn)行視頻轉(zhuǎn)碼處理。
[0015]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟006中,通過中間結(jié)果調(diào)度器監(jiān)測與Map框架同一節(jié)點(diǎn)進(jìn)行視頻轉(zhuǎn)碼處理的結(jié)果,并將Map框架同一節(jié)點(diǎn)進(jìn)行視頻轉(zhuǎn)碼處理的結(jié)果進(jìn)行合并,實(shí)現(xiàn)針對各個視頻作業(yè)分片的視頻轉(zhuǎn)碼處理。
[0016]作為本發(fā)明的一種優(yōu)選技術(shù)方案:所述步驟007中