專利名稱:一種高效的音視頻文件解析方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于音視頻領(lǐng)域,尤其涉及一種高效的音視頻文件解析方法及設(shè)備。
背景技術(shù):
隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)視頻播放得到越來越多的關(guān)注,特別是移動設(shè)備上的視頻在線播放,更是關(guān)注的焦點。而在播放音視頻文件之前需要解析該音視頻文件?,F(xiàn)有的音視頻文件解析方法中,是在解析了一個音頻碼流后接著搜索并解析該音頻碼流對應(yīng)的視頻碼流;或者在解析了一個視頻碼流之后接著搜索并解析該視頻碼流對應(yīng)的音頻碼流。當(dāng)相對應(yīng)的音頻碼流和視頻碼流不在相鄰位置時,該方法需要來回搜索以便解析相互對應(yīng)的音頻碼流或者視頻碼流,因此導(dǎo)致解析音視頻文件的速度較慢。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種高效的音視頻文件解析方法,旨在解決現(xiàn)有的音視頻文件解析方法在解析音視頻文件時存在的速度較慢的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種高效的音視頻文件解析方法,所述方法包括下述步驟獲取音視頻文件;根據(jù)下述步驟解析所述音視頻文件的音頻碼流和視頻碼流在音視頻文件的當(dāng)前碼流為音頻碼流時,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述音頻碼流;在音視頻文件的當(dāng)前碼流為視頻碼流時,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述視頻碼流。本發(fā)明實施例的另一目的在于提供一種高效的音視頻文件解析設(shè)備,所述設(shè)備包括文件獲取單元,用于獲取音視頻文件;音視頻文件解析單元,用于根據(jù)下述步驟解析所述音視頻文件的音頻碼流和視頻碼流在音視頻文件的當(dāng)前碼流為音頻碼流時,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述音頻碼流;在音視頻文件的當(dāng)前碼流為視頻碼流時,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述視頻碼流。本發(fā)明實施例在獲取了一個音視頻文件后,根據(jù)音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的比較結(jié)果,或者根據(jù)視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的比較結(jié)果選擇是否解析音視頻文件的當(dāng)前碼流。由于在解析音頻碼流及視頻碼流之前無需搜索該音頻碼流和視頻碼流,因此極大減少了文件的搜索次數(shù),從而能夠快速解析該音視頻文件的音頻碼流和視頻碼流。
圖I是本發(fā)明提供的高效的音視頻文件解析方法的流程圖;圖2是本發(fā)明提供的第一種音頻碼流和視頻碼流在音視頻文件的分布圖;圖3是本發(fā)明提供的第二種音頻碼流和視頻碼流在音視頻文件的分布圖;圖4是本發(fā)明提供的第四種音頻碼流和視頻碼流在音視頻文件的分布圖;圖5是本發(fā)明提供的高效的音視頻文件解析設(shè)備的結(jié)構(gòu)示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例在獲取了一個音視頻文件后,根據(jù)音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的比較結(jié)果,或者根據(jù)視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的比較結(jié)果選擇是否解析音視頻文件的當(dāng)前碼流。本發(fā)明實施例提供了一種高效的音視頻文件解析方法及設(shè)備。所述方法包括獲取音視頻文件;根據(jù)下述步驟解析所述音視頻文件的音頻碼流和視頻碼流在音視頻文件的當(dāng)前碼流為音頻碼流時,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述音頻碼流;在音視頻文件的當(dāng)前碼流為視頻碼流時,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述視頻碼流。所述裝置包括文件獲取單元,用于獲取音視頻文件;音視頻文件解析單元,用于根據(jù)下述步驟解析所述音視頻文件的音頻碼流和視頻碼流在音視頻文件的當(dāng)前碼流為音頻碼流時,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述音頻碼流;在音視頻文件的當(dāng)前碼流為視頻碼流時,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述視頻碼流。本發(fā)明實施例在獲取了一個音視頻文件后,根據(jù)音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的比較結(jié)果,或者根據(jù)視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的比較結(jié)果選擇是否解析音視頻文件的當(dāng)前碼流。由于在解析音頻碼流及視頻碼流之前無需搜索該音頻碼流和視頻碼流,因此極大減少了文件的搜索次數(shù),從而能夠快速解析該音視頻文件的音頻碼流和視頻碼流。為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進(jìn)行說明。實施例一:圖I示出了本發(fā)明第一實施例提供的高效的音視頻文件解析方法的流程圖,在本實施例中,預(yù)設(shè)一個音頻存儲閾值和一個視頻存儲閾值,在獲取音視頻文件后,根據(jù)音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的比較結(jié)果,或者根據(jù)視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的比較結(jié)果選擇是否解析音視頻文件的當(dāng)前碼流,詳述如下在步驟Sll中,獲取音視頻文件。在本實施例中,獲取需要解析的音視頻文件,在獲取的音視頻文件中,音頻碼流和視頻碼流的存放格式可能是交錯存放的,如圖2所示,也可能是連續(xù)存放了多個音頻碼流之后再存放視頻碼流,如圖3所示,當(dāng)然,也可能是連續(xù)存放了多個視頻碼流之后再存放音頻碼流,此處不作限定。在步驟S12中,根據(jù)下述步驟解析該音視頻文件的音頻碼流和視頻碼流在音視頻文件的當(dāng)前碼流為音頻碼流時,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析該音頻碼流;在音視頻文件的當(dāng)前碼流為視頻碼流時,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析該視頻碼流。在本實施例中,預(yù)設(shè)一個音頻存儲閾值和一個視頻存儲閾值,預(yù)設(shè)的音頻存儲閾值大于O且小于等于音頻緩存區(qū)的存儲空間,預(yù)設(shè)的視頻存儲閾值大于O且小于等于視頻緩存區(qū)的存儲空間。對獲取的音視頻文件進(jìn)行解析,首先根據(jù)碼流特征字判斷音視頻文件指針指向的當(dāng)前碼流是音頻碼流還是視頻碼流,若是音頻碼流,則比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值大小,并根據(jù)音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的比較結(jié)果選擇是否解析該音頻碼流;若是視頻碼流,則比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值大小,并根據(jù)視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的比較結(jié)果選擇是否解析該視頻碼流。在解析音頻碼流和視頻碼流后,將解析的音頻碼流存入音頻緩存區(qū),將解析的視頻碼流存入視頻緩存區(qū)。在本發(fā)明實施例中,根據(jù)音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的比較結(jié)果,或者根據(jù)視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的比較結(jié)果選擇是否解析音視頻文件的當(dāng)前音頻碼流和當(dāng)前視頻碼流,由于在解析音視頻文件的音頻碼流或視頻碼流之前無需搜索該音頻碼流或無需搜索該視頻碼流,因此減少了搜索文件的次數(shù),從而能夠快速解析該音視頻文件的音頻碼流和視頻碼流。進(jìn)一步地,在音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的視頻存儲閾值時,根據(jù)音頻碼流和視頻碼流在音視頻文件的先后存放順序依次解析該音頻碼流和視頻碼流。以依次解析圖3的音視頻文件為例,在解析該音視頻文件時,首先根據(jù)碼流的特征字判斷圖3所表示的音視頻文件的第一個碼流是音頻碼流還是視頻碼流,在判斷出圖3所表示的音視頻文件的第一個碼流是音頻碼流I后,再比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的大小,若音頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的音頻存儲閾值,則解析該音頻碼流1,在音頻碼流I解析結(jié)束后,將該音頻碼流I存入音頻緩存區(qū);繼續(xù)根據(jù)碼流特征字判斷音視頻文件的第2個碼流是音頻碼流還是視頻碼流,在判斷出音視頻文件的第2個碼流是音頻碼流2且音頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的音頻存儲閾值之后,解析該音頻碼流I后的音頻碼流2,并將解析后的音頻碼流2存入音頻緩存區(qū);解析音頻碼流3的步驟與解析音頻碼流I和音頻碼流2的相似;在解析音頻碼流3之后,判斷音視頻文件的第4個碼流是音頻碼流還是視頻碼流,在判斷出音視頻文件的第4個碼流為視頻碼流I之后,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,在視頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的視頻存儲閾值時,解析該視頻碼流1,并將解析后的視頻碼流I存入視頻緩存區(qū);根據(jù)上面的解析方法,順序解析音視頻文件的其他碼流,并將解析后的音頻碼流存入音頻緩存區(qū),將解析后的視頻碼流存入視頻緩存區(qū)。在本實施例中,根據(jù)音頻碼流和視頻碼流在音視頻文件的存放位置順序解析,因此能夠有效較少音頻碼流或者視頻碼流的搜索次數(shù),從而能夠快速解析出該音視頻文件。并且,將解析后的音頻碼流存放在預(yù)設(shè)的音頻緩存區(qū),以及將解析后的視頻碼 流存放在預(yù)設(shè)的視頻緩存區(qū),以便后續(xù)播放解析后的音頻碼流或者播放解析后的視頻碼流更為流暢。進(jìn)一步地,在視頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的視頻存儲閾值,且音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值時,主動搜索并順序解析音視頻文件的音頻碼流,并暫停解析音視頻文件的視頻碼流。在本實施例中,在當(dāng)前碼流為視頻碼流時,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,在視頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的視頻存儲閾值時,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的大小,在音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值時,主動搜索并順序解析音視頻文件的音頻碼流,并暫停解析音視頻文件的視頻碼流。由于一個視頻碼流所占用的內(nèi)存通常大于一個音頻流所占用的內(nèi)存,因此若設(shè)定的視頻緩存區(qū)不夠大,則該視頻緩存區(qū)很可能在音頻緩存區(qū)未滿之前就被解析出來的視頻碼流占滿,以解析圖4所示的音視頻文件為例,假設(shè)視頻緩存區(qū)大小為125KB,預(yù)設(shè)的視頻存儲閾值為26KB,視頻碼流I的大小為100KB,在解析音視頻文件的第一個碼流之前,即解析視頻碼流I之前,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值大小,由于視頻緩存區(qū)的剩余存儲空間125KB大于視頻存儲閾值26KB,因此解析視頻碼流1,并將解析的視頻碼流I存入視頻緩存區(qū),此時,視頻緩存區(qū)的剩余存儲空間為25KB,由于視頻緩存區(qū)的剩余存儲空間已小于視頻存儲閾值,因此暫停解析視頻碼流I之后的視頻碼流2 ;在判斷出音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值時,主動搜索音視頻文件未解析的音頻碼流,解析視頻碼流2之后的第一個音頻碼流,即直接解析音頻碼流1,再將解析后的音頻碼流I存入音頻緩存區(qū)。由于音頻碼流I的下一個碼流為視頻碼流3,因此在解析了音頻碼流I之后,比較視頻緩存區(qū)的剩余存儲空間與視頻存儲閾值的大小,判斷是直接解析視頻碼流3還是繼續(xù)暫停解析該視頻碼流3。當(dāng)然,若在解析音頻碼流I之前,音頻緩存區(qū)的剩余存儲空間已小于音頻存儲閾值,則不解析該音頻碼流I。進(jìn)一步地,在音頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的視頻存儲閾值時,主動搜索并順序解析音視頻文件的視頻碼流,并暫停解析音視頻文件的音頻碼流。以解析圖3所示的音視頻文件為例,假設(shè)設(shè)定的音頻緩存區(qū)大小為18KB,預(yù)設(shè)的音頻存儲閾值為7KB,該音視頻文件中前2個音頻碼流的大小都為6KB,在解析音頻碼流I之前,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值大小,由于音頻緩存區(qū)的剩余存儲空間18KB大于預(yù)設(shè)的音頻存儲閾值7KB,因此獲取并解析音頻碼流1,將解析后的音頻碼流I存入音頻緩存區(qū),此時,音頻緩存區(qū)的剩余存儲空間從18KB變?yōu)?2KB。繼續(xù)比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻緩存閾值大小,由于音頻緩存區(qū)的剩余存儲空間12KB仍大于預(yù)設(shè)的音頻存儲閾值7KB,因此繼續(xù)解析音頻碼流I后的音頻碼流2,并將解析后的音頻碼流2存入音頻緩存區(qū),此時,音頻緩存區(qū)的剩余存儲空間從12KB變?yōu)?KB,小于預(yù)設(shè)的音頻存儲閾值7KB,因此在解析了音頻碼流2之后,暫停解析音頻碼流3 ;比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,在視頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的視頻存儲閾值時,主動搜索并解析音頻碼流3之后的視頻碼流1,在解析了該視頻碼流I之后,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值大小,判斷音頻緩存區(qū)的剩余存儲空間是否仍小于預(yù)設(shè)的音頻存儲閾值,若音頻緩存區(qū)的剩余存儲空間不小于預(yù)設(shè)的音頻存儲閾值,即音頻緩存區(qū)存儲的部分音頻碼流已被讀取出來后,則返回解析音頻碼流3,并在解析了音頻碼流3且視頻緩存區(qū)的剩余存儲空間仍大于或等于預(yù)設(shè)的視頻存儲閾值之后,跳過已解析的視頻碼流1,直接解析視頻碼流2 ;若音頻緩存區(qū)的剩余存儲空間仍小于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間仍大于或等于預(yù)設(shè)的視頻存儲閾值時,則解析視頻碼流I之后的視頻碼流2。進(jìn)一步地,在音頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的視頻存儲閾值時,暫停解析音視頻文件的音頻碼流和視頻碼流。在本發(fā)明第一實施例中,在獲取了一個音視頻文件后,根據(jù)音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的比較結(jié)果,或者根據(jù)視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的比較結(jié)果選擇是否解析音視頻文件的當(dāng)前碼流。由于在解析音頻碼流及視頻碼流之前無需搜索該音頻碼流和視頻碼流,因此極大減少了文件的搜索次數(shù),從而能夠快速解析該音視頻文件的音頻碼流和視頻碼流。進(jìn)一步的,在視頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的視頻存儲閾值,且音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值時,主動搜索并順序解析音視頻文件的音頻碼流,并暫停解析音視頻文件的視頻碼流。在音頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的視頻存儲閾值時,主動搜索并順序解析音視頻文件的視頻碼流,并暫停解析音視頻文件的音頻碼流。從而在內(nèi)存有限的情況下,也能夠保證音視頻文件的順利解析。實施例二 :圖5示出了本發(fā)明第二實施例提供的高效的音視頻文件解析設(shè)備的結(jié)構(gòu)示意圖,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。該高效的音視頻文件解析設(shè)備可以用于通過有線或者無線網(wǎng)絡(luò)連接服務(wù)器的各種信息處理終端,例如移動電話、口袋計算機(jī)(Pocket Personal Computer, PPC)、掌上電腦、計算機(jī)、筆記本電腦、個人數(shù)字助理(Personal Digital Assistant, PDA)等,可以是運行于這些終端內(nèi)的軟件單元、硬件單元或者軟硬件相結(jié)合的單元,也可以作為獨立的掛件集成到這些終端中或者運行于這些終端的應(yīng)用系統(tǒng)中,其中文件獲取單元51,用于獲取音視頻文件。音視頻文件解析單元52,用于根據(jù)下述步驟解析該音視頻文件的音頻碼流和視頻碼流在音視頻文件的當(dāng)前碼流為音頻碼流時,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析該音頻碼流;在音視頻文件的當(dāng)前碼流為視頻碼流時,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析該視頻碼流。在本實施例中,預(yù)設(shè)一個音頻存儲閾值和一個視頻存儲閾值,并根據(jù)音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的比較結(jié)果,或者根據(jù)視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的比較結(jié)果解析獲取的音視頻文件。進(jìn)一步地,該音視頻文件解析單元52包括音視頻碼流順序解析模塊521、音頻碼流主動解析模塊522以及視頻碼流主動解析模塊523。音視頻碼流順序解析模塊521,用于在音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的視頻存儲閾值時,根據(jù)音頻碼流和視頻碼流在音視頻文件的先后存放順序依次解析該音頻碼流和視頻碼流。在本實施例中,當(dāng)音頻緩存區(qū)的剩余存儲空間足夠大,且視頻緩存區(qū)的剩余存儲空間足夠大時,順序解析音視頻文件的音頻碼流和視頻碼流。音頻碼流主動解析模塊522,用于在視頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的視頻存儲閾值,且音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值時,主動搜索并順序解析音視頻文件的音頻碼流,并暫停解析音視頻文件的視頻碼流。在本實施例中,當(dāng)視頻緩存區(qū)的剩余存儲空間不大,且音頻緩存區(qū)的剩余存儲空間足夠大時,暫停解析音視頻文件的視頻碼流,主動搜索并順序解析音視頻文件的音頻碼流。視頻碼流主動解析模塊523,用于在音頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的視頻存儲閾值時,主動搜索并順序解析音視頻文件的視頻碼流,并暫停解析音視頻文件的音頻碼流。在本實施例中,當(dāng)音頻緩存區(qū)的剩余存儲空間不大,且視頻緩存區(qū)的剩余存儲空間足夠大時,暫停解析音視頻文件的音頻碼流,主動搜索并順序解析音視頻文件的視頻碼流。進(jìn)一步地,當(dāng)音頻緩存區(qū)的剩余存儲空間和視頻緩存區(qū)的剩余存儲空間都不夠大時,暫停解析音視頻文件的音頻碼流和視頻碼流。在本發(fā)明第二實施例中,音視頻文件解析單元52根據(jù)音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的比較結(jié)果,或者根據(jù)視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的比較結(jié)果解析文件獲取單元51獲取的音視頻文件。由于在解析音頻碼流及視頻碼流之前無需搜索該音頻碼流和視頻碼流,因此極大減少了文件的搜索次數(shù),從而能夠快速解析該音視頻文件的音頻碼流和視頻碼流。本發(fā)明在獲取了一個音視頻文件后,根據(jù)音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的比較結(jié)果,或者根據(jù)視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的比較結(jié)果選擇是否解析音視頻文件的當(dāng)前碼流。由于在解析音頻碼流及視頻碼流之前無需搜索該音頻碼流和視頻碼流,因此極大減少了文件的搜索次數(shù),從而能夠快速解析該音視頻文件的音頻碼流和視頻碼流。進(jìn)一步的,在視頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的視頻存儲閾值,且音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值時,主動搜索并順序解析音視頻文件的音頻碼流,并暫停解析音視頻文件的視頻碼流。在音頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的視頻存儲閾值時,主動搜索并順序解析音視頻文件的視頻碼流,并暫停解析音視頻文件的音頻碼流。從而在內(nèi)存有限的情況下,也能夠保證音視頻文件的順利解析。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種高效的音視頻文件解析方法,其特征在于,所述方法包括下述步驟獲取首視頻文件;根據(jù)下述步驟解析所述音視頻文件的音頻碼流和視頻碼流在音視頻文件的當(dāng)前碼流為音頻碼流時,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述音頻碼流;在音視頻文件的當(dāng)前碼流為視頻碼流時,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述視頻碼流。
2.如權(quán)利要求I所述的方法,其特征在于,在音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的視頻存儲閾值時,根據(jù)音頻碼流和視頻碼流在音視頻文件的先后存放順序依次解析所述音頻碼流和視頻碼流。
3.如權(quán)利要求I所述的方法,其特征在于,在視頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的視頻存儲閾值,且音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值時,主動搜索并順序解析音視頻文件的音頻碼流,并暫停解析音視頻文件的視頻碼流。
4.如權(quán)利要求I所述的方法,其特征在于,在音頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的視頻存儲閾值時,主動搜索并順序解析音視頻文件的視頻碼流,并暫停解析音視頻文件的音頻碼流。
5.一種高效的音視頻文件解析設(shè)備,其特征在于,所述設(shè)備包括文件獲取單元,用于獲取音視頻文件;音視頻文件解析單元,用于根據(jù)下述步驟解析所述音視頻文件的音頻碼流和視頻碼流在音視頻文件的當(dāng)前碼流為音頻碼流時,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述音頻碼流;在音視頻文件的當(dāng)前碼流為視頻碼流時,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述視頻碼流。
6.如權(quán)利要求5所述的設(shè)備,其特征在于,所述音視頻文件解析單元包括音視頻碼流順序解析模塊,用于在音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的視頻存儲閾值時,根據(jù)音頻碼流和視頻碼流在音視頻文件的先后存放順序依次解析所述音頻碼流和視頻碼流。
7.如權(quán)利要求5所述的設(shè)備,其特征在于,所述音視頻文件解析單元包括音頻碼流主動解析模塊,用于在視頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的視頻存儲閾值,且音頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的音頻存儲閾值時,主動搜索并順序解析音視頻文件的音頻碼流,并暫停解析音視頻文件的視頻碼流。
8.如權(quán)利要求5所述的設(shè)備,其特征在于,所述音視頻文件解析單元包括視頻碼流主動解析模塊,用于在音頻緩存區(qū)的剩余存儲空間小于預(yù)設(shè)的音頻存儲閾值,且視頻緩存區(qū)的剩余存儲空間大于或等于預(yù)設(shè)的視頻存儲閾值時,主動搜索并順序解析音視頻文件的視頻碼流,并暫停解析音視頻文件的音頻碼流。
全文摘要
本發(fā)明適用于音視頻領(lǐng)域,提供了一種高效的音視頻文件解析方法及設(shè)備。所述方法包括下述步驟獲取音視頻文件;根據(jù)下述步驟解析所述音視頻文件的音頻碼流和視頻碼流在音視頻文件的當(dāng)前碼流為音頻碼流時,比較音頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的音頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述音頻碼流;在音視頻文件的當(dāng)前碼流為視頻碼流時,比較視頻緩存區(qū)的剩余存儲空間與預(yù)設(shè)的視頻存儲閾值的大小,并根據(jù)比較的結(jié)果選擇是否解析所述視頻碼流。本發(fā)明由于在解析音視頻文件的音頻碼流和解析視頻碼流之前無需搜索該音頻碼流和該視頻碼流,因此減少了搜索文件的次數(shù),從而能夠快速解析該音視頻文件的音頻碼流和視頻碼流。
文檔編號G11B20/12GK102956250SQ201110236510
公開日2013年3月6日 申請日期2011年8月17日 優(yōu)先權(quán)日2011年8月17日
發(fā)明者胡靜, 蘇丹, 張舜華, 陳杰, 胡勝發(fā) 申請人:安凱(廣州)微電子技術(shù)有限公司