專利名稱:一種云環境中基于獨立視頻幀的視頻轉碼方法
技術領域:
本發明涉及一種云環境中基于獨立視頻幀的視頻轉碼方法,屬于視頻處理技術領域。
背景技術:
隨著互聯網和多媒體技術的不斷發展和演化,多媒體應用也越來越廣泛,不同的應用對視頻編解碼器、視頻數據存儲格式、網絡傳輸設備等都有不同的要求。針對特定領域制訂的編碼標準也不盡相同,多媒體平臺對視頻格式的要求也各不相同。為了使得異構網絡之間,不同的接入設備之間,不同多媒體數據格式之間以及不同的媒體標準間和標準內能夠無縫連接、透明交換,視頻轉碼技術就顯得尤為重要。然而,隨著單個視頻數據量的急劇增大,以及流媒體等視頻應用的日益普及,傳統視頻處理方法的時間開銷越來越大,已經不能滿足人們的需求。為了能快捷、有效地播放視頻,需要將視頻轉碼成與視頻設備分辨率大小相同的視頻,這樣使得視頻處理更加復雜多變,傳統視頻處理方法的劣勢更加突出。因此傳統的視頻轉碼方法對大文件的視頻轉碼效率很低,而且不支持擴展性。
發明內容
本發明的目的是提出一種云環境中基于獨立視頻幀的視頻轉碼方法,以克服現有的傳統的視頻轉碼中的缺點,根據云計算的原理,將大文件的視頻分割成小文件視頻,在多個計算機上同時進行轉碼,提高轉碼效率,并且繼承云計算的特點,使其具有良好的擴展性。本發明提出的一種云環境中基于獨立視頻幀的視頻轉碼方法,包括以下步驟(1)將視頻文件中的視頻流與音頻流分開;(2)將上述視頻流分成η個時間長度相等的視頻流片斷,獲得每個視頻流片斷對應的起始時間和結束時間,η為大于或者等于1的整數,并為每個視頻流片斷設定一個字符串,該字符串由視頻文件名、一個空格、該視頻流片斷對應的起始時間、一個空格、該視頻流片斷對應的結束時間、一個空格、設定的轉碼后的視頻流片斷的寬度、一個空格、設定的轉碼后的視頻流片斷的高度、一個空格以及一個設定的該視頻流片斷的標識組成;(3)利用分布式編程方法,將上述字符串作為分布式編程模型中映射函數的輸入, 轉碼后得到一個輸出值,該輸出值為一個值對,該值對中包括轉碼后的視頻流片斷的名稱和該視頻流片斷的標識,該視頻流片斷的名稱包括上述的視頻文件名、設定的轉碼后的視頻流片斷的寬度和高度、一個下劃線以及上述設定的該視頻流片斷的標識,重復上述過程, 得到所有視頻流片斷的轉碼后的值對;(4)將所有視頻流片斷的轉碼后的值對作為分布式編程模型中規約函數的輸入, 將值對中視頻流片斷的標識按照升序排列,然后按照排列順序將與標識相對應的視頻流片斷依次合并,生成一段完整的沒有聲音的視頻流,并為該完整的沒有聲音的視頻流設定一個名稱,該名稱由上述視頻文件名、設定的轉碼后的視頻流寬度和高度;(5)采用視頻處理工具,將上述完整的沒有聲音的視頻流與上述音頻流根據時間戳進行同步,生成最終的視頻文件,并輸出。本發明提出的云環境中基于獨立視頻幀的視頻轉碼方法,其優點是1、本發明方法根據云計算的原理把視頻分成多份,分配到集群中的計算節點同時對這些視頻片段執行轉碼操作,從而提高了視頻轉碼的效率。2、本發明方法利用云環境對視頻進行轉碼,繼承了云計算的特點,具有很強的擴展性和安全性。
圖1是本發明方法的原理框圖。圖2是本發明方法分布式編程的過程示意圖。
具體實施例方式本發明提出的云環境中基于獨立視頻幀的視頻轉碼方法,其原理框圖如圖1所示,包括以下各步驟(1)將視頻文件中的視頻流與音頻流分開。(2)將上述視頻流分成η個時間長度相等的視頻流片斷,獲得每個視頻流片斷對應的起始時間和結束時間,η為大于或者等于1的整數,并為每個視頻流片斷設定一個字符串,該字符串由視頻文件名、一個空格、該視頻流片斷對應的起始時間、一個空格、該視頻流片斷對應的結束時間、一個空格、設定的轉碼后的視頻流片斷的寬度、一個空格、設定的轉碼后的視頻流片斷的高度、一個空格以及一個設定的該視頻流片斷的標識組成。在本實施例中,η為集群中所有計算機數量的2倍;為視頻流片斷設定的字符串格式如“ΧΧ 0:01:000:30 420 3601 ”,表示對文件名為χχ的視頻文件從1分鐘處開始,長度為30秒的視頻流片斷執行轉碼操作,轉碼后的視頻流片斷的寬度是420,高度是360,轉碼后的視頻流片斷標識為1。(3)利用分布式編程方法,將上述字符串作為分布式編程模型中映射函數的輸入, 轉碼后得到一個輸出值,該輸出值為一個值對,該值對中包括轉碼后的視頻流片斷的名稱和該視頻流片斷的標識,該視頻流片斷的名稱包括上述的視頻文件名、設定的轉碼后的視頻流片斷的寬度和高度、一個下劃線以及上述設定的該視頻流片斷的標識,重復上述過程, 得到所有視頻流片斷的轉碼后的值對。在本實施例中,分布式編程方法的原理框圖如圖2所示,先將大文件分成η個小文件,η為大于或等于1的整數,然后在計算機上同時對η個小文件進行處理,最后再合并處理得到的結果。映射函數的輸出為一個值對,如<χχ420360_1,1>,χχ420360_1為轉碼后的視頻流片斷的名稱,其中χχ表示視頻文件名,420表示轉碼后的視頻流片斷的寬度,360表示轉碼后的視頻流片斷的高度,1表示視頻流片斷的標識。(4)將所有視頻流片斷的轉碼后的值對作為分布式編程模型中規約函數的輸入, 將值對中視頻流片斷的標識按照升序排列,然后按照排列順序將與標識相對應的視頻流片斷依次合并,生成一段完整的沒有聲音的視頻流,并為該完整的沒有聲音的視頻流設定一個名稱,該名稱由上述視頻文件名、設定的轉碼后的視頻流寬度和高度。在本實施例中,完整的沒有聲音的視頻流的名稱格式,如“XX420360”,其中xx表示視頻文件名,420表示轉碼后的視頻流片斷的寬度,360表示轉碼后的視頻流片斷的高度。(5)采用視頻處理工具,將上述完整的沒有聲音的視頻流與上述音頻流根據時間戳進行同步,生成最終的視頻文件,并輸出。
權利要求
1. 一種云環境中基于獨立視頻幀的視頻轉碼方法,其特征在于該方法包括以下步驟(1)將視頻文件中的視頻流與音頻流分開;(2)將上述視頻流分成η個時間長度相等的視頻流片斷,獲得每個視頻流片斷對應的起始時間和結束時間,η為大于或者等于1的整數,并為每個視頻流片斷設定一個字符串, 該字符串由視頻文件名、一個空格、該視頻流片斷對應的起始時間、一個空格、該視頻流片斷對應的結束時間、一個空格、設定的轉碼后的視頻流片斷的寬度、一個空格、設定的轉碼后的視頻流片斷的高度、一個空格以及一個設定的該視頻流片斷的標識組成;(3)利用分布式編程方法,將上述字符串作為分布式編程模型中映射函數的輸入,轉碼后得到一個輸出值,該輸出值為一個值對,該值對中包括轉碼后的視頻流片斷的名稱和該視頻流片斷的標識,該視頻流片斷的名稱包括上述的視頻文件名、設定的轉碼后的視頻流片斷的寬度和高度、一個下劃線以及上述設定的該視頻流片斷的標識,重復上述過程,得到所有視頻流片斷的轉碼后的值對;(4)將所有視頻流片斷的轉碼后的值對作為分布式編程模型中規約函數的輸入,將值對中視頻流片斷的標識按照升序排列,然后按照排列順序將與標識相對應的視頻流片斷依次合并,生成一段完整的沒有聲音的視頻流,并為該完整的沒有聲音的視頻流設定一個名稱,該名稱由上述視頻文件名、設定的轉碼后的視頻流寬度和高度;(5)采用視頻處理工具,將上述完整的沒有聲音的視頻流與上述音頻流根據時間戳進行同步,生成最終的視頻文件,并輸出。
全文摘要
本發明涉及一種云環境中基于獨立視頻幀的視頻轉碼方法,屬于視頻處理技術領域。該方法是把視頻文件轉化為原始的視頻,使得視頻幀之間不存在互相參考或依賴,把視頻按視頻幀數平均分成若干視頻片段,然后利用分布式編程模型調度這些視頻片段到集群中的計算節點進行轉碼操作,最后合并轉碼后視頻片段,輸出轉碼后的視頻文件。本發明方法根據云計算的原理把視頻分成多份,分配到集群中的計算節點同時對這些視頻片段執行轉碼操作,從而提高了視頻轉碼的效率。本發明方法利用云環境對視頻進行轉碼,繼承了云計算的特點,具有很強的擴展性和安全性。
文檔編號H04N7/26GK102333219SQ20111031932
公開日2012年1月25日 申請日期2011年10月19日 優先權日2011年10月19日
發明者劉璋, 岳永勝, 王建民, 王朝坤 申請人:清華大學