專利名稱:一種大流量音視頻數(shù)據(jù)存取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動通信領(lǐng)域,具體為移動通訊監(jiān)測領(lǐng)域。
背景技術(shù):
本專利運用于移動通訊監(jiān)測領(lǐng)域中,采集移動通訊終端(如手機)的來電通話音視頻數(shù)據(jù)。在監(jiān)測系統(tǒng)監(jiān)測手機的通話記錄時,通常需要保存通話內(nèi)容。每次通話都需要保存兩個音視頻文件,一個是主叫的說話內(nèi)容,另一個是被叫的說話內(nèi)容。在監(jiān)測系統(tǒng)監(jiān)測范圍內(nèi),如果同時有1000個呼叫,那么監(jiān)測系統(tǒng)需要同時打開2000個語音文件來存儲這些呼叫信息。同時發(fā)生大量的呼叫時,監(jiān)測系統(tǒng)同時打開的文件數(shù)量將非常龐大。
由于操作系統(tǒng)不允許同時打開那么多文件,按照傳統(tǒng)的方式為每次呼叫打開兩個語音文件存儲通話內(nèi)容的方式顯然不行。為每個音視頻專門創(chuàng)建一個文件來存儲數(shù)據(jù),將無法支持多個(上千個甚至更多)音視頻文件同時打開來存儲多個音視頻數(shù)據(jù)。
目前,在存儲音視頻數(shù)據(jù)時,為每一個音視頻專門打開一個文件來保存數(shù)據(jù)。
一種是在每個音視頻的第一段數(shù)據(jù)出現(xiàn)時,創(chuàng)建一個文件專門保存此音視頻數(shù)據(jù)。之后每次出現(xiàn)此音視頻數(shù)據(jù)時,將其寫入該文件,在最后一段音視頻數(shù)據(jù)保存完成后關(guān)閉該文件。若有大量不同的音視頻數(shù)據(jù)需要同時保存,此時會同時打開大量文件,從而降低軟件存儲數(shù)據(jù)的速度,可能會丟失數(shù)據(jù)。
另一種是在每個音視頻的第一段數(shù)據(jù)出現(xiàn)時,創(chuàng)建一個文件專門保存此音視頻數(shù)據(jù)。每次出現(xiàn)此音視頻數(shù)據(jù)時,將此文件打開,寫入數(shù)據(jù),然后關(guān)閉。這樣雖然不會同時打開很多個音視頻文件,但需要反復(fù)的打開和關(guān)閉同一文件。也會降低軟件的存儲數(shù)據(jù)的速度。發(fā)明內(nèi)容
為了解決上述技術(shù)問題,本發(fā)明提出了一種大流量音視頻數(shù)據(jù)存取方法,其中該方法包括
S101,獲取到一次呼叫中的一段音視頻數(shù)據(jù),并將所述音視頻數(shù)據(jù)保存到數(shù)據(jù)文件中;
S102,根據(jù)步驟SlOl中保存的所述音視頻數(shù)據(jù)生成相應(yīng)的索引信息,其中該索引信息包括保存所述音視頻數(shù)據(jù)的文件編號、偏移量、數(shù)據(jù)長度以及數(shù)據(jù)方向;
S103,將所述索引信息保存到索引文件中;
S104,根據(jù)步驟SlOl、S102和S103依次存儲所述呼叫的多段音視頻數(shù)據(jù);
S105,在提取所述每段音視頻數(shù)據(jù)時,從所述索引文件中提取相應(yīng)音視頻數(shù)據(jù)的索引信息,然后根據(jù)所述索引信息從數(shù)據(jù)文件中提取相對應(yīng)的音視頻數(shù)據(jù);
S106,根據(jù)所提取的多個視音頻數(shù)據(jù)合成為所述呼叫的音視頻文件。
根據(jù)本發(fā)明的一個方面,其中在步驟S103進一步包括所述呼叫的音視頻數(shù)據(jù)的索引信息到達η個時,將這次呼叫的音視頻數(shù)據(jù)對應(yīng)的η個索引`信息批量存儲到索引文件中,η為大于I的整數(shù)。
根據(jù)本發(fā)明的一個方面,其中所述索引文件中包括多個索引區(qū),其中每個索引區(qū)包含多個索引信息和一個二級索引信息,其中所述二級索引信息指向下一個索引區(qū)。
根據(jù)本發(fā)明的一個方面,其中S105進一步包括提取所述音視頻數(shù)據(jù)時,先找到所述呼叫的第一塊索引區(qū),從所述第一索引區(qū)中獲取到本次呼叫的前η個索引信息,再通過第一個索引區(qū)中的二級索引,找到下一個索引區(qū),然后從下一個索引區(qū)中獲取η個索引信息,依次找到最后一個索引區(qū),獲取到每段音頻數(shù)據(jù)的索引信息;
從獲取的所述索引信息中依次找到與之對應(yīng)的各段音視頻數(shù)據(jù)。
根據(jù)本發(fā)明的一個方面,其中從獲取的所述索引信息中依次找到與之對應(yīng)的各段音視頻數(shù)據(jù)進一步包括通過一條索引信息中的文件編號、偏移量和數(shù)據(jù)長度可以提取到一段音視頻數(shù)據(jù),通過索引信息中的數(shù)據(jù)方向判斷該段音視頻數(shù)據(jù)是上行音視頻還是下行音視頻,如果是上行音視頻數(shù)據(jù),則將上行音視頻數(shù)據(jù)全部存儲到上行音視頻文件中,如果是下行音視頻數(shù)據(jù),則把所述下行音視頻數(shù)據(jù)全部存儲到下行音視頻文件中。
根據(jù)本發(fā)明的一個方面,其中步驟SlOl進一步包括在保存所述音視頻數(shù)據(jù)時, 當所述數(shù)據(jù)文件達到預(yù)定的最大值時,將所述數(shù)據(jù)文件關(guān)閉,然后打開下一個數(shù)據(jù)文件繼續(xù)保存數(shù)據(jù)。
根據(jù)本發(fā)明的一個方面,其中步驟S103進一步包括在保存所述索引信息時,當所述索引文件達到預(yù)定的最大值時,將所述索引文件關(guān)閉,然后打開下一個索引文件繼續(xù)保存索引信息。
根據(jù)本發(fā)明的一個方面,其中所述預(yù)定的最大值為1GB。
此外,本發(fā)明還提出了另外一種大流量音視頻數(shù)據(jù)存取方法,其中該方法包括
S901,獲取到一次呼叫中的一段音視頻數(shù)據(jù),并將該段音視頻數(shù)據(jù)的數(shù)據(jù)長度、數(shù)據(jù)方向、下一段數(shù)據(jù)的索引信息以及該段音視頻數(shù)據(jù)按照順序依次保存到數(shù)據(jù)文件中;
S902,在所述數(shù)據(jù)文件中為下一段音視頻數(shù)據(jù)分配一段空間,根據(jù)步驟SlOl依次存儲所述呼叫的多段音視頻數(shù)據(jù);
S903,在提取音視頻數(shù)據(jù)時,從所述數(shù)據(jù)文件中提取相應(yīng)音視頻數(shù)據(jù)的數(shù)據(jù)長度、 數(shù)據(jù)方向、下一段數(shù)據(jù)的索引信息,然后根據(jù)所述下一段數(shù)據(jù)的索引信息從數(shù)據(jù)文件中提取相對應(yīng)的下一段音視頻數(shù)據(jù),依次找到最后一段音視頻數(shù)據(jù);
S904,將所提取的多個音視頻數(shù)據(jù)合成為所述呼叫的音視頻數(shù)據(jù)。
根據(jù)本發(fā)明的一個方面,其中步驟S901進一步包括在保存數(shù)據(jù)時,當所述數(shù)據(jù)文件達到預(yù)定的最大值時,將所述數(shù)據(jù)文件關(guān)閉,然后打開下一個數(shù)據(jù)文件繼續(xù)保存數(shù)據(jù)。
根據(jù)本發(fā)明的一個方面,其中所述預(yù)定的最大值為1GB。
采用本發(fā)明提出 的音視頻數(shù)據(jù)存儲和讀取方法,可以解決在大流量的音視頻數(shù)據(jù)采集中由于操作系統(tǒng)的對同時打開的文件數(shù)量的限制而導(dǎo)致大流量的音視頻丟失數(shù)據(jù)的問題。本發(fā)明通過將大流量的音視頻數(shù)據(jù)保存到一個數(shù)據(jù)文件中,以此解決大流量音視頻數(shù)據(jù)保存時,丟失數(shù)據(jù)的問題。
下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。
圖1是本發(fā)明提出的大流量音視頻數(shù)據(jù)存取方法流程圖2是一種本發(fā)明提出的索引文件的結(jié)構(gòu)示意圖一
圖3是一種本發(fā)明提出的索引文件的結(jié)構(gòu)示意圖二
圖4是一種本發(fā)明提出的索引文件的結(jié)構(gòu)示意圖三
圖5是一種本發(fā)明提出的呼叫音視頻數(shù)據(jù)存儲結(jié)構(gòu)圖6為一種本發(fā)明提出的索引區(qū)內(nèi)部結(jié)構(gòu)示意圖7為本發(fā)明提出的音視頻數(shù)據(jù)讀取結(jié)構(gòu)示意圖8為本發(fā)明提出的另一實施例的音視頻數(shù)據(jù)存取結(jié)構(gòu)示意圖9為本發(fā)明提出的另一實施例的大流量音視頻數(shù)據(jù)存取方法流程圖。
術(shù)語解釋
首視頻首頻或視頻
數(shù)據(jù)文件——保存音視頻數(shù)據(jù)的文件
偏移量一一數(shù)據(jù)保存在文件中的位置。從文件的起始位置到指定數(shù)據(jù)的起始位置之間的值。每一個字節(jié)即是一個偏移量值I。
文件編號----用來標識一個文件的號碼
數(shù)據(jù)方向一一用來區(qū)分主叫和被叫說話內(nèi)容的變量。上行數(shù)據(jù),主叫說話內(nèi)容; 下行數(shù)據(jù),被叫說話內(nèi)容。
索引一一一段數(shù)據(jù)所保存在數(shù)據(jù)文件中的文件編號,偏移量,數(shù)據(jù)長度以及數(shù)據(jù)方向的信息組合。也稱一級索引。
二級索引——用來記錄下一個索引區(qū)保存在索引文件中的位置。包括索引文件編號,偏移量。
索引區(qū)一一多個索引信息和二級索引信息的組合,保存在索引文件中的空間。
索引文件用來保存索引的文件。由多個索引區(qū)組成。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
系統(tǒng)需要通過特有的硬件板卡來采集音視頻數(shù)據(jù)。每次從板卡上獲取到一段音視頻數(shù)據(jù)時,先將其保存到數(shù)據(jù)文件中,同時記錄此段數(shù)據(jù)所保存的文件編號,偏移量,數(shù)據(jù)長度以及數(shù)據(jù)方向,也就是此段數(shù)據(jù)的索引。在提取數(shù)據(jù)時,通過此段數(shù)據(jù)的索引即可提取到此段數(shù)據(jù)內(nèi)容。
每一段數(shù)據(jù)在保存 到數(shù)據(jù)文件中時,都會產(chǎn)生與之對應(yīng)的一個索引。那么,每一段數(shù)據(jù)都會有與之一一對應(yīng)的一個索引。在存儲數(shù)據(jù)時,記錄每一段數(shù)據(jù)的索引,根據(jù)每段數(shù)據(jù)的索引信息可找到所有的音視頻數(shù)據(jù)。
將索引信息保存都索引文件中,將音視頻數(shù)據(jù)保存到數(shù)據(jù)文件中,在提取數(shù)據(jù)時, 先從索引文件中提取數(shù)據(jù)的索引,然后通過每一段數(shù)據(jù)的索引信息,找到與之對應(yīng)的音視頻數(shù)據(jù)。
具體的,如圖1所示,本發(fā)明提出的一種音視頻數(shù)據(jù)的存取方法包括
S101,獲取到一次呼叫中的一段音視頻數(shù)據(jù),并將所述音視頻數(shù)據(jù)保存到數(shù)據(jù)文件中;
S102,根據(jù)步驟SlOl中保存的所述音視頻數(shù)據(jù)生成相應(yīng)的索引信息,其中該索引信息包括保存所述音視頻數(shù)據(jù)的文件編號、偏移量、數(shù)據(jù)長度以及數(shù)據(jù)方向;
S103,將所述索引信息保存到索引文件中;
S104,根據(jù)步驟SlOl、S102和S103依次存儲所述呼叫的多段音視頻數(shù)據(jù);
S105,在提取所述每段音視頻數(shù)據(jù)時,從所述索引文件中提取相應(yīng)音視頻數(shù)據(jù)的索引信息,然后根據(jù)所述索引信息從數(shù)據(jù)文件中提取相對應(yīng)的音視頻數(shù)據(jù);
S106,根據(jù)所提取的多個視音頻數(shù)據(jù)合成為所述呼叫的音視頻文件。
下面進一步對本發(fā)明提出的音視頻數(shù)據(jù)存取方法進行詳細說明。
(一 )文件的存儲
由于一條索引的信息量很小所占的空間很小,為了提高系統(tǒng)的存儲和讀取性能, 在記錄索引信息的時候,需要使用批量寫入的方式存入到索引文件中。一次呼叫會產(chǎn)生很多個索引信息。在將索引信息存入索引文件中時,需要將一次呼叫的索引信息分區(qū)保存。每個索引區(qū)只保存一定數(shù)量(可配置數(shù)量n,n為大于I的整數(shù))的索引信息。這樣就會在索引文件中形成很多個索引區(qū)。
圖2為一個索引文件的結(jié)構(gòu)從圖中可以看出,一個索引文件是由多個索引區(qū)組成。
在讀取文件時,需要獲取到一次呼叫的每一段音視頻數(shù)據(jù)的索引信息,才能將此次呼叫的音視頻數(shù)據(jù)完整的取出。那么,就需要找到此次呼叫存儲在索引文件中的所有索引區(qū)。于是,就需要在第一個索引區(qū)末尾時,添加一個二級索引,用于指向下一個索引區(qū)。這樣,就可以通過第一個索引區(qū)找到第二個索引區(qū),再通過第二個索引區(qū)的二級索引,找到第三個索引區(qū)。依次找到最后一個索引區(qū),把本次呼叫的所有索引信息全部找到。
如圖3所示,一個索引區(qū)就是由η個索引信息和I個二級索引信息的組合保存在索引文件中的區(qū)域。
圖4為一個索引文件的詳細結(jié)構(gòu)圖。一個索引文件由多個索引區(qū)組成。一個索引區(qū)由η個索引和I個二級索引組成。一個索引包含數(shù)據(jù)文件編號,偏移量,數(shù)據(jù)長度以及數(shù)據(jù)方向。用于指向一段存儲在數(shù)據(jù)文件中的數(shù)據(jù)。一個二級索引包含索引文件編號,偏移量。用于指向下一個索引區(qū)存儲在索引文件中的位置。
圖5為一次呼叫的音視頻數(shù)據(jù)存儲結(jié)構(gòu)圖。
第一個索引區(qū)的存儲。每次獲取到本次呼叫的一段音視頻數(shù)據(jù)時,將此段音視頻數(shù)據(jù)寫入音視頻文件中。記錄此段音視頻數(shù)據(jù)的索引信息,存入一個內(nèi)存緩存中。由于是多個音視頻數(shù)據(jù)同時保存到數(shù)據(jù)文件中,所以每個音視頻的數(shù)據(jù)都不是連續(xù)的保存在數(shù)據(jù)文件中,而是被分成一個個小段數(shù)據(jù)分別保存在數(shù)據(jù)文件的不同位置。當這次呼叫的音視頻數(shù)據(jù)的索引信息到達η個時,將這次呼叫的音視頻數(shù)據(jù)的這η個索引信息存儲到索引文件中,然后清空索引的內(nèi)存緩存,并在索引文件中為下一個索引區(qū)分配空間。將 分配到的下一個索引區(qū)的索引文件編號和偏移量,即二級索引信息,寫入二級索引區(qū)。此時,η個索引信息已保存到數(shù)據(jù)文件中,內(nèi)存緩存中保存的索引信息也被清空。
第二個索引區(qū)的存儲。在獲取到這次呼叫的下一段音視頻數(shù)據(jù)時,繼續(xù)將音視頻數(shù)據(jù)寫入數(shù)據(jù)文件,將索引信息保存到內(nèi)存緩存中,當內(nèi)存緩存再次達到最大值η時,再次將內(nèi)存緩存中的η個索引信息寫入索引文件中,然后清空索引的內(nèi)存緩存。同時,在索引文件中為下一個索引區(qū)分配空間,將分配到的下一個索引區(qū)的索引文件編號和偏移量,即二級索引信息,寫入二級索引區(qū)。
最后一個索引區(qū)的存儲。依次記錄本次呼叫的所有音視頻數(shù)據(jù)以及索引信息。在呼叫結(jié)束時,把內(nèi)存緩存中的索引信息(還沒到達η個索引信息)寫入索引文件中,沒有到達η個索引的信息剩余的空間填寫索引信息的初始值,此時不再分配下一個索引區(qū)。這段索引區(qū)即是本次呼叫的最后一塊索引區(qū)。二級索引信息填寫一個初始值。
如圖6所示,其為最后一個索引區(qū)所存儲的結(jié)構(gòu)圖
呼叫結(jié)束后,內(nèi)存緩存中有M個索引信息未存入索引文件中。此時,將這M個索引信息存入索引區(qū),空余η-Μ個索引的空間填寫η-Μ個索引信息的初始值,然后在二級索引出填寫一個初始的二級索引值。
( 二)文件讀取
讀取音視頻數(shù)據(jù)時,先找到一次呼叫的第一塊索引區(qū)。每次呼叫的第一塊索引區(qū)的所在的索引文件編號及偏移量,跟本次呼叫的其他信息(如主叫號碼,被叫號碼等信息) 一起保存在數(shù)據(jù)庫中。
如圖7所示,通過本次呼叫的第一塊索引區(qū)的索引文件編號和偏移量,可以找到本次呼叫的第一塊索引區(qū),從索引區(qū)中獲取到本次呼叫的前η個索引信息。再通過第一個索引區(qū)中的二級索引,找到下一個索引區(qū),再從下一個索引區(qū)中獲取η個索引信息。依次找到最后一個索引區(qū)。獲取到所有的索引信息。
從獲取到的索引信息中依次找到與之對應(yīng)的音視頻數(shù)據(jù)。通過一條索引信息中的文件編號,偏移量和數(shù)據(jù)長度可以提取到一段音視頻數(shù)據(jù),通過索引信息中的數(shù)據(jù)方向可以區(qū)分這段音視頻數(shù)據(jù),是上行音視頻還是下行音視頻。把上行音視頻數(shù)據(jù)全部存儲到上行音視頻文件中,把下行音視頻數(shù)據(jù)全部存儲到下行音視頻中,這樣即完成了本次呼叫的音視頻數(shù)據(jù)的提取。
由于保存的音視頻數(shù)據(jù)量非常大,如果將所有的音視頻數(shù)據(jù)寫入一個文件當中, 那么這個文件將會非常大。由于操作系統(tǒng)不允許生成一個容量超大的文件。我們將數(shù)據(jù)文件拆分成多個數(shù)據(jù)文件來保存。數(shù)據(jù)文件拆分的大小做成一個可配置的大小,比如1GB。 這樣就會生成很多個數(shù)據(jù)文件,我們將為每一個數(shù)據(jù)文件做一個編號,通過編號可找到這個文件。在保存數(shù)據(jù)時,只有在一個數(shù)據(jù)文件達到配置的最大值(IGB)時,才會將這個數(shù)據(jù)文件關(guān)閉,然后打開下一個數(shù)據(jù)文件繼續(xù)保存數(shù)據(jù)。
同樣,生成的索引信息也會非常多。我們將索引文件也拆分成多個索引文件分別保存索引信息。索引文件的最大值也做成一個可配置的大小,如1GB。
此外,在存儲索引文件時,可不使用批量寫入的方式。在每次獲取到一段音視頻數(shù)據(jù)時,將音視頻數(shù)據(jù)寫入數(shù)據(jù)文件,將索引信息不寫入內(nèi)存直接寫入索引文件。用此方案可替代本專利將索引信息存入索引文件的方案。
第二實施例`
只使用一個數(shù)據(jù)文件不使用索引文件。在數(shù)據(jù)文件的前端保留一定空間,用于保存下一段數(shù)據(jù)的索引信息。
如圖8所示,在獲取到一段音視頻數(shù)據(jù)時,為下一段音視頻數(shù)據(jù)分配一段空間。將 此段數(shù)據(jù)的數(shù)據(jù)長度,數(shù)據(jù)方向以及下一段數(shù)據(jù)的索引信息保存在此段音視頻數(shù)據(jù)前面。 通過下一段數(shù)據(jù)的索引可以找到下一段數(shù)據(jù)。依次保存索引的音視頻數(shù)據(jù)。
這樣也可以通過第一段數(shù)據(jù)信息,依次找到所有的音視頻數(shù)據(jù)。
參見圖9,為本發(fā)明提出的另一實施例的大流量音視頻數(shù)據(jù)存取方法流程圖,其中 該方法包括
S901,獲取到一次呼叫中的一段音視頻數(shù)據(jù),并將該段音視頻數(shù)據(jù)的數(shù)據(jù)長度、數(shù) 據(jù)方向、下一段數(shù)據(jù)的索引信息以及該段音視頻數(shù)據(jù)按照順序依次保存到數(shù)據(jù)文件中;
S902,在所述數(shù)據(jù)文件中為下一段音視頻數(shù)據(jù)分配一段空間,根據(jù)步驟SlOl依次 存儲所述呼叫的多段音視頻數(shù)據(jù);
S903,在提取音視頻數(shù)據(jù)時,從所述數(shù)據(jù)文件中提取相應(yīng)音視頻數(shù)據(jù)的數(shù)據(jù)長度、 數(shù)據(jù)方向、下一段數(shù)據(jù)的索引信息,然后根據(jù)所述下一段數(shù)據(jù)的索引信息從數(shù)據(jù)文件中提 取相對應(yīng)的下一段音視頻數(shù)據(jù),依次找到最后一段音視頻數(shù)據(jù);
S904,將所提取的多個音視頻數(shù)據(jù)合成為所述呼叫的音視頻數(shù)據(jù)。
采用本發(fā)明提出的音視頻數(shù)據(jù)存儲和讀取方法,在大流量的音視頻數(shù)據(jù)采集中, 由于操作系統(tǒng)的對同時打開的文件數(shù)量的限制,會導(dǎo)致大流量的音視頻數(shù)據(jù)保存時,丟失 數(shù)據(jù)。本專利將大流量的音視頻數(shù)據(jù)保存到一個數(shù)據(jù)文件中,以此解決大流量音視頻數(shù)據(jù) 保存時,丟失數(shù)據(jù)的問題。
綜上所述,雖然本發(fā)明已以優(yōu)選實施例披露如上,然而其并非用以限定本發(fā)明。本 發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),可作各種變動與修 飾。因此,本發(fā)明的保護范圍當視所附的權(quán)利要求所界定的范圍為準。
權(quán)利要求
1.一種大流量音視頻數(shù)據(jù)存取方法,其中該方法包括S101,獲取到一次呼叫中的一段音視頻數(shù)據(jù),并將所述音視頻數(shù)據(jù)保存到數(shù)據(jù)文件中;S102,根據(jù)步驟SlOl中保存的所述音視頻數(shù)據(jù)生成相應(yīng)的索引信息,其中該索引信息包括保存所述音視頻數(shù)據(jù)的文件編號、偏移量、數(shù)據(jù)長度以及數(shù)據(jù)方向;S103,將所述索引信息保存到索引文件中;S104,根據(jù)步驟S101、S102和S103依次存儲所述呼叫的多段音視頻數(shù)據(jù);S105,在提取所述每段音視頻數(shù)據(jù)時,從所述索引文件中提取相應(yīng)音視頻數(shù)據(jù)的索引信息,然后根據(jù)所述索引信息從數(shù)據(jù)文件中提取相對應(yīng)的音視頻數(shù)據(jù);S106,根據(jù)所提取的多個視音頻數(shù)據(jù)合成為所述呼叫的音視頻文件。
2.如權(quán)利要求1所述的方法,其中在步驟S103進一步包括所述呼叫的音視頻數(shù)據(jù)的索引信息到達η個時,將這次呼叫的音視頻數(shù)據(jù)對應(yīng)的η個索引信息批量存儲到索引文件中,η為大于I的整數(shù)。
3.如權(quán)利要求1或2所述的方法,其中所述索引文件中包括多個索引區(qū),其中每個索引區(qū)包含多個索引信息和一個二級索引信息,其中所述二級索引信息指向下一個索引區(qū)。
4.如權(quán)利要求1所述的方法,其中S105進一步包括提取所述音視頻數(shù)據(jù)時,先找到所述呼叫的第一塊索引區(qū),從所述第一索引區(qū)中獲取到本次呼叫的前η個索引信息,再通過第一個索引區(qū)中的二級索引,找到下一個索引區(qū),然后從下一個索引區(qū)中獲取η個索引信息,依次找到最后一個索引區(qū),獲取到每段音頻數(shù)據(jù)的索引信息;從獲取的所述索引信息中依次找到與之對應(yīng)的各段音視頻數(shù)據(jù)。
5.如權(quán)利要求4所述的方法,其中從獲取的所述索引信息中依次找到與之對應(yīng)的各段音視頻數(shù)據(jù)進一步包括通過一條索引信息中的文件編號、偏移量和數(shù)據(jù)長度可以提取到一段音視頻數(shù)據(jù),通過索引信息中的數(shù)據(jù)方向判斷該段音視頻數(shù)據(jù)是上行音視頻還是下行音視頻,如果是上行音視頻數(shù)據(jù),則將上行音視頻數(shù)據(jù)全部存儲到上行音視頻文件中,如果是下行音視頻數(shù)據(jù),則把所述下行音視頻數(shù)據(jù)全部存儲到下行音視頻文件中。
6.如權(quán)利要求1所述的方法,其中步驟SlOl進一步包括在保存所述音視頻數(shù)據(jù)時, 當所述數(shù)據(jù)文件達到預(yù)定的最大值時,將所述數(shù)據(jù)文件關(guān)閉,然后打開下一個數(shù)據(jù)文件繼續(xù)保存所述音視頻數(shù)據(jù)。
7.如權(quán)利要求1所述的方法,其中步驟S103進一步包括在保存所述索引信息時,當所述索引文件達到預(yù)定的最大值時,將所述索引文件關(guān)閉,然后打開下一個索引文件繼續(xù)保存索引信息。
8.如權(quán)利要求6或7所述的方法,其中所述預(yù)定的最大值為1GB。
9.一種大流量音視頻數(shù)據(jù)存取方法,其中該方法包括S901,獲取到一次呼叫中的一段音視頻數(shù)據(jù),并將該段音視頻數(shù)據(jù)的數(shù)據(jù)長度、數(shù)據(jù)方向、下一段數(shù)據(jù)的索引信息以及該段音視頻數(shù)據(jù)按照順序依次保存到數(shù)據(jù)文件中;S902,在所述數(shù)據(jù)文件中為下一段音視頻數(shù)據(jù)分配一段空間,根據(jù)步驟SlOl依次存儲所述呼叫的多段音視頻數(shù)據(jù);S903,在提取音視頻數(shù)據(jù)時,從所述數(shù)據(jù)文件中提取相應(yīng)音視頻數(shù)據(jù)的數(shù)據(jù)長度、數(shù)據(jù)方向、下一段數(shù)據(jù)的索引信息,然后根據(jù)所述下一段數(shù)據(jù)的索引信息從數(shù)據(jù)文件中提取相對應(yīng)的下一段音視頻數(shù)據(jù),依次找到最后一段音視頻數(shù)據(jù);S904,將所提取的多個音視頻數(shù)據(jù)合成為所述呼叫的音視頻數(shù)據(jù)。
10.如權(quán)利要求9所述的方法,其中步驟S901進一步包括在保存所述音視頻數(shù)據(jù)時, 當所述數(shù)據(jù)文件達到預(yù)定的最大值時,將所述數(shù)據(jù)文件關(guān)閉,然后打開下一個數(shù)據(jù)文件繼續(xù)保存所述音視頻數(shù)據(jù)。
11.如權(quán)利要求10所述的方法,其中所述預(yù)定的最大值為1GB。
全文摘要
本發(fā)明提出了一種大流量音視頻數(shù)據(jù)存取方法,其中該方法包括獲取到一次呼叫中的一段音視頻數(shù)據(jù),并將所述音視頻數(shù)據(jù)保存到數(shù)據(jù)文件中;根據(jù)所述音視頻數(shù)據(jù)生成相應(yīng)的索引信息,其中該索引信息包括保存所述音視頻數(shù)據(jù)的文件編號、偏移量、數(shù)據(jù)長度以及數(shù)據(jù)方向;將所述索引信息保存到索引文件中;依次存儲所述呼叫的多段音視頻數(shù)據(jù);在提取所述每段音視頻數(shù)據(jù)時,從所述索引文件中提取相應(yīng)音視頻數(shù)據(jù)的索引信息,然后根據(jù)所述索引信息從數(shù)據(jù)文件中提取相對應(yīng)的音視頻數(shù)據(jù);根據(jù)所提取的多個視音頻數(shù)據(jù)合成為所述呼叫的音視頻文件。采用本發(fā)明提出的音視頻數(shù)據(jù)存取方法有效地解決了大流量音視頻數(shù)據(jù)保存時丟失數(shù)據(jù)的問題。
文檔編號G06F17/30GK103064879SQ201210476809
公開日2013年4月24日 申請日期2012年11月22日 優(yōu)先權(quán)日2012年11月22日
發(fā)明者劉俊余, 鄭晨, 李艷君 申請人:北京中創(chuàng)信測科技股份有限公司