專利名稱:一種在低端嵌入式產品播放視頻的方法、裝置及終端的制作方法
技術領域:
本發(fā)明屬于音視頻領域,尤其涉及一種在低端嵌入式產品播放視頻的方法、裝置及終端。
背景技術:
低端嵌入式產品,如具有音視頻播放功能的MP4,其硬件條件通常較差,如較小的內存,較低的CPU處理速度或者較窄的DMA帶寬等。低端嵌入式產品本身硬件條件的限制使其播放視頻文件的效果不夠理想,在播放視頻文件的過程中經常會出現(xiàn)停頓或者音視頻播放不同步的現(xiàn)象。這是因為在有限的硬件條件下,播放音視頻碼流交錯存放的視頻文件時,文件系統(tǒng)需要耗費較多的時間來捜索相應的音視頻碼流,從而出現(xiàn)停頓或者音視頻播放不同步的現(xiàn)象。
以圖I為例,圖I示出了 avi文件存放視頻碼流和音頻碼流的格式,由圖I可以看出,該avi文件交錯存放音頻碼流和視頻碼流。在該avi文件中,該音頻碼流的格式為未經過壓縮的pcm格式,該視頻碼流的格式則為MJPEG格式,由于由MJPEG格式的視頻碼流和pcm格式的音頻碼流組成的avi文件是通過視頻轉換工具轉換而來的,因此可能會導致同一時間點的視頻碼流和音頻碼流在該avi文件中的位置相差很大。以圖I為例,假設音頻采樣率為44K,采樣位數(shù)為16bit,聲道數(shù)為2,確定每次寫入的音頻時間單位為200毫秒,則根據公式采樣率*時間* (采樣位數(shù)/8) *聲道數(shù)=BYTE,即可計算出寫入的數(shù)據為17. 6kbyte ;假設視頻的幀率為10幀/秒,則在200毫秒的時間內,寫入2幀的視頻數(shù)據。假設視頻碼流I、視頻碼流2與音頻碼流I為同一個200毫秒時間內的音視頻數(shù)據。文件解析器讀取了音頻碼流I的數(shù)據后,文件指針就指向A位置,這時文件解析器要讀取同一時間點的視頻碼流時,文件指針需往回捜索到B位置,也就是其中需要經過ー個音頻碼流的大小和6個視頻幀碼流的大小,即文件指針需回退I個音頻碼流的大小加上6個視頻幀碼流的大小。當文件解析器讀取完視頻碼流I和視頻碼流2后,將到達C位置,這時讀取下ー個音頻碼流時,文件指針需向前捜索至D位置,即文件指針需向前捜索I個音頻碼流的大小加上6個視頻幀碼流的大小。由于音頻數(shù)據并不是均勻的,可能在捜索的過程中遇到某個時間內的較大音頻數(shù)據,因此這樣的來回捜索占用了大量的CPU時間,極大地影響了低端嵌入式產品的解碼速度,降低解碼速度,造成視頻的停頓或卡的現(xiàn)象。
發(fā)明內容
本發(fā)明實施例提供了一種在低端嵌入式產品播放視頻的方法,g在解決在低端嵌入式產品上播放視頻時,文件解析器需來回搜索讀取的音視頻數(shù)據,占用了大量的CPU時間所導致的視頻停頓的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種在低端嵌入式產品播放視頻的方法,所述方法包括下述步驟在接收到音視頻文件播放請求時,開啟音頻文件句柄和視頻文件句柄;
根據所述音頻文件句柄讀取音頻碼流;根據所述視頻文件句柄讀取視頻碼流;播放讀取的音頻碼流和視頻碼流。本發(fā)明實施例的另一目的在于提供一種在低端嵌入式產品播放視頻的裝置,所述裝置包括文件句柄開啟單元,用于在接收到音視頻文件播放請求時,開啟音頻文件句柄和視頻文件句柄;音頻碼流讀取單元,用于根據所述音頻文件句柄讀取音頻碼流;視頻碼流讀取單元,用于根據所述視頻文件句柄讀取視頻碼流; 音視頻碼流播放單元,用于播放讀取的音頻碼流和視頻碼流。本發(fā)明實施例的另一目的在于提供一種包含上述在低端嵌入式產品播放視頻的裝置的終端。本發(fā)明實施例中,在低端嵌入式產品上接收到音視頻文件的播放請求之后,在文件解析器中開啟音頻文件句柄和視頻文件句柄,該音頻文件句柄用于搜索音視頻文件中的音頻碼流,該視頻文件句柄用于搜索音視頻文件中的視頻碼流,并播放搜索到的音頻碼流和視頻碼流。由于同時開啟了音頻文件句柄和視頻文件句柄,因此在音頻文件句柄讀取下一塊音頻碼流時,只需讀取當前音頻文件句柄的文件指針指向的下一塊音頻碼流,而無需來回搜索下一塊音頻碼流,同時,在視頻文件句柄讀取下一幀視頻碼流時,也無需來回搜索下一幀視頻碼流,減少了來回搜索音頻碼流或者視頻碼流的時間,節(jié)省了占用CPU的時間,從而有效提高解碼速度,減少了在播放音視頻過程中產生的停頓現(xiàn)象或卡現(xiàn)象,使播放更流暢。
圖I是現(xiàn)有技術提供的讀取avi文件中視頻碼流和音頻碼流的示意圖;圖2是本發(fā)明第一實施例提供的在低端嵌入式產品播放視頻的方法流程;圖3是本發(fā)明第一實施例提供的讀取avi文件中視頻碼流和音頻碼流的示意圖;圖4是本發(fā)明第二實施例提供的在低端嵌入式產品播放視頻的裝置的結構。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例中,在播放音視頻文件時開啟了 2個文件句柄,一個是負責搜索音頻碼流的文件句柄,一個是負責搜索視頻碼流的文件句柄,從而減少了在音視頻文件播放過程中文件來回搜索的次數(shù)。本發(fā)明實施例提供了一種在低端嵌入式產品播放視頻的方法、裝置及終端。所述方法包括在接收到音視頻文件播放請求時,開啟音頻文件句柄和視頻文件句柄;根據所述音頻文件句柄讀取音頻碼流;
根據所述視頻文件句柄讀取視頻碼流;播放讀取的音頻碼流和視頻碼流。所述裝置包括文件句柄開啟單元,用于在接收到音視頻文件播放請求時,開啟音頻文件句柄和視頻文件句柄;音頻碼流讀取單元,用于根據所述音頻文件句柄讀取音頻碼流;視頻碼流讀取單元,用于根據所述視頻文件句柄讀取視頻碼流;音視頻碼流播放單元,用于播放讀取的音頻碼流和視頻碼流。所述設備包括上述在低端嵌入式產品播放視頻的裝置的終端。本發(fā)明實施例中,在低端嵌入式產品上接收到音視頻文件的播放請求之后,在文 件解析器中開啟音頻文件句柄和視頻文件句柄,該音頻文件句柄用于搜索音視頻文件中的音頻碼流,該視頻文件句柄用于搜索音視頻文件中的視頻碼流,并播放搜索到的音頻碼流和視頻碼流。由于同時開啟了音頻文件句柄和視頻文件句柄,因此在音頻文件句柄讀取下一塊音頻碼流時,只需讀取當前音頻文件句柄的文件指針指向的下一塊音頻碼流,而無需來回搜索下一塊音頻碼流,同時,在視頻文件句柄讀取下一幀視頻碼流時,也無需來回搜索下一幀視頻碼流,減少了來回搜索音頻碼流或者視頻碼流的時間,節(jié)省了占用CPU的時間,從而有效提高解碼速度,減少了在播放音視頻過程中產生的停頓現(xiàn)象或卡現(xiàn)象,使播放更流暢。為了說明本發(fā)明所述的技術方案,下面通過具體實施例來進行說明。實施例一:圖2示出了本發(fā)明第一實施例提供的在低端嵌入式產品播放視頻的方法流程,在本發(fā)明實施例中,主要以采用pcm格式的音頻碼流和采用MPEG格式的視頻碼流的avi音視頻文件為例進行說明,當然,本發(fā)明也適用于其他類型的音視頻文件,此處不作限定。詳述如下在步驟S21中,在接收到音視頻文件播放請求時,開啟音頻文件句柄和視頻文件句柄。在本實施例中,音視頻文件為交錯存放音頻碼流和視頻碼流的文件,常見的音視頻文件如avi文件。在該avi文件中,音頻碼流可采用pcm格式,視頻碼流可采用MJPEG格式。假設音視頻文件存儲音頻碼流和視頻碼流的格式如圖3所示,在圖3中,存在Olwb音頻碼流I和Olwb音頻碼流2的兩個音頻碼流,以及存在8個視頻碼流。在接收到音視頻文件播放請求時,文件解析器開啟一個用于搜索視頻碼流的視頻文件句柄,以及開啟一個用于搜索音頻碼流的音頻文件句柄。在步驟S22中,根據該音頻文件句柄讀取音頻碼流。在本實施例中,解析音視頻文件的某塊音頻碼流時,開啟的音頻文件句柄中的文件指針首先指向該音頻碼流在文件中的起始地址,如解析圖3中的Olwb音頻碼流I時,文件指針首先指向圖3中的A位置,當讀取了這一塊的音頻碼流之后,該文件指針再指向該塊音頻碼流在文件中的結束地址,如指向圖3中的B位置。在繼續(xù)解析下一塊音頻碼流,如解析圖3中Olwb音頻碼流2時,音頻文件句柄的文件指針首先根據音頻碼流的特征字“Olwb”往前搜索到下一塊音頻碼流一一Olwb音頻碼流2,該音頻文件句柄中的文件指針指向該塊音頻碼流的起始地址,如指向圖3中的C位置,并讀取該音頻碼流的起始地址到音頻碼流的結束地址的音頻碼流,該文件指針指向該音頻碼流在文件中的結束地址,如指向圖3中的D位置。在本實施例中,音頻文件句柄在解析圖3中的Olwb音頻碼流I之后,只需經過2次視頻碼流的搜索即可解析到Olwb音頻碼流2。在步驟S23中,根據該視頻文件句柄讀取視頻碼流。在本實施例中,假設OOdc視頻碼流I和OOdc視頻碼流2與0 Iwb音頻碼流I為同一時間的音視頻數(shù)據,則解析音視頻文件的OOdc視頻碼流I時,開啟的視頻文件句柄中的文件指針首先指向該視頻碼流在文件中的起始地址,如指向圖3中的E位置,當讀取了這一幀的視頻碼流之后,該文件指針再指向該幀視頻碼 流在文件中的結束地址,如指向圖3中的F位置。根據上述方法繼續(xù)讀取OOdc視頻碼流2的視頻碼流,讀取了 OOdc視頻碼流2的視頻碼流之后,文件指針指向圖3中的G位置。在解析了下一塊音頻碼流之后,繼續(xù)解析與該塊音頻碼流對應的視頻碼流,如解析圖3中Olwb音頻碼流3時,視頻文件句柄的文件指針首先根據視頻碼流的特征字“OOdc”
往前搜索到下一巾貞視頻碼流----OOdc視頻碼流3,該視頻文件句柄中的文件指針指向該中貞
視頻碼流的起始地址,如指向圖3中的G位置,并讀取該視頻碼流的起始地址到該視頻碼流的結束地址的視頻碼流,該文件指針指向該視頻碼流在文件中的結束地址,如指向圖3中的H位置。在本實施例中,開啟視頻文件句柄搜索視頻碼流,由于該視頻文件句柄僅用于搜索視頻碼流,因此讀取視頻碼流之前不需大跨度地來回搜索視頻碼流,從而節(jié)省大量的CPU時間,極大地提高了解碼速度。在步驟S24中,播放讀取的音頻碼流和視頻碼流。在本實施例中,快速讀取了音頻碼流和視頻碼流之后,播放讀取的音頻碼流和視頻碼流。在本發(fā)明第一實施例中,在低端嵌入式產品上接收到音視頻文件的播放請求時,在文件解析器中開啟了音頻文件句柄和視頻文件句柄,該音頻文件句柄用于搜索音視頻文件中的音頻碼流,該視頻文件句柄用于搜索音視頻文件中的視頻碼流,并播放搜索到的音頻碼流和視頻碼流。由于同時開啟了音頻文件句柄和視頻文件句柄,因此減少了來回搜索音頻碼流或者視頻碼流的時間,節(jié)省了占用CPU的時間,從而有效提高解碼速度,減少了在播放音視頻過程中產生的停頓現(xiàn)象或卡現(xiàn)象,使播放更流暢。實施例二 :圖4示出了本發(fā)明第二實施例提供的在低端嵌入式產品播放視頻的裝置的結構,為了便于說明,僅示出了與本發(fā)明實施例相關的部分。該在低端嵌入式產品播放視頻的裝置可以用于通過有線或者無線網絡連接服務器的各種信息處理終端,例如移動電話、口袋計算機(Pocket PersonalComputer, PPC)、掌上電腦、計算機、筆記本電腦、個人數(shù)字助理(PersonalDigital Assistant,PDA)等,可以是運行于這些終端內的軟件單元、硬件單元或者軟硬件相結合的單元,也可以作為獨立的掛件集成到這些終端中或者運行于這些終端的應用系統(tǒng)中,其中文件句柄開啟單元41,用于在接收到音視頻文件播放請求時,開啟音頻文件句柄和視頻文件句柄。
在本實施例中,該音視頻文件可以為avi文件,在該avi文件中,音頻碼流可采用pcm格式,視頻碼流可采用MJPEG格式。在接收到音視頻文件播放請求時,文件解析器開啟一個用于搜索視頻碼流的視頻文件句柄,以及開啟一個用于搜索音頻碼流的音頻文件句柄。音頻碼流讀取單元42,用于根據所述音頻文件句柄讀取音頻碼流。作為本發(fā)明的另一個實施例,該音頻碼流讀取單元42包括音頻碼流搜索模塊421,用于所述音頻文件句柄的文件指針根據音頻碼流的特征字搜索音頻碼流,并指向搜索到的音頻碼流的起始地址;音頻碼流讀取模塊422,用于讀取所述音頻碼流后,所述文件指針指向所述音頻碼流的結束地址。在本實施例中,解析音視頻文件的某塊音頻碼流時,開啟的音頻文件句柄中的文 件指針首先指向該音頻碼流在文件中的起始地址,當讀取了這一塊的音頻碼流之后,該文件指針再指向該塊音頻碼流在文件中的結束地址。在繼續(xù)讀取下一塊音頻碼流之前,只需從該塊音頻碼流開始往前搜索,而無需來回搜索,直到搜索到特征字為“Olwb”的音頻碼流。視頻碼流讀取單元43,用于根據所述視頻文件句柄讀取視頻碼流。作為本發(fā)明的另一個實施例,該視頻碼流讀取單元43包括視頻碼流搜索模塊431,用于所述視頻文件句柄的文件指針根據視頻碼流的特征字搜索視頻碼流,并指向搜索到的視頻碼流的起始地址;視頻碼流讀取模塊432,用于讀取所述視頻碼流后,所述文件指針指向所述視頻碼流的結束地址。在本實施例中,解析音視頻文件的某幀視頻碼流時,開啟的視頻文件句柄中的文件指針首先指向該視頻碼流在文件中的起始地址,當讀取了這一塊的視頻碼流之后,該文件指針再指向該幀視頻碼流在文件中的結束地址。在繼續(xù)讀取下一幀視頻碼流之前,只需從該幀視頻頻碼流開始往前搜索,而無需來回搜索,直到搜索到特征字為“OOdc”的視頻碼流。音視頻碼流播放單元44,用于播放讀取的音頻碼流和視頻碼流。在本發(fā)明第二實施例中,文件句柄開啟單元41在接收到音視頻文件播放請求時開啟視頻文件句柄和音頻文件句柄,音頻碼流讀取單元42根據開啟的音頻文件句柄讀取音頻碼流,視頻碼流讀取單元43則根據開啟的視頻文件句柄讀取視頻碼流,在讀取了音視頻碼流之后,音視頻碼流播放單元44播放讀取的音視頻碼流。由于音頻碼流讀取單元42在讀取下一個音頻碼流時,只需讀取當前文件指針指向的下一個音頻碼流,而無需來回搜索下一個音頻碼流,同時視頻碼流讀取單元43在讀取下一個視頻碼流時也無需來回搜索下一個視頻碼流,因此能夠有效節(jié)省搜索音頻碼流或者視頻碼流的時間,從而提高了解碼速度,減少了在播放音視頻過程中產生的停頓現(xiàn)象或卡現(xiàn)象。本發(fā)明實施例中,在低端嵌入式產品上接收到音視頻文件的播放請求之后,在文件解析器中開啟音頻文件句柄和視頻文件句柄,該音頻文件句柄用于搜索音視頻文件中的音頻碼流,該視頻文件句柄用于搜索音視頻文件中的視頻碼流,并播放搜索到的音頻碼流和視頻碼流。由于同時開啟了音頻文件句柄和視頻文件句柄,因此在音頻文件句柄讀取下一塊音頻碼流時,只需讀取當前音頻文件句柄的文件指針指向的下一塊音頻碼流,而無需來回搜索下一塊音頻碼流,同時,在視頻文件句柄讀取下一幀視頻碼流時,也無需來回搜索下一幀視頻碼流,減少了來回搜索音頻碼流或者視頻碼流的時間,節(jié)省了占用CPU的時間,從而有效提高解碼速度,減少了在播放音視頻過程中產生的停頓現(xiàn)象或卡現(xiàn)象,使播放更 流暢。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種在低端嵌入式產品播放視頻的方法,其特征在于,所述方法包括下述步驟 在接收到音視頻文件播放請求時,開啟音頻文件句柄和視頻文件句柄; 根據所述音頻文件句柄讀取音頻碼流; 根據所述視頻文件句柄讀取視頻碼流; 播放讀取的音頻碼流和視頻碼流。
2.如權利要求I所述的方法,其特征在于,所述根據所述音頻文件句柄讀取音頻碼流的步驟具體為 所述音頻文件句柄的文件指針根據音頻碼流的特征字搜索音頻碼流,并指向搜索到的音頻碼流的起始地址; 讀取所述音頻碼流后,所述文件指針指向所述音頻碼流的結束地址。
3.如權利要求I所述的方法,其特征在于,所述根據所述視頻文件句柄讀取視頻碼流的步驟具體為 所述視頻文件句柄的文件指針根據視頻碼流的特征字搜索視頻碼流,并指向搜索到的視頻碼流的起始地址; 讀取所述視頻碼流后,所述文件指針指向所述視頻碼流的結束地址。
4.一種在低端嵌入式產品播放視頻的裝置,其特征在于,所述裝置包括 文件句柄開啟單元,用于在接收到音視頻文件播放請求時,開啟音頻文件句柄和視頻文件句柄; 音頻碼流讀取單元,用于根據所述音頻文件句柄讀取音頻碼流; 視頻碼流讀取單元,用于根據所述視頻文件句柄讀取視頻碼流; 音視頻碼流播放單元,用于播放讀取的音頻碼流和視頻碼流。
5.如權利要求4所述的裝置,其特征在于,所述音頻碼流讀取單元包括 音頻碼流搜索模塊,用于所述音頻文件句柄的文件指針根據音頻碼流的特征字搜索音頻碼流,并指向搜索到的音頻碼流的起始地址; 音頻碼流讀取模塊,用于讀取所述音頻碼流后,所述文件指針指向所述音頻碼流的結束地址。
6.如權利要求4所述的裝置,其特征在于,所述視頻碼流讀取單元包括 視頻碼流搜索模塊,用于所述視頻文件句柄的文件指針根據視頻碼流的特征字搜索視頻碼流,并指向搜索到的視頻碼流的起始地址; 視頻碼流讀取模塊,用于讀取所述視頻碼流后,所述文件指針指向所述視頻碼流的結束地址。
7.一種包含如權利要求4-6任一項所述的在低端嵌入式產品播放視頻的裝置的終端。
全文摘要
本發(fā)明適用于音視頻領域,提供了一種在低端嵌入式產品播放視頻的方法、裝置及終端。所述方法包括下述步驟在接收到音視頻文件播放請求時,開啟音頻文件句柄和視頻文件句柄;根據所述音頻文件句柄讀取音頻碼流;根據所述視頻文件句柄讀取視頻碼流;播放讀取的音頻碼流和視頻碼流。本發(fā)明實施例通過開啟了2個文件句柄,從而減少了在音視頻文件播放過程中文件來回搜索的次數(shù)。
文檔編號H04N7/52GK102752584SQ201110096340
公開日2012年10月24日 申請日期2011年4月18日 優(yōu)先權日2011年4月18日
發(fā)明者胡勝發(fā), 胡靜, 蘇丹 申請人:安凱(廣州)微電子技術有限公司