專(zhuān)利名稱(chēng):一種多媒體文件播放處理系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明屬于多媒體領(lǐng)域,尤其涉及ー種多媒體文件播放處理系統(tǒng)及方法。
背景技術(shù):
現(xiàn)在,隨著嵌入式CPU性能的提高以及各種音視頻解碼DSP技術(shù)的進(jìn)歩,涌現(xiàn)出了大量的嵌入式高清多媒體播放器產(chǎn)品。這類(lèi)產(chǎn)品可以流暢解碼各類(lèi)高清片源,支持杜比 1TrueHD和高清數(shù)字化影院系統(tǒng)(Digital Theatre System, DTS)等高清音頻,能夠處理藍(lán)光、MKV、AVI、MP4/M0V等多種封裝格式,使用者在家里就可以欣賞到高清片源的震撼效果。 但是,對(duì)于某些多媒體文件,例如MP4/M0V和AVI封裝的片源,由于音視頻數(shù)據(jù)的存放形式為不交織或是交織得不夠緊密,播放效果就會(huì)變得很卡,或者有圖像沒(méi)有聲音,或者有聲音沒(méi)有圖像,即無(wú)法實(shí)現(xiàn)流暢播放。綜上,現(xiàn)有技術(shù)的播放器在對(duì)非交織類(lèi)型多媒體文件進(jìn)行播放吋,容易出現(xiàn)播放不流暢的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供ー種多媒體文件播放處理系統(tǒng),旨在解決、現(xiàn)有技術(shù)的播放裝置在對(duì)非交織類(lèi)型多媒體文件進(jìn)行播放吋,容易出現(xiàn)播放不流暢的問(wèn)題。本發(fā)明是這樣實(shí)現(xiàn)的,ー種多媒體文件播放處理系統(tǒng),系統(tǒng)包括檢測(cè)單元,用于檢測(cè)多媒體文件的文件類(lèi)型,所述文件類(lèi)型包括交織文件和非交織文件;視頻數(shù)據(jù)讀緩沖區(qū),用于當(dāng)所述檢測(cè)単元檢測(cè)的多媒體文件的文件類(lèi)型為非交織文件吋,預(yù)讀、緩沖多媒體文件的視頻數(shù)據(jù);音頻數(shù)據(jù)讀緩沖區(qū),用于當(dāng)所述檢測(cè)単元檢測(cè)的多媒體文件的文件類(lèi)型為非交織文件吋,預(yù)讀、緩沖多媒體文件的音頻數(shù)據(jù);讀取控制単元,用于設(shè)置數(shù)據(jù)讀取切換策略,將所述視頻數(shù)據(jù)讀緩沖區(qū)的視頻數(shù)據(jù)和音頻數(shù)據(jù)讀緩沖區(qū)的音頻數(shù)據(jù)按照所述數(shù)據(jù)讀取切換策略進(jìn)行讀?。环蛛x器,用于接收所述讀取控制單元讀取的視頻數(shù)據(jù)和音頻數(shù)據(jù),進(jìn)行分離得到視頻數(shù)據(jù)幀和音頻數(shù)據(jù)幀;視頻幀先進(jìn)先出緩存器,用于緩存所述分離器分離得到的視頻數(shù)據(jù)幀;音頻幀先進(jìn)先出緩存器,用于緩存所述分離器分離得到的音頻數(shù)據(jù)幀;解碼器,用于對(duì)所述視頻幀先進(jìn)先出緩存器緩存的視頻數(shù)據(jù)幀進(jìn)行視頻解碼,對(duì)所述音頻幀先進(jìn)先出緩存器緩存的音頻數(shù)據(jù)幀進(jìn)行音頻解碼;播放單元,用于根據(jù)所述解碼器解碼的結(jié)果顯示視頻并播放聲音。本發(fā)明的另一目的在于提供ー種多媒體文件播放處理方法,包括以下步驟檢測(cè)多媒體文件的文件類(lèi)型,所述多媒體文件類(lèi)型包括交織文件和非交織文件;當(dāng)檢測(cè)到多媒體文件的文件類(lèi)型為非交織文件吋,通過(guò)構(gòu)建的視頻數(shù)據(jù)讀緩沖區(qū)預(yù)讀、緩沖所述多媒體文件的視頻數(shù)據(jù),通過(guò)構(gòu)建的音頻數(shù)據(jù)讀緩沖區(qū)預(yù)讀、緩沖所述多媒體文件的音頻數(shù)據(jù);將所述視頻數(shù)據(jù)讀緩沖區(qū)的視頻數(shù)據(jù)和音頻數(shù)據(jù)讀緩沖區(qū)的音頻數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)讀取切換策略進(jìn)行讀??;對(duì)根據(jù)所述數(shù)據(jù)讀取切換策略讀取的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行分離得到視頻數(shù)據(jù)幀和音頻數(shù)據(jù)幀;通過(guò)構(gòu)建的視頻幀先進(jìn)先出緩存器緩存所述分離器分離得到的視頻數(shù)據(jù)幀,通過(guò)構(gòu)建的音頻幀先進(jìn)先出緩存器緩存所述分離器分離得到的音頻數(shù)據(jù)幀;對(duì)所述視頻幀先進(jìn)先出緩存器緩存的視頻數(shù)據(jù)幀進(jìn)行視頻解碼,對(duì)所述音頻幀先進(jìn)先出緩存器緩存的音頻數(shù)據(jù)幀進(jìn)行音頻解碼;根據(jù)視頻解碼的結(jié)果顯示視頻,根據(jù)音頻解碼的結(jié)果播放聲音。本發(fā)明實(shí)施例通過(guò)檢測(cè)単元檢測(cè)多媒體文件的文件類(lèi)型,音頻數(shù)據(jù)讀緩沖區(qū)和視頻數(shù)據(jù)讀緩沖區(qū)分別預(yù)讀、緩沖檢測(cè)單元檢測(cè)的非交織類(lèi)型多媒體文件的視頻數(shù)據(jù)和音頻數(shù)據(jù),讀取控制單元將視頻數(shù)據(jù)讀緩沖區(qū)的視頻數(shù)據(jù)和音頻數(shù)據(jù)讀緩沖區(qū)的音頻數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)讀取切換策略進(jìn)行讀取,分離器接收讀取控制單元讀取的視頻數(shù)據(jù)和音頻數(shù)據(jù)并進(jìn)行分離處理,視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器分別緩存分離器分離得到的視頻數(shù)據(jù)幀和音頻數(shù)據(jù)幀,解碼器對(duì)音視頻數(shù)據(jù)幀進(jìn)行解碼,播放単元根據(jù)解碼結(jié)果顯示視頻并播放聲音,解決了讀取非交織類(lèi)型多媒體文件數(shù)據(jù)時(shí),跳轉(zhuǎn)頻繁,播放不夠流暢的問(wèn)題,提高了多媒體音視頻數(shù)據(jù)的處理效率,增強(qiáng)了播放器的兼容性。
圖1是本發(fā)明ー種多媒體文件播放處理系統(tǒng)第一實(shí)施例提供的結(jié)構(gòu)圖;圖2是本發(fā)明ー種多媒體文件播放處理系統(tǒng)第一實(shí)施例提供的交織類(lèi)型多媒體文件的存放結(jié)構(gòu)示意圖;圖3 (a)、(b)是本發(fā)明ー種多媒體文件播放處理系統(tǒng)第一實(shí)施例提供的非交織類(lèi)型多媒體文件的存放結(jié)構(gòu)示意圖;圖4是本發(fā)明ー種多媒體文件播放處理方法第二實(shí)施例提供的流程圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一歩詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例通過(guò)檢測(cè)単元檢測(cè)多媒體文件的文件類(lèi)型,音頻數(shù)據(jù)讀緩沖區(qū)和視頻數(shù)據(jù)讀緩沖區(qū)分別預(yù)讀、緩沖檢測(cè)單元檢測(cè)的非交織類(lèi)型多媒體文件的視頻數(shù)據(jù)和音頻數(shù)據(jù),讀取控制單元將視頻數(shù)據(jù)讀緩沖區(qū)的視頻數(shù)據(jù)和音頻數(shù)據(jù)讀緩沖區(qū)的音頻數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)讀取切換策略進(jìn)行讀取,分離器接收讀取控制單元讀取的視頻數(shù)據(jù)和音頻數(shù)據(jù)并進(jìn)行分離處理,視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器分別緩存分離器分離得到的視頻數(shù)據(jù)幀和音頻數(shù)據(jù)幀,解碼器對(duì)音視頻數(shù)據(jù)幀進(jìn)行解碼,播放単元根據(jù)解碼結(jié)果顯示視頻并播放聲音,解決了讀取非交織類(lèi)型多媒體文件數(shù)據(jù)時(shí),跳轉(zhuǎn)頻繁,播放不夠流暢
圖1示出了本發(fā)明第一實(shí)施例提供的多媒體文件播放處理系統(tǒng)的結(jié)構(gòu)圖。為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。通常,多媒體文件的存放方式為將音視頻數(shù)據(jù)分割成較小的數(shù)據(jù)片段,音視頻數(shù)據(jù)按照時(shí)間順序依次交叉存放。圖2示出了本發(fā)明第一實(shí)施例提供的交織類(lèi)型多媒體文件的存放結(jié)構(gòu)示意圖。交織類(lèi)型多媒體文件的音視頻數(shù)據(jù)通常被分割為較多片段,每個(gè)音頻數(shù)據(jù)片段和視頻數(shù)據(jù)片段較小。圖3(a)、(b)示出了本發(fā)明第一實(shí)施例提供的非交織類(lèi)型多媒體文件的存放結(jié)構(gòu)示意圖。本發(fā)明實(shí)施例中的非交織類(lèi)型多媒體文件主要有兩種(1)在ー個(gè)多媒體文件中音頻數(shù)據(jù)和視頻數(shù)據(jù)是分開(kāi)存放的,即在ー個(gè)多媒體文件中前半部分存放視頻數(shù)據(jù),后半部分存放音頻數(shù)據(jù)或是多媒體文件的前半部分存放音頻數(shù)據(jù),后半部分存放視頻數(shù)據(jù),如圖3(a)所示;( 音視頻數(shù)據(jù)交織得不夠緊湊,即音頻數(shù)據(jù)和視頻數(shù)據(jù)被分割成若個(gè)較大片段,音頻數(shù)據(jù)片段和視頻數(shù)據(jù)片段依次交叉存放,片段數(shù)目較少,且每個(gè)音頻數(shù)據(jù)片段和視頻數(shù)據(jù)片段都很大,如圖3(a)所示。結(jié)合圖2和圖3(a)、(b),可以看出,對(duì)于交織類(lèi)型的多媒體文件,由于分割的數(shù)據(jù)片段較小,借助一個(gè)緩沖音視頻數(shù)據(jù)的緩沖區(qū)就可以對(duì)音視頻數(shù)據(jù)實(shí)現(xiàn)流暢播放;而對(duì)于非交織文件,由于音視頻數(shù)據(jù)的緩沖區(qū)不可能無(wú)限大,需要不停的跳轉(zhuǎn)來(lái)讀取所需要的音視頻數(shù)據(jù),如果是高清多媒體文件,數(shù)據(jù)量是更加龐大,僅通過(guò)不停跳轉(zhuǎn)方式進(jìn)行數(shù)據(jù)讀取,難以實(shí)現(xiàn)流暢播放。本發(fā)明實(shí)施例提供的多媒體文件播放處理系統(tǒng),通過(guò)建立視頻數(shù)據(jù)的讀取緩沖區(qū)和音頻數(shù)據(jù)幀先進(jìn)先出緩存器,并建立數(shù)據(jù)讀取切換策略合理控制數(shù)據(jù)的讀取解決非交織類(lèi)型多媒體文件在播放過(guò)程中存在的以上技術(shù)問(wèn)題。如圖1所示,該多媒體文件播放處理系統(tǒng)主要包括檢測(cè)單元11、視頻數(shù)據(jù)讀緩沖區(qū)12、音頻數(shù)據(jù)讀緩沖區(qū)13、讀取控制単元14、分離器15、視頻幀先進(jìn)先出緩存器16、音頻幀先進(jìn)先出緩存器17、解碼器18和播放單元19。其中檢測(cè)單元11,用于檢測(cè)多媒體文件的文件類(lèi)型,該文件類(lèi)型包括交織文件和非交織文件;視頻數(shù)據(jù)讀緩沖區(qū)12,用于當(dāng)檢測(cè)單元11檢測(cè)的多媒體文件的文件類(lèi)型為非交織文件吋,預(yù)讀、緩沖多媒體文件的視頻數(shù)據(jù);音頻數(shù)據(jù)讀緩沖區(qū)13,用于當(dāng)檢測(cè)單元11檢測(cè)的多媒體文件的文件類(lèi)型為非交織文件吋,預(yù)讀、緩沖多媒體文件的音頻數(shù)據(jù);讀取控制単元14,用于設(shè)置數(shù)據(jù)讀取切換策略,將視頻數(shù)據(jù)讀緩沖區(qū)12的視頻數(shù)據(jù)和音頻數(shù)據(jù)讀緩沖區(qū)13的音頻數(shù)據(jù)按照數(shù)據(jù)讀取切換策略進(jìn)行讀取;分離器15,用于接收讀取控制単元14讀取的視頻數(shù)據(jù)和音頻數(shù)據(jù),進(jìn)行分離得到視頻數(shù)據(jù)幀和音頻數(shù)據(jù)幀;視頻幀先進(jìn)先出緩存器16,用于緩存分離器15分離得到的視頻數(shù)據(jù)幀;音頻幀先進(jìn)先出緩存器17,用于緩存分離器15分離得到的音頻數(shù)據(jù)幀;
7
解碼器18,用于對(duì)視頻幀先進(jìn)先出緩存器16緩存的視頻數(shù)據(jù)幀進(jìn)行視頻解碼,對(duì)音頻幀先進(jìn)先出緩存器17緩存的音頻數(shù)據(jù)幀進(jìn)行音頻解碼;播放單元19,用于根據(jù)解碼器解碼的結(jié)果顯示視頻并播放聲音。其中,檢測(cè)單元11檢測(cè)多媒體文件的文件類(lèi)型的步驟具體為根據(jù)多媒體文件的總碼率設(shè)置閾值Dt ;根據(jù)多媒體文件信息建立索引,索引包括時(shí)間戳t,總播放時(shí)長(zhǎng)Tlen,t時(shí)刻視頻幀在多媒體文件中的位置PosVt, t時(shí)刻音頻幀在多媒體文件中的位置PosAt ;計(jì)算相同時(shí)刻音視頻數(shù)據(jù)幀間的最大文件距離Dmax J Dt =PosVt -PosAt\D^=MAX{Dl D2 ... DnJ ’當(dāng)Dmax > Dt吋,多媒體文件的文件類(lèi)型為非交織文件。上述Dt是指t時(shí)刻的視頻幀和t時(shí)刻的音頻幀在多媒體文件中的位置距離,Dfflax 具體為根據(jù)上述不同時(shí)間戳t計(jì)算出來(lái)的所有位置距離中的最大值。多媒體文件是交織文件還是非交織文件可以通過(guò)相同時(shí)刻音視頻數(shù)據(jù)幀在多媒體文件中的位置距離確定,若多媒體文件中某些時(shí)刻的音視頻數(shù)據(jù)幀之間的位置距離過(guò)大,則表示該多媒體文件交織的不夠緊密,即為非交織文件,實(shí)際操作中可以設(shè)定一個(gè)用于指示系統(tǒng)能夠容忍的音視頻數(shù)據(jù)幀之間的最大距離,即上述閾值DT。若多媒體文件所有時(shí)刻的音視頻數(shù)據(jù)幀的位置距離都沒(méi)有超過(guò)這個(gè)閾值DT,則表示該多媒體文件為交織文件;若某些時(shí)刻的音視頻數(shù)據(jù)幀的位置距離超過(guò)了這個(gè)閾值DT,則表示該多媒體文件為非交織文件。在本實(shí)施例中,可以通過(guò)Dmax與Dt的大小關(guān)系確定多媒體文件的文件類(lèi)型,若Dmax > Dt,即表示多媒體文件的音視頻交織得不夠緊湊,為非交織文件。為了減少計(jì)算量,在其他實(shí)施例中也可以以固定時(shí)間間隔采樣的方式抽取音視頻幀進(jìn)行計(jì)算,但抽取的音視頻幀的數(shù)量不宜過(guò)少。在本發(fā)明多媒體文件播放處理系統(tǒng)第一優(yōu)選實(shí)施例中,Dt—般根據(jù)實(shí)際情況設(shè)置為3 6倍的多媒體文件總碼率。本發(fā)明實(shí)施例構(gòu)建的視頻數(shù)據(jù)讀緩沖區(qū)12和音頻數(shù)據(jù)讀緩沖區(qū)13對(duì)分別預(yù)讀緩沖視頻數(shù)據(jù)和音頻數(shù)據(jù)。讀取非交織類(lèi)型多媒體文件數(shù)據(jù)時(shí),不必每次需要數(shù)據(jù)時(shí)都去跳轉(zhuǎn)讀取文件,從而可以有效的減少文件跳轉(zhuǎn)的次數(shù),使得文件的跳轉(zhuǎn)不再頻繁。視頻數(shù)據(jù)讀緩沖區(qū)和音頻數(shù)據(jù)讀緩沖區(qū)的長(zhǎng)度設(shè)置要大小適中,不宜過(guò)大,也不宜過(guò)小,因?yàn)檫^(guò)大會(huì)導(dǎo)致預(yù)讀時(shí)間增長(zhǎng),影響反應(yīng)速度,而且還有可能緩存了不需要的數(shù)據(jù),而過(guò)小又起不到緩沖的效果。具體應(yīng)用時(shí),視頻數(shù)據(jù)讀緩沖區(qū)一般以I幀的大小為參考進(jìn)行設(shè)置,音頻數(shù)據(jù)的讀緩沖區(qū)一般以音頻的碼率為參考進(jìn)行設(shè)置。針對(duì)不同分辨率的片源,比如高清、標(biāo)清等,音視頻數(shù)據(jù)讀緩沖區(qū)的大小還需要進(jìn)行些微調(diào)。在本發(fā)明多媒體文件播放處理系統(tǒng)第二優(yōu)選實(shí)施例中,當(dāng)多媒體文件為1080P高清片源時(shí),視頻數(shù)據(jù)讀緩沖區(qū)為3 5幀I幀大小,音頻數(shù)據(jù)讀緩沖區(qū)為3秒?yún)⒖家纛l數(shù)據(jù)幀大小。合理的音視頻數(shù)據(jù)讀取的切換策略可以在減少跳轉(zhuǎn),盡可能多的順序讀取數(shù)據(jù)的同吋,解碼器又可以及時(shí)獲得時(shí)間戳對(duì)齊的音視頻數(shù)據(jù)幀。本發(fā)明實(shí)施例中,數(shù)據(jù)讀取切換策略的宗旨是先盡可能多的連續(xù)讀取一段視頻數(shù)據(jù),再切換去盡可能多的連續(xù)讀取一段音頻數(shù)據(jù),這兩個(gè)步驟依次重復(fù)循環(huán)。在讀取視頻數(shù)據(jù)時(shí),為了避免視頻幀先進(jìn)先出緩存器出現(xiàn)已滿(mǎn)而無(wú)法繼續(xù)存放數(shù)據(jù),或音頻幀先進(jìn)先出緩存器出現(xiàn)因播放而把數(shù)據(jù)消耗空的情況,在連續(xù)讀取視頻數(shù)據(jù)時(shí)需要監(jiān)控視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器內(nèi)的剰余數(shù)據(jù)大小,在即將發(fā)生上述情況時(shí)及時(shí)的切換去讀取音頻數(shù)據(jù)。同樣,在讀取音頻數(shù)據(jù)時(shí)也需要監(jiān)控視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器內(nèi)的剰余數(shù)據(jù)大小,在出現(xiàn)音頻幀先進(jìn)先出緩存器即將填充滿(mǎn)或是視頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)即將消耗沒(méi)的時(shí)候,切換去讀取視頻數(shù)據(jù)。本發(fā)明實(shí)施例提供的數(shù)據(jù)讀取切換策略具體為步驟(a)讀取持續(xù)時(shí)間為T(mén)time的視頻數(shù)據(jù)送給分離器,在讀取期間,監(jiān)測(cè)音頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器的數(shù)據(jù)剩余情況,如果視頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量大于閾值Tvmax,或者音頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量小于閾值IXlin,則提前結(jié)束步驟(a),執(zhí)行步驟(b),否則讀取完畢后執(zhí)行步驟(b);步驟(b)讀取持續(xù)時(shí)間為T(mén)time的音頻數(shù)據(jù)送給分離器,在讀取期間,監(jiān)測(cè)音頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器的數(shù)據(jù)剩余情況,如果音頻幀先進(jìn)先出緩存器的數(shù)據(jù)量大于閾值Tiimax,或者視頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量小于閾值Tvmin,則提前結(jié)束步驟(b),執(zhí)行步驟(a),否則讀取完畢后執(zhí)行步驟(a)。在本發(fā)明多媒體文件播放處理系統(tǒng)第三優(yōu)選實(shí)施例中,Ttime的取值范圍為3 5 秒,Tvfflax和Tamax的取值范圍為視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器總大小的 90% 95%,閾值Tvmin與Tamin取值范圍為視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器總大小的5% 10%。本發(fā)明實(shí)施例構(gòu)建的視頻幀先進(jìn)先出緩存器16和音頻幀先進(jìn)先出緩存器17用來(lái)暫時(shí)存放由分離器15分離出來(lái)的音頻數(shù)據(jù)幀和視頻數(shù)據(jù)幀,傳輸給解碼器18進(jìn)行解碼。視頻幀先進(jìn)先出緩存器16和音頻幀先進(jìn)先出緩存器17緩存ー些最終播放所需要的數(shù)據(jù)幀,有了這個(gè)緩存的存在,在讀取控制単元14對(duì)視頻數(shù)據(jù)讀緩沖區(qū)12和音頻數(shù)據(jù)讀緩沖區(qū)13進(jìn)行讀取的過(guò)程中,當(dāng)發(fā)現(xiàn)音頻和視頻的時(shí)間戳出現(xiàn)差距時(shí)可以繼續(xù)順序讀取部分?jǐn)?shù)據(jù)后再跳轉(zhuǎn)讀取時(shí)間戳落后的視頻數(shù)據(jù)或音頻數(shù)據(jù),而不用擔(dān)心送到解碼器18的音頻數(shù)據(jù)幀和視頻數(shù)據(jù)幀失去時(shí)間戳的對(duì)齊。這樣,進(jìn)ー步減少跳轉(zhuǎn)的次數(shù),且實(shí)現(xiàn)每次盡可能的多的按順序進(jìn)行數(shù)據(jù)讀取。與視頻數(shù)據(jù)讀緩沖區(qū)和音頻數(shù)據(jù)讀緩沖區(qū)一祥,視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器的大小也要適中,不能過(guò)大或過(guò)小,過(guò)大會(huì)使得“播放”和“暫?!钡瓤刂撇僮鞣从乘俣茸兟贿^(guò)小則會(huì)無(wú)法起到緩存的作用。根據(jù)系統(tǒng)的資源情況,先進(jìn)先出緩存器的大小一般設(shè)置為能夠存放幾秒的數(shù)據(jù)幀。在本發(fā)明多媒體文件播放處理系統(tǒng)第四優(yōu)選實(shí)施例中,視頻幀先進(jìn)先出緩存器為5 8秒的參考視頻數(shù)據(jù)幀大小,音頻幀先進(jìn)先出緩存器為 5 8秒的參考音頻數(shù)據(jù)幀大小,音頻幀先進(jìn)先出緩存器和視頻幀先進(jìn)先出緩存器的大小的比值范圍為1 2 1 4。對(duì)于不同分辨率的片源,上述參考視頻數(shù)據(jù)幀每ー幀的大小會(huì)存在差異,因此針對(duì)不同的多媒體文件,參考視頻數(shù)據(jù)幀每ー幀的大小可以在開(kāi)始階段解析多媒體文件的時(shí)候確定。當(dāng)然,當(dāng)檢測(cè)單元11檢測(cè)到多媒體文件為交織類(lèi)型吋,使用常用的多媒體播放處理方式進(jìn)行播放即可,在此不再詳述。綜上,本發(fā)明實(shí)施例通過(guò)構(gòu)建視頻數(shù)據(jù)讀緩沖區(qū)和音頻數(shù)據(jù)讀緩沖區(qū),構(gòu)建視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器,建立合理的數(shù)據(jù)讀取切換策略,該多媒體文件播放處理系統(tǒng)可以有效解決非交織類(lèi)型多媒體文件跳轉(zhuǎn)頻繁,播放不流暢的問(wèn)題,能有效增強(qiáng)播放器的兼容性。圖4示出了本發(fā)明第二實(shí)施例提供的多媒體文件播放處理方法流程圖。在步驟S401中,檢測(cè)多媒體文件的文件類(lèi)型,多媒體文件類(lèi)型包括交織文件和非交織文件。在步驟S402中,當(dāng)檢測(cè)到多媒體文件的文件類(lèi)型為非交織文件吋,通過(guò)構(gòu)建的視頻數(shù)據(jù)讀緩沖區(qū)預(yù)讀、緩沖多媒體文件的視頻數(shù)據(jù),通過(guò)構(gòu)建的音頻數(shù)據(jù)讀緩沖區(qū)預(yù)讀、緩沖多媒體文件的音頻數(shù)據(jù)。在步驟S403中,將視頻數(shù)據(jù)讀緩沖區(qū)的視頻數(shù)據(jù)和音頻數(shù)據(jù)讀緩沖區(qū)的音頻數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)讀取切換策略進(jìn)行讀取。在步驟S404中,對(duì)根據(jù)數(shù)據(jù)讀取切換策略讀取的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行分離得到視頻數(shù)據(jù)幀和音頻數(shù)據(jù)幀。在步驟S405中,通過(guò)構(gòu)建的視頻幀先進(jìn)先出緩存器緩存分離器分離得到的視頻數(shù)據(jù)幀,通過(guò)構(gòu)建的音頻幀先進(jìn)先出緩存器緩存分離器分離得到的音頻數(shù)據(jù)幀。在步驟S406中,對(duì)視頻幀先進(jìn)先出緩存器緩存的視頻數(shù)據(jù)幀進(jìn)行視頻解碼,對(duì)音頻幀先進(jìn)先出緩存器緩存的音頻數(shù)據(jù)幀進(jìn)行音頻解碼。在步驟S407中,根據(jù)視頻解碼的結(jié)果顯示視頻,根據(jù)音頻解碼的結(jié)果播放聲音。其中,步驟S401中檢測(cè)多媒體文件的文件類(lèi)型的步驟具體為根據(jù)多媒體文件的總碼率設(shè)置閾值Dt ;根據(jù)多媒體文件信息建立索引,索引包括時(shí)間戳t,總播放時(shí)長(zhǎng)Tlen,t時(shí)刻視頻幀在多媒體文件中的位置PosVt, t時(shí)刻音頻幀在多媒體文件中的位置PosAt ;計(jì)算相同時(shí)刻音視頻數(shù)據(jù)幀間的最大文件距離Dmax 當(dāng)Dmax > Dt吋,多媒體文件的文件類(lèi)型為非交織文件。步驟S404中數(shù)據(jù)讀取切換策略具體為步驟(a)讀取持續(xù)時(shí)間為T(mén)time的視頻數(shù)據(jù)送給分離器,在讀取期間,監(jiān)測(cè)音頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器的數(shù)據(jù)剩余情況,如果視頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量大于閾值Tvmax,或者音頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量小于閾值IXlin,則提前結(jié)束步驟(a),執(zhí)行步驟(b),否則讀取完畢后執(zhí)行步驟(b);步驟(b)讀取持續(xù)時(shí)間為T(mén)time的音頻數(shù)據(jù)送給分離器,在讀取期間,監(jiān)測(cè)音頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器的數(shù)據(jù)剩余情況,如果音頻幀先進(jìn)先出緩存器的數(shù)據(jù)量大于閾值Tiimax,或者視頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量小于閾值Tvmin,則提前結(jié)束步驟(b),執(zhí)行步驟(a),否則讀取完畢后執(zhí)行步驟(a)。在本發(fā)明多媒體文件播放處理方法第一優(yōu)選實(shí)施例中,Dt 一般根據(jù)實(shí)際情況設(shè)置為3 6倍的多媒體文件總碼率。在本發(fā)明多媒體文件播放處理方法第二優(yōu)選實(shí)施例中,當(dāng)多媒體文件為1080P高清片源時(shí),視頻數(shù)據(jù)讀緩沖區(qū)為3 5幀I幀大小,音頻數(shù)據(jù)讀緩沖區(qū)為3秒?yún)⒖家纛l數(shù)據(jù)
Dt = PosVt -PosAt Dmax =MAXiDl D2 …A幀大小。在本發(fā)明多媒體文件播放處理方法第三優(yōu)選實(shí)施例中,Ttime的取值范圍為3 5 秒,Tvfflax和Tamax的取值范圍為視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器總大小的 90% 95%,閾值Tvmin與Tamin取值范圍為視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器總大小的5% 10%。在本發(fā)明多媒體文件播放處理方法第四優(yōu)選實(shí)施例中,視頻幀先進(jìn)先出緩存器為 5 8秒的參考視頻數(shù)據(jù)幀大小,音頻幀先進(jìn)先出緩存器為5 8秒的參考音頻數(shù)據(jù)幀大小,音頻幀先進(jìn)先出緩存器和視頻幀先進(jìn)先出緩存器的大小的比值范圍為1 2 1 4。 對(duì)于不同分辨率的片源,上述參考視頻數(shù)據(jù)幀每ー幀的大小會(huì)存在差異,因此針對(duì)不同的多媒體文件,參考視頻數(shù)據(jù)幀每ー幀的大小可以在開(kāi)始階段解析多媒體文件的時(shí)候確定。
具體實(shí)施方式
如上所述,在此不再贅述。本發(fā)明通過(guò)構(gòu)建視頻數(shù)據(jù)讀緩沖區(qū)和音頻數(shù)據(jù)讀緩沖區(qū),構(gòu)建視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器,建立合理的數(shù)據(jù)讀取切換策略,即引入緩沖機(jī)制和先進(jìn)先出監(jiān)控策略,對(duì)非交織類(lèi)型多媒體文件的播放進(jìn)行特別處理,有效減少非交織類(lèi)型多媒體文件播放數(shù)據(jù)讀取的跳轉(zhuǎn)次數(shù),提高了多媒體音視頻數(shù)據(jù)的處理效率,同時(shí)保證音視頻的流暢播放。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于ー計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中, 所述的存儲(chǔ)介質(zhì),如ROM/RAM、磁盤(pán)、光盤(pán)等。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.ー種多媒體文件播放處理系統(tǒng),其特征在干,所述系統(tǒng)包括檢測(cè)單元,用于檢測(cè)多媒體文件的文件類(lèi)型,所述文件類(lèi)型包括交織文件和非交織文件;視頻數(shù)據(jù)讀緩沖區(qū),用于當(dāng)所述檢測(cè)単元檢測(cè)的多媒體文件的文件類(lèi)型為非交織文件吋,預(yù)讀、緩沖多媒體文件的視頻數(shù)據(jù);音頻數(shù)據(jù)讀緩沖區(qū),用于當(dāng)所述檢測(cè)単元檢測(cè)的多媒體文件的文件類(lèi)型為非交織文件吋,預(yù)讀、緩沖多媒體文件的音頻數(shù)據(jù);讀取控制単元,用于設(shè)置數(shù)據(jù)讀取切換策略,將所述視頻數(shù)據(jù)讀緩沖區(qū)的視頻數(shù)據(jù)和音頻數(shù)據(jù)讀緩沖區(qū)的音頻數(shù)據(jù)按照所述數(shù)據(jù)讀取切換策略進(jìn)行讀取;分離器,用于接收所述讀取控制單元讀取的視頻數(shù)據(jù)和音頻數(shù)據(jù),進(jìn)行分離得到視頻數(shù)據(jù)幀和音頻數(shù)據(jù)幀;視頻幀先進(jìn)先出緩存器,用于緩存所述分離器分離得到的視頻數(shù)據(jù)幀; 音頻幀先進(jìn)先出緩存器,用于緩存所述分離器分離得到的音頻數(shù)據(jù)幀; 解碼器,用于對(duì)所述視頻幀先進(jìn)先出緩存器緩存的視頻數(shù)據(jù)幀進(jìn)行視頻解碼,對(duì)所述音頻幀先進(jìn)先出緩存器緩存的音頻數(shù)據(jù)幀進(jìn)行音頻解碼;播放單元,用于根據(jù)所述解碼器解碼的結(jié)果顯示視頻并播放聲音。
2.如權(quán)利要求1所述的系統(tǒng),其特征在干,所述檢測(cè)単元檢測(cè)多媒體文件的文件類(lèi)型的步驟具體為根據(jù)所述多媒體文件的總碼率設(shè)置閾值Dt ;根據(jù)所述多媒體文件信息建立索引,所述索引包括時(shí)間戳t,總播放時(shí)長(zhǎng)Tlen,t時(shí)刻視頻幀在所述多媒體文件中的位置PosVt, t時(shí)刻音頻幀在所述多媒體文件中的位置PosAt ; 計(jì)算相同時(shí)刻音視頻數(shù)據(jù)幀間的最大文件距離Dmax J Dt =PosVt -PosAt [Dmax =MAXiDl D2 …DtJ ’當(dāng)Dmax > Dt吋,所述多媒體文件的文件類(lèi)型為非交織文件。
3.如權(quán)利要求1所述的系統(tǒng),其特征在干,當(dāng)所述多媒體文件為1080P高清片源吋,所述視頻數(shù)據(jù)讀緩沖區(qū)為3 5幀I幀大小,所述音頻數(shù)據(jù)讀緩沖區(qū)為3秒?yún)⒖家纛l數(shù)據(jù)幀大小。
4.如權(quán)利要求1所述的系統(tǒng),其特征在干,所述視頻幀先進(jìn)先出緩存器為5 8秒的參考視頻數(shù)據(jù)幀大小,所述音頻幀先進(jìn)先出緩存器為5 8秒的參考音頻數(shù)據(jù)幀大小,所述音頻幀先進(jìn)先出緩存器和視頻幀先進(jìn)先出緩存器的大小的比值范圍為1 2 1 4。
5.如權(quán)利要求1所述的系統(tǒng),其特征在干,所述數(shù)據(jù)讀取切換策略具體為步驟(a)讀取持續(xù)時(shí)間為T(mén)time的視頻數(shù)據(jù)送給所述分離器,在讀取期間,監(jiān)測(cè)所述音頻幀先進(jìn)先出緩存器和所述音頻幀先進(jìn)先出緩存器的數(shù)據(jù)剩余情況,如果視頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量大于閾值Tvmax,或者音頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量小于閾值IXlin, 則提前結(jié)束步驟(a),執(zhí)行步驟(b),否則讀取完畢后執(zhí)行步驟(b);步驟(b)讀取持續(xù)時(shí)間為T(mén)time的音頻數(shù)據(jù)送給所述分離器,在讀取期間,監(jiān)測(cè)所述音頻幀先進(jìn)先出緩存器和所述音頻幀先進(jìn)先出緩存器的數(shù)據(jù)剩余情況,如果音頻幀先進(jìn)先出緩存器的數(shù)據(jù)量大于閾值Tamax,或者視頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量小于閾值Tvmin,則提前結(jié)束步驟(b),執(zhí)行步驟(a),否則讀取完畢后執(zhí)行步驟(a)。
6.如權(quán)利要求5所述的系統(tǒng),其特征在干,所述Ttime的取值范圍為3 5秒,Tvmax和 Tafflax的取值范圍為所述視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器總大小的90% 95%,閾值Tvmin與Tiimin取值范圍為所述視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器總大小的5% 10%。
7.ー種多媒體文件播放處理方法,其特征在干,所述方法包括以下步驟 檢測(cè)多媒體文件的文件類(lèi)型,所述多媒體文件類(lèi)型包括交織文件和非交織文件;當(dāng)檢測(cè)到多媒體文件的文件類(lèi)型為非交織文件吋,通過(guò)構(gòu)建的視頻數(shù)據(jù)讀緩沖區(qū)預(yù)讀、緩沖所述多媒體文件的視頻數(shù)據(jù),通過(guò)構(gòu)建的音頻數(shù)據(jù)讀緩沖區(qū)預(yù)讀、緩沖所述多媒體文件的音頻數(shù)據(jù);將所述視頻數(shù)據(jù)讀緩沖區(qū)的視頻數(shù)據(jù)和音頻數(shù)據(jù)讀緩沖區(qū)的音頻數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)讀取切換策略進(jìn)行讀取;對(duì)根據(jù)所述數(shù)據(jù)讀取切換策略讀取的視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行分離得到視頻數(shù)據(jù)幀和音頻數(shù)據(jù)幀;通過(guò)構(gòu)建的視頻幀先進(jìn)先出緩存器緩存所述分離器分離得到的視頻數(shù)據(jù)幀,通過(guò)構(gòu)建的音頻幀先進(jìn)先出緩存器緩存所述分離器分離得到的音頻數(shù)據(jù)幀;對(duì)所述視頻幀先進(jìn)先出緩存器緩存的視頻數(shù)據(jù)幀進(jìn)行視頻解碼,對(duì)所述音頻幀先進(jìn)先出緩存器緩存的音頻數(shù)據(jù)幀進(jìn)行音頻解碼;根據(jù)視頻解碼的結(jié)果顯示視頻,根據(jù)音頻解碼的結(jié)果播放聲音。
8.如權(quán)利要求7所述的方法,其特征在干,所述檢測(cè)多媒體文件的文件類(lèi)型的步驟具體為根據(jù)所述多媒體文件的總碼率設(shè)置閾值Dt ;根據(jù)所述多媒體文件信息建立索引,所述索引包括時(shí)間戳t,總播放時(shí)長(zhǎng)Tlen,t時(shí)刻視頻幀在所述多媒體文件中的位置PosVt, t時(shí)刻音頻幀在所述多媒體文件中的位置PosAt ; 計(jì)算相同時(shí)刻音視頻數(shù)據(jù)幀間的最大文件距離Dmax J Dt =PosVt -PosAt [Dmax =MAXiDl D2 …Dn J.當(dāng)Dmax > Dt吋,所述多媒體文件的文件類(lèi)型為非交織文件。
9.如權(quán)利要求7所述的方法,其特征在干,所述視頻幀先進(jìn)先出緩存器的為5 8秒的參考視頻數(shù)據(jù)幀大小,所述音頻幀先進(jìn)先出緩存器為5 8秒的參考音頻數(shù)據(jù)幀大小,所述音頻幀先進(jìn)先出緩存器和視頻幀先進(jìn)先出緩存器的大小的比值范圍為1 2 1 4。
10.如權(quán)利要求7所述的方法,其特征在干,所述數(shù)據(jù)讀取切換策略具體為步驟(a)讀取持續(xù)時(shí)間為T(mén)time的視頻數(shù)據(jù)送給所述分離器,在讀取期間,監(jiān)測(cè)所述音頻幀先進(jìn)先出緩存器和所述音頻幀先進(jìn)先出緩存器的數(shù)據(jù)剩余情況,如果視頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量大于閾值Tvmax,或者音頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量小于閾值IXlin, 則提前結(jié)束步驟(a),執(zhí)行步驟(b),否則讀取完畢后執(zhí)行步驟(b);步驟(b)讀取持續(xù)時(shí)間為T(mén)time的音頻數(shù)據(jù)送給所述分離器,在讀取期間,監(jiān)測(cè)所述音頻幀先進(jìn)先出緩存器和所述音頻幀先進(jìn)先出緩存器的數(shù)據(jù)剩余情況,如果音頻幀先進(jìn)先出CN 102547435 A緩存器的數(shù)據(jù)量大于閾值Tamax,或者視頻幀先進(jìn)先出緩存器內(nèi)的數(shù)據(jù)量小于閾值Tvmin,則提前結(jié)束步驟(b),執(zhí)行步驟(a),否則讀取完畢后執(zhí)行步驟(a);其中,所述Ttinre的取值范圍為3 5秒,Tvfflax和Tamax的取值范圍為所述視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器總大小的90% 95%,閾值Tvmin與Tiimin取值范圍為所述視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器總大小的5% 10%。
全文摘要
本發(fā)明適用于多媒體領(lǐng)域,提供了一種多媒體文件播放處理系統(tǒng)及方法,系統(tǒng)包括檢測(cè)單元,用于檢測(cè)多媒體文件的文件類(lèi)型;音頻數(shù)據(jù)讀緩沖區(qū)和視頻數(shù)據(jù)讀緩沖區(qū),用于分別預(yù)讀、緩沖非交織類(lèi)型多媒體文件的視頻數(shù)據(jù)和音頻數(shù)據(jù);讀取控制單元,用于將視頻數(shù)據(jù)讀緩沖區(qū)的視頻數(shù)據(jù)和音頻數(shù)據(jù)讀緩沖區(qū)的音頻數(shù)據(jù)按照預(yù)設(shè)的數(shù)據(jù)讀取切換策略進(jìn)行讀??;分離器,用于接收讀取控制單元讀取音視頻數(shù)據(jù)并進(jìn)行分離處理;視頻幀先進(jìn)先出緩存器和音頻幀先進(jìn)先出緩存器,用于分別緩存分離器分離得到的視頻數(shù)據(jù)幀和音頻數(shù)據(jù)幀;解碼器,用于對(duì)音視頻數(shù)據(jù)幀進(jìn)行解碼;播放單元,用于根據(jù)解碼結(jié)果顯示視頻并播放聲音。本發(fā)明實(shí)現(xiàn)了非交織類(lèi)型多媒體文件的流暢播放。
文檔編號(hào)H04N21/433GK102547435SQ201110424329
公開(kāi)日2012年7月4日 申請(qǐng)日期2011年12月16日 優(yōu)先權(quán)日2011年12月16日
發(fā)明者付東, 李相濤, 邵詩(shī)強(qiáng) 申請(qǐng)人:Tcl集團(tuán)股份有限公司