專利名稱:一種多媒體文件的緩存方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)多媒體傳輸和存儲技術(shù)領(lǐng)域,尤其涉及一種多媒體文件的緩存方法及系統(tǒng)。
背景技術(shù):
傳統(tǒng)的互聯(lián)網(wǎng)多媒體播放技術(shù)對于影視文件的內(nèi)容需求是順序遞增的,但隨著互聯(lián)網(wǎng)多媒體技術(shù)的迅速發(fā)展及網(wǎng)絡(luò)帶寬環(huán)境的改善,用戶對多媒體使用要求不斷提高,具體表現(xiàn)在對于影視點播高清標準要求越來越高,影視碼率越來越大,影視文件也越來越大,高清點播緩存技術(shù)要求也更高。由于點播需要滿足靈活拖動使得請求影視文件的內(nèi)容偏移位置變得隨機,而不是順序遞增,點播時播放器也有可能先獲得影視文件末尾的索引信息然后再請求音視頻數(shù)據(jù),也使得影視文件的請求位置隨機而不是順序遞增。如果使用常規(guī)原文件緩存,必然會造成立即需要分配大存貯空間,外部存貯立即分配大存空間有兩大問題,一是分配大空間需要比較長的時間運算和分配而影響點播的實時性,二是分配的大空間很多未立即使用,如果隨機點播只播放部分內(nèi)容就退出,分配到的空間被浪費。
發(fā)明內(nèi)容
為解決上述技術(shù)問題,本發(fā)明提出了一種多媒體文件的緩存方法及系統(tǒng),采用本方法和系統(tǒng),能夠滿足高清點播系統(tǒng)對于互聯(lián)網(wǎng)影視緩存技術(shù)的應(yīng)用要求,保證無論如何隨機請求影視大文件數(shù)據(jù)時,都確保緩存線性增長,避免外部存貯即時分配大空間消耗大多時間而影響網(wǎng)絡(luò)傳輸點播的實時性,并且能夠節(jié)省存儲空間。本發(fā)明的主要思想在于采用附加文件頭的形式組織管理隨機的影視文件,對影視數(shù)據(jù)進行線性緩存,緩存文件由附加文件頭和影視數(shù)據(jù)實體組成,當點播影視文件時,根據(jù)點播的內(nèi)容查找附加文件頭中的信息,再直接搜索到相應(yīng)的影視文件塊,這樣能夠快速定位點播內(nèi)容并且節(jié)省緩存空間。為達此目的,本發(fā)明采用以下技術(shù)方案作為本發(fā)明的一個方面,提供了一種多媒體文件的緩存方法,包括以下步驟A、獲取多媒體文件以及所述多媒體文件容量信息;B、建立緩存文件頭,所述緩存文件頭中包括緩存塊大小和多媒體文件塊索引表;C、根據(jù)所述多媒體文件容量信息和所述緩存塊大小將所述影視文件平均切分為不少于一個的多媒體文件塊,并給每個影視文件塊一個編號;D、將所述編號和對應(yīng)的多媒體文件塊存儲信息存入多媒體文件塊索引表;E、將所述各影視文件塊按所述編號排列在所述緩存文件頭的后面,生成所述影視文件的緩存文件。作為上述技術(shù)方案的優(yōu)選,還包括步驟F、點播所述多媒體文件時,先讀取所述多媒體文件塊索引表,根據(jù)多媒體文件塊索引表中的信息讀取對應(yīng)的影視文件塊信息。 作為上述技術(shù)方案的優(yōu)選,所述步驟B中緩存文件頭還包括緩存文件標志、字節(jié)序標志、版本號、文件頭大小、多媒體文件原始數(shù)據(jù)大小和已緩存數(shù)據(jù)大小。作為上述技術(shù)方案的優(yōu)選,所述步驟F還包括,當所述多媒體文件塊索引表中沒有點播的影視文件塊信息時,轉(zhuǎn)至步驟A。作為本發(fā)明的另一個方面,還提供了一種多媒體文件的緩存系統(tǒng),包括多媒體文件信息獲取裝置、緩存文件頭生成裝置、多媒體文件切分裝置和緩存文件生成裝置,其中所述多媒體文件信息獲取裝置,用于獲取多媒體文件以及所述多媒體文件容量信息;所述緩存文件頭生成裝置,用于建立緩存文件頭,所述緩存文件頭中包括緩存塊大小和多媒體文件塊索引表,以及將多媒體文件塊編號和對應(yīng)的多媒體文件塊存儲信息存入多媒體文件塊索引表;所述多媒體文件切分裝置,用于根據(jù)所述多媒體文件容量信息和所述緩存塊大小將所述影視文件平均切分為不少于一個的多媒體文件塊,并給每個影視文件塊一個編號;所述緩存文件生成裝置,用于將所述各影視文件塊按所述編號排列在所述緩存文件頭的后面,生成所述影視文件的緩存文件。作為上述技術(shù)方案的優(yōu)選,還包括緩存文件讀取裝置,用于點播所述多媒體文件時,先讀取所述多媒體文件塊索引表,根據(jù)多媒體文件塊索引表中的信息讀取影視文件塊信息。作為上述技術(shù)方案的優(yōu)選,所述緩存文件頭生成裝置中,緩存文件頭還包括緩存文件標志、字節(jié)序標志、版本號、文件頭大小、多媒體文件原始數(shù)據(jù)大小和已緩存數(shù)據(jù)大小。作為上述技術(shù)方案的優(yōu)選,所述緩存文件讀取裝置還用于,當所述多媒體文件塊索引表中沒有點播的影視文件塊信息時,建立新的緩存文件塊信息。本發(fā)明的技術(shù)效果在于通過針對大容量影音文件建立緩存文件,通過讀取緩存文件的信息實現(xiàn)對于對應(yīng)的大容量影音文件的隨機存儲和讀取,能夠滿足高清點播系統(tǒng)對于互聯(lián)網(wǎng)影視緩存技術(shù)的應(yīng)用要求,保證無論如何隨機請求影視大文件數(shù)據(jù)時,都確保緩存線性增長,避免外部存貯即時分配大空間消耗大多時間而影響網(wǎng)絡(luò)傳輸點播的實時性,并且能夠節(jié)省存儲空間。本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中圖I是本發(fā)明的緩存文件結(jié)構(gòu)示意圖。圖2是本發(fā)明的緩存文件的文件頭結(jié)構(gòu)示意圖。圖3是本發(fā)明的緩存文件的文件頭中的數(shù)據(jù)塊索引表索引記錄結(jié)構(gòu)示意圖。
圖4是本發(fā)明一種多媒體文件的緩存方法具體實施方式
的流程圖。
具體實施例方式以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
如圖I所示,為本發(fā)明一種多媒體文件的緩存方法的具體實施方式
,下面的具體實施方式
的描述中,存在如下定義原文件原影視大文件文件頭(HEAD_SIZE):緩存文件的文件頭;塊大小(BL0CK_SIZE):將影視文件平均切分的尺寸,單位(字節(jié)byte);邏輯塊號(L0GIC_BL0CK_INDEX):原影視文件按固定“塊大小”平均切分后,順序遞增給每塊給定一個編號(0,I…n);物理塊號(PHY_BL0CK ,INDEX):原影視文件的邏輯塊實際保存到緩沖文件中的編號,緩沖文件的物理塊號是指文件頭后面的數(shù)據(jù)塊編號(0,I…n),順序遞增;塊內(nèi)偏移(BL0CK_P0S):指數(shù)據(jù)塊內(nèi)數(shù)據(jù)相對于于塊頭偏移(邏輯塊與物理塊的塊內(nèi)偏移是相同的);物理使用塊數(shù)(PHY_BL0CK_USED):指緩存文件已經(jīng)分配使用了的塊數(shù),緩存文件按文件頭之后的位置起順序分配使用塊;邏輯偏移(L0GIC_FILE_P0S):指原影視文件的文件偏移;物理偏移(PHY_FILE_P0S):指緩存文件的文件偏移;邏輯文件大小(LOGIG_FILE_SIZE):指已經(jīng)寫入到緩存文件的原影視文件的最大偏移位置+1的值。本具體實施方式
包括以下步驟步驟101、獲取多媒體文件以及所述多媒體文件容量信息;對于待點播的影視原文件,首先獲取其容量信息及存儲位置。步驟102、建立緩存文件頭,所述緩存文件頭中包括緩存塊大小和多媒體文件塊索引表;在緩存中建立緩存文件頭,如圖2所示,主要包括緩存文件標志、字節(jié)序標志、版本號、文件頭大小、多媒體文件原始數(shù)據(jù)大小和已緩存數(shù)據(jù)大小。具體的,在建立緩存文件頭的過程中,可以按照如下的數(shù)據(jù)格式建立緩存文件頭中的各個數(shù)據(jù)段緩存文件標志40字節(jié)長度字符串,用于識別是否是緩存文件還是普通文件;字節(jié)序標志4字節(jié)整數(shù),寫入的數(shù)據(jù)使用當前機器字節(jié)序?qū)懭刖彺嫖募?,字?jié)序標志的寫入值為Oxccccffff,當目標機器讀出的數(shù)值為Oxccccffff,表示目標機器以寫入機器字節(jié)序相同,后續(xù)讀出來的數(shù)值不用轉(zhuǎn)換;當讀出的數(shù)值為Oxffffcccc,表示目標機器的字節(jié)序與寫入機器的字節(jié)序相反,后續(xù)讀出的數(shù)值字節(jié)序要調(diào)反過來。版本號4字節(jié)數(shù)值標識版本號,在本具體實施方式
中設(shè)為I。文件頭大小4字節(jié)表示文件頭的大小,表示從緩存文件的絕對偏移這個值后就是影視數(shù)據(jù)塊,在本具體實施方式
中文件頭大小總設(shè)為1M。
影視文件原始數(shù)據(jù)大小8字節(jié)表示已寫入的原影視文件實際大小值,不表示緩存文件的物理大小。已緩存數(shù)據(jù)大小8字節(jié)表示寫入數(shù)據(jù)總量,在本具體實施方式
中僅作參考。已緩存數(shù)據(jù)塊數(shù)4字節(jié)整數(shù),表示已經(jīng)緩存的塊數(shù),即表示后面的“影視數(shù)據(jù)塊索引表”的有效個數(shù)。緩存塊大小4字節(jié)整數(shù),表示影視數(shù)據(jù)分塊尺寸,單位為字節(jié),影視大文件按此值平均切分文件,并順序定塊號0至n。影視數(shù)據(jù)塊索引表記錄緊跟在文件頭后面的影視數(shù)據(jù)塊的信息,一個塊記錄使用8字節(jié),前4字節(jié)表示原影視數(shù)據(jù)塊的編號。后4字節(jié)表示本塊已寫入數(shù)據(jù)大小。每個塊記錄和后面塊數(shù)據(jù)塊的順序號相對應(yīng),即過引表里的第n個記錄表示緩沖文件的第n個數(shù)據(jù)塊。步驟103、根據(jù)所述多媒體文件容量信息和所述緩存塊大小將所述影視文件平均 切分為不少于一個的多媒體文件塊,并給每個影視文件塊一個編號;如圖I所示,根據(jù)步驟102中存儲的緩存塊大小和影視文件容量信息,將該影視文件平均切分為(影視文件信息除以緩存塊大小)個影視數(shù)據(jù)塊,并按照0至n的順序給每個影視數(shù)據(jù)塊編號。步驟104、將所述編號和對應(yīng)的多媒體文件塊存儲信息存入多媒體文件塊索引表;將步驟103中得到的影視文件塊編號信息存儲進緩存文件頭的相應(yīng)數(shù)據(jù)段中。步驟105、將所述各影視文件塊按所述編號排列在所述緩存文件頭的后面,生成所述影視文件的緩存文件。在具體實施中,可以按照以下操作步驟進行步驟1051、計算 L0GIC_BL0CK_INDEX= L0GIC_FILE_P0S/BL0CK_SIZE;BL0CK_P0S = L0GIC_FILE_P0S%BL0CK_SIZE;進入步驟 1052。步驟1052、根據(jù)L0GIC_BL0CK_INDEX在索引表中查找出物理塊號PHY_BL0CK_INDEX,如果查找到則進入步驟1054,如果沒有找到則進入步驟1053 ;步驟1053、分配一個新物理塊PHY_BLOCK_INDEX=USED_BLOCKS ;同時已分配使用塊數(shù)增加 I :USED_BL0CKS = USED_BL0CKS+1 ;步驟1054計算可寫入本塊(PHY_BLOCK_INDEX)的數(shù)據(jù)大小(WS),取N和BL0CK_SIZE-BL0CK_P0S 的最小值;WS = min(N, BL0CK_SIZE_BL0CK_P0S);步驟1055、計算寫入緩存文件的物理為置PHY_FILE_P0S=HEAD_SIZE + PHY_BLOCK_INDEX*BLOCK_SIZE + BL0CK_P0S;步驟1056、將緩存文件的寫指針偏移至PHY_FILE_P0S位置,將WS個byte數(shù)據(jù)寫入。步驟1057、調(diào)整原文件偏移 L0GIC_FILE_P0S = L0GIC_FILE_P0S+WS ;N=N-ffS ;調(diào)速LOGIG_FILE_SIZE :如果 L0GIG_FILE_SIZE〈L0GIC_FILE_P0S,貝丨J L0GIG_FILE_SIZE=L0GIC_FILE_P0S ;如果N>0,則轉(zhuǎn)入步驟1051,否則寫入結(jié)束。
將各個影視文件塊按編號順序讀入緩存,與緩存文件頭共同組成緩存文件。一個緩存文件只有一個文件頭,并且放在緩存文件的最前面,影視數(shù)據(jù)塊可以為I至n多塊,影視數(shù)據(jù)塊連續(xù)排列在文件頭的后面。點播該影視文件時,先讀取所述多媒體文件塊索引表,具體結(jié)構(gòu)如圖3所示,根據(jù)多媒體文件塊索引表中的信息讀取對應(yīng)的影視文件塊信息。具體的讀取方法可以按照以下步驟進行將原文件偏移位置為L0GIC_FILE_P0S處的N個字節(jié)數(shù)據(jù)從緩存文件中讀出來。步驟1061、判斷如果 L0GIC_FILE_P 0S>=L0GIG_FILE_SIZE 或者 N〈=0,則結(jié)束讀取。步驟1062、計算 L0GIC_BL0CK_INDEX= L0GIC_FILE_P0S/BL0CK_SIZE;BL0CK_P0S = L0GIC_FILE_P0S%BL0CK_SIZE。步驟1063、根據(jù)L0GIC_BL0CK_INDEX在索引表中查找出物理塊號PHY_BL0CK_INDEX,如果查找不到,則結(jié)束讀取。步驟1064、計算可讀出本塊(PHY_BLOCK_INDEX)的數(shù)據(jù)大小(S),取N和BL0CK_SIZE-BL0CK_P0S 的最小值;S = min(N, BL0CK_SIZE_BL0CK_P0S);步驟1065、計算讀取緩存文件的物理為置PHY_FILE_P0S=HEAD_SIZE + PHY_BLOCK_INDEX*BLOCK_SIZE + BL0CK_P0S;步驟1066、將緩存文件的讀指針偏移至PHY_FILE_P0S位置,將S個byte數(shù)據(jù)讀出。步驟1067、調(diào)整原文件偏移 L0GIC_FILE_P0S = L0GIC_FILE_P0S+S ;N=N_S ;進入步驟1061。另外,當所述多媒體文件塊索引表中沒有點播的影視文件塊信息時,轉(zhuǎn)至步驟101。本發(fā)明的另一個方面,提供了一種多媒體文件的緩存系統(tǒng),其具體實施方式
中,包括多媒體文件信息獲取裝置、緩存文件頭生成裝置、多媒體文件切分裝置和緩存文件生成裝置,其中所述多媒體文件信息獲取裝置,用于獲取多媒體文件以及所述多媒體文件容量信息;所述緩存文件頭生成裝置,用于建立緩存文件頭,所述緩存文件頭中包括緩存塊大小和多媒體文件塊索引表,以及將多媒體文件塊編號和對應(yīng)的多媒體文件塊存儲信息存入多媒體文件塊索引表;所述多媒體文件切分裝置,用于根據(jù)所述多媒體文件容量信息和所述緩存塊大小將所述影視文件平均切分為不少于一個的多媒體文件塊,并給每個影視文件塊一個編號;所述緩存文件生成裝置,用于將所述各影視文件塊按所述編號排列在所述緩存文件頭的后面,生成所述影視文件的緩存文件。作為一種優(yōu)選方式,還包括緩存文件讀取裝置,用于點播所述多媒體文件時,先讀取所述多媒體文件塊索引表,根據(jù)多媒體文件塊索引表中的信息讀取影視文件塊信息。緩存文件頭生成裝置中,緩存文件頭還包括緩存文件標志、字節(jié)序標志、版本號、文件頭大小、多媒體文件原始數(shù)據(jù)大小和已緩存數(shù)據(jù)大小。作為上述技術(shù)方案的優(yōu)選,所述緩存文件讀取裝置還用于,當所述多媒體文件塊索引表中沒有點播的影視文件塊信息時,建立新的緩存文件塊信息。,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。最后應(yīng)說明的是以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領(lǐng)域的技術(shù)人員來說,其依然可 以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種多媒體文件的緩存方法,其特征在于,包括以下步驟 A、獲取多媒體文件以及所述多媒體文件容量信息; B、建立緩存文件頭,所述緩存文件頭中包括緩存塊大小和多媒體文件塊索引表; C、根據(jù)所述多媒體文件容量信息和所述緩存塊大小將所述影視文件平均切分為不少于一個的多媒體文件塊,并給每個影視文件塊一個編號; D、將所述編號和對應(yīng)的多媒體文件塊存儲信息存入多媒體文件塊索引表; E、將所述各影視文件塊按所述編號排列在所述緩存文件頭的后面,生成所述影視文件的緩存文件。
2.根據(jù)權(quán)利要求I所述的多媒體文件的緩存方法,其特征在于,還包括步驟 F、點播所述多媒體文件時,先讀取所述多媒體文件塊索引表,根據(jù)多媒體文件塊索引 表中的信息讀取對應(yīng)的影視文件塊信息。
3.根據(jù)權(quán)利要求I或2所述的多媒體文件的緩存方法,其特征在于,所述步驟B中緩存文件頭還包括緩存文件標志、字節(jié)序標志、版本號、文件頭大小、多媒體文件原始數(shù)據(jù)大小和已緩存數(shù)據(jù)大小。
4.根據(jù)權(quán)力要求2所述的多媒體文件的緩存方法,其特征在于,所述步驟F還包括,當所述多媒體文件塊索引表中沒有點播的影視文件塊信息時,轉(zhuǎn)至步驟A。
5.一種多媒體文件的緩存系統(tǒng),其特征在于,包括多媒體文件信息獲取裝置、緩存文件頭生成裝置、多媒體文件切分裝置和緩存文件生成裝置,其中 所述多媒體文件信息獲取裝置,用于獲取多媒體文件以及所述多媒體文件容量信息; 所述緩存文件頭生成裝置,用于建立緩存文件頭,所述緩存文件頭中包括緩存塊大小和多媒體文件塊索引表,以及將多媒體文件塊編號和對應(yīng)的多媒體文件塊存儲信息存入多媒體文件塊索引表; 所述多媒體文件切分裝置,用于根據(jù)所述多媒體文件容量信息和所述緩存塊大小將所述影視文件平均切分為不少于一個的多媒體文件塊,并給每個影視文件塊一個編號; 所述緩存文件生成裝置,用于將所述各影視文件塊按所述編號排列在所述緩存文件頭的后面,生成所述影視文件的緩存文件。
6.根據(jù)權(quán)利要求5所述的多媒體文件的緩存系統(tǒng),其特征在于,還包括緩存文件讀取裝置,用于點播所述多媒體文件時,先讀取所述多媒體文件塊索引表,根據(jù)多媒體文件塊索引表中的信息讀取影視文件塊信息。
7.根據(jù)權(quán)利要求5或6所述的多媒體文件的緩存系統(tǒng),其特征在于,所述緩存文件頭生成裝置中,緩存文件頭還包括緩存文件標志、字節(jié)序標志、版本號、文件頭大小、多媒體文件原始數(shù)據(jù)大小和已緩存數(shù)據(jù)大小。
8.根據(jù)權(quán)力要求6所述的多媒體文件的緩存系統(tǒng),其特征在于,所述緩存文件讀取裝置還用于,當所述多媒體文件塊索引表中沒有點播的影視文件塊信息時,建立新的緩存文件塊信息。
全文摘要
本發(fā)明公開了一種多媒體文件的緩存方法和系統(tǒng),其方法為,首先,獲取多媒體文件以及所述多媒體文件容量信息;建立緩存文件頭,所述緩存文件頭中包括緩存塊大小和多媒體文件塊索引表; 根據(jù)所述多媒體文件容量信息和所述緩存塊大小將所述影視文件平均切分為不少于一個的多媒體文件塊,并給每個影視文件塊一個編號;將所述編號和對應(yīng)的多媒體文件塊存儲信息存入多媒體文件塊索引表;將所述各影視文件塊按所述編號排列在所述緩存文件頭的后面,生成所述影視文件的緩存文件采用本發(fā)明,能夠解決互聯(lián)網(wǎng)視頻點播時分配大存儲空間從而需要比較長的時間運算和分配以至于影響點播的實時性的問題,還可以避免分配到的空間被浪費。
文檔編號G06F17/30GK102722555SQ20121017025
公開日2012年10月10日 申請日期2012年5月28日 優(yōu)先權(quán)日2012年5月28日
發(fā)明者黎鋒 申請人:北京網(wǎng)尚數(shù)字電影院線有限公司