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