專利名稱:音視頻編碼方法及縮短點播播放前等待時間的播放方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多媒體編碼技術(shù)領(lǐng)域,特別涉及一種音視頻編碼方法及縮短點播播放前等待時間的播放方法。
背景技術(shù):
一種流媒體的實現(xiàn)方式是播放器連接網(wǎng)絡(luò),從網(wǎng)絡(luò)上實時下載音視頻文件數(shù)據(jù), 把下載的數(shù)據(jù)進行解析,并把解析得到的有效數(shù)據(jù)提交給播放器進行播放,實現(xiàn)邊下邊播的效果,這是流媒體領(lǐng)域普通技術(shù)人員已經(jīng)熟知的知識,本文不再詳細(xì)說明。通常音視頻文件,如MP4文件包含moov atom和mdat atom,而播放器對mdat atom 的解析依賴于moov atom,換言之,播放器需要得到moov atom的全部數(shù)據(jù)之后才可以解析 mdat atom,然后播放mdat atom中的音視頻sample數(shù)據(jù)。而moov atom中包含的數(shù)據(jù)量比較大,例如,播放時長為1小時的音視頻文件,其moov atom的大小約為1. 5 2Mbytes。 假設(shè)用戶是通過下行帶寬為IMb/s的ADSL下載數(shù)據(jù),那么這部分的數(shù)據(jù)下載就需要12 16秒,計算公式為1.5X10MX8/10M = 12秒,用戶開始播放前至少需要花費12秒下載 moov atom,之后才能下載mdat atom的數(shù)據(jù)進行播放。延長了播放時間,降低了音視頻播放的效率。
發(fā)明內(nèi)容
(一 )要解決的技術(shù)問題本發(fā)明要解決的技術(shù)問題是如何實現(xiàn)一種能縮短在線音視頻點播播放前等待時間音視頻文件編碼方法。并通過其縮短在線音視頻點播播放前等待時間,以提高播放效率。( 二 )技術(shù)方案為解決上述技術(shù)問題,本發(fā)明提供了一種音視頻編碼方法,包括以下步驟Sl 在音視頻文件中按照采樣數(shù)據(jù)段sample的時間戳由小到大順序排列,如果不同軌的媒體數(shù)據(jù)時間戳相同,則按照所述音視頻文件頭中記錄的軌的先后順序排列;S2 以音視頻關(guān)鍵幀為邊界將若干sample分成若干組,并在原有的音視頻文件中為每組sample增加一個第二索引,記錄該組中每個sample的播放信息,所述每組中的 sample個數(shù)大于等于1 ;S3:依次為每個第二索引建立第一索引,記錄所述每個第二索引在音視頻文件中的信息,所述第二索引在音視頻文件中的信息包括第二索引在文件中的偏移量,第二索引的大小及第二索引中的各軌的開始sample的幀號;S4:將所述第一索引編碼到所述音視頻文件中,并且所述第一索引在音視頻文件中的位置的偏移量分別小于第二索引和sample在文件中的偏移量。其中,所述第二索引在所述音視頻文件中位于對應(yīng)的sample分組之前。其中,所述第二索引與其對應(yīng)的sample分組連續(xù)存放。其中,所述第一索引在所述音視頻文件中位置緊接在元數(shù)據(jù)信息之后。
其中,所述第一索引按與其對應(yīng)的第二索引的先后順序編碼。其中,所述音視頻文件為固定幀率的MP4文件、RMVB文件、WMV文件、MPEG文件或 AVI文件。本發(fā)明還提供了一種縮短點播播放前等待時間的音視頻播放方法,點播的音視頻文件為按上述的音視頻編碼方法編碼得到的音視頻文件,包括以下步驟Al 在線視頻點播系統(tǒng)的客戶端向服務(wù)器端發(fā)出請求,從所述音視頻文件的開始處順序下載數(shù)據(jù);A2 客戶端在下載并解析完所述第一索引后,停止下載后面的數(shù)據(jù);A3:客戶端根據(jù)第一索引中的索引信息,找到音視頻文件中的第一個第二索引在音視頻文件中的偏移量;A4:客戶端重新向服務(wù)器端發(fā)出請求,并指示服務(wù)器忽略從當(dāng)前位置到音視頻文件頭的尾部的數(shù)據(jù),而直接從第一個第二索引開始處下載數(shù)據(jù);A5:客戶端解析下載的數(shù)據(jù),當(dāng)解析到本次下載已經(jīng)完成了第一個第二索引的下載時,解析該第二索引的信息得到對應(yīng)的音視頻分段中每個sample的播放信息;A6 客戶端根據(jù)所述sample的播放信息從服務(wù)器端下載對應(yīng)的sample,并將下載的sample提交到播放器播放。其中,所述步驟A6中在播放時按步驟A5的方式繼續(xù)下載后續(xù)的第二索引及其中記錄的播放信息對應(yīng)的sample,直至所有sample下載完成。其中,在播放過程中,若播放器接收到用戶拖動或者點擊播放進度條的消息時,播放器根據(jù)第一索引和第二索引提供的播放信息中的時間戳到關(guān)鍵幀的文件偏移量重新定位到拖動點對應(yīng)的關(guān)鍵幀處。(三)有益效果本發(fā)明通過在編碼時建立sample的二次索引,并且在播放前當(dāng)下載并解析完第一個第二索引中的播放信息后隨即播放,從而縮短了播放前的等待時間。
圖1是本發(fā)明實施例的一種音視頻編碼方法流程圖;圖2是利用圖1的編碼方法對MP4文件編碼后的儲存邏輯結(jié)構(gòu)圖;圖3是利用圖1的編碼方法得到的音視頻文件實現(xiàn)的一種縮短點播播放前等待時間的音視頻播放方法流程圖。
具體實施例方式下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式
作進一步詳細(xì)描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。下面結(jié)合固定幀率的MP4音視頻文件來說明本發(fā)明的編碼方法,流程如圖1所示, 編碼完成后的MP4文件如圖2所示,該方法具體包括步驟步驟S101,在音視頻文件中按照采樣數(shù)據(jù)段sample的時間戳由小到大順序排列, 如果不同軌的sample時間戳相同,則按照音視頻文件頭中記錄的軌的先后順序排列。對于 MP4文件將其sample按該步驟的方式排序。
步驟S102,以音視頻關(guān)鍵幀為邊界將若干sample分成若干組,并在原有的音視頻文件中為每組sample增加一個第二索引sbix atom,記錄該組中每個sample的播放信息, 每組中的sample個數(shù)大于等于1。其中播放信息包括sample的在文件中的偏移量,大小, 播放時間戳等信息。優(yōu)選地,第二索引sbix atom在音視頻文件中位于對應(yīng)的sample分組之前,并與其對應(yīng)的sample分組連續(xù)存放。步驟S103,依次為每個第二索引sbix atom建立第一索引bfhdatom,記錄所述每個第二索引sbix atom在音視頻文件中的信息,即sbixatom在文件中的偏移量,第二索引 sbix atom的大小,還記錄了每一個sbix atom中的各軌的開始sample的幀號。步驟S104,將第一索引bfhd atom編碼到音視頻文件中,并且在文件中的偏移量分別小于第二索引和sample在文件中的偏移量,位于編碼后生成的文件中的偏移量較小的位置,如第一索引bfhd atom在音視頻文件中的位置緊接在元數(shù)據(jù)信息mvhd atom之后。優(yōu)選地,第一索引bfhd atom按與其對應(yīng)的第二索引sbix atom的先后順序編碼,即 bfhd atom中一次存儲第一個sbix atom到最后一個sbix atom的信息。編碼完成后,MP4文件的存儲邏輯結(jié)構(gòu)如圖2所示,其中各項含義為ftype atom 標(biāo)示該文件為mp4文件;moov atom 文件頭;mvhdatom 對文件的整體性的說明,如總時間,有幾軌等;bfhd atom:第一索引;trak atom —個軌的具體說明及索引;mdat atom:數(shù)據(jù)區(qū);sbix atom 第二索引;sample 采樣數(shù)據(jù)段。如圖3所示,為利用圖1的編碼方法得到的音視頻文件(MP4文件)實現(xiàn)縮短點播播放前等待時間的音視頻播放方法流程,具體包括步驟S301,在線視頻點播系統(tǒng)的客戶端向服務(wù)器端發(fā)出請求,從所述音視頻文件的開始處順序下載數(shù)據(jù);步驟S302,客戶端在下載并解析完所述的第一索引bfhd atom后,停止下載后面的數(shù)據(jù);步驟S303,客戶端根據(jù)第一索引bfhd atom中的索引信息,找到音視頻文件中的第一個第二索引sbix atom在音視頻文件中的偏移量;步驟S304,客戶端重新向服務(wù)器端發(fā)出請求,并指示服務(wù)器忽略從當(dāng)前位置(即 bfhd atom在文件頭中的位置)到音視頻文件頭的尾部的數(shù)據(jù),而直接從第一個第二索引 sbix atom開始處下載數(shù)據(jù);步驟S305,客戶端解析下載的數(shù)據(jù),當(dāng)解析到本次下載已經(jīng)完成了第一個第二索引sbix atom的下載時,解析該第二索引sbix atom的信息得到對應(yīng)的音視頻分段中每個 sample的播放信息;步驟S306,客戶端根據(jù)所述sample的播放信息從服務(wù)器端下載對應(yīng)的sample,并將下載的sample提交到播放器播放。其中,步驟S306中在播放時按步驟S305的方式繼續(xù)下載后續(xù)的第二索引sbix atom及其中記錄的播放信息對應(yīng)的sample,直至所有sample下載完成。這樣實現(xiàn)了邊下邊播的功能,保證了流暢播放。其中,在播放過程中,若播放器接收到用戶拖動或者點擊播放進度條的消息時,播放器重新定位到拖動點對應(yīng)的關(guān)鍵幀處,而bfhdatom和sbix atom提供了播放時間到視頻關(guān)鍵幀文件偏移量的映射方法。
由以上步驟可看出,因為不需要下載moov atom中的原本的索引信息,而單個sbix atom數(shù)據(jù)量遠(yuǎn)遠(yuǎn)小于moov atom,所以減少了播放前下載所需的數(shù)據(jù)量。由于添加了 bfhd atom和sbix atom的mp4文件的結(jié)構(gòu)仍然符合IS0/IEC14496-14 標(biāo)準(zhǔn)的規(guī)定,所以,對于不能夠識別并支持本格式中的bfhd atom和sbix atom的播放器, 仍然可以使用原moov atom中的信息,解析本mp4文件進行播放。由于文件中的sample是嚴(yán)格按照播放時間順序排列的,所以客戶端下載sample 的順序,就是后面需要播放的sample的順序,所以,簡化了客戶端服務(wù)器端的交互,提高了服務(wù)器端文件磁盤讀寫的效率。由于每個sbix atom都與其對應(yīng)的sample分段順序存儲在一起,所以開始播放之后,只需要順序下載文件上的數(shù)據(jù),中間不需要跳轉(zhuǎn)。用戶拖動或者點擊播放進度條會導(dǎo)致播放器重新定位到拖動點對應(yīng)的關(guān)鍵幀處, 而bfhd atom和sbix atom提供了播放時間到視頻關(guān)鍵幀文件偏移量的映射方法,方便播放器的重定位實現(xiàn)。對于固定幀率的mp4文件,播放點對應(yīng)的時間乘以幀率,可計算得到該時間點對應(yīng)的幀數(shù)。在bfhd atom中,記錄了每一個sbix atom開始的幀號,由此可以得到該幀具體屬于哪一個sbix atom。因為每個sbix atom中的第一幀都是關(guān)鍵幀。所以該 sbix atom中的第一幀的文件偏移量就是最終需要的關(guān)鍵幀的文件偏移量。下面以例子來說明本發(fā)明的有益效果。仍然以播放時長1小時的mp4文件做例子來對比,其bfhd atom大小約為32 64k bytes,其第一個sbix atom大小約為3k bytes,用戶仍通過IMb/s的adsl下載數(shù)據(jù),那么最好的情況這部分的數(shù)據(jù)下載約需要(32+3)X8/1000 = 0. 秒,最差約需要 (64+3) X8/1000 = 0. 53秒,比起之前所述12 16秒,時間大大縮短。本發(fā)明的編碼方法還廣泛用于RMVB、AVI、WMV及MPEG等常見的音視頻文件。以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)技術(shù)領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護范圍應(yīng)由權(quán)利要求限定。
權(quán)利要求
1.一種音視頻編碼方法,其特征在于,包括以下步驟51在音視頻文件中按照采樣數(shù)據(jù)段sample的時間戳由小到大順序排列,如果不同軌的媒體數(shù)據(jù)時間戳相同,則按照所述音視頻文件頭中記錄的軌的先后順序排列;52以音視頻關(guān)鍵幀為邊界將若干sample分成若干組,并在原有的音視頻文件中為每組sample增加一個第二索引,記錄該組中每個sample的播放信息,所述每組中的sample 個數(shù)大于等于1 ;S3:依次為每個第二索引建立第一索引,記錄所述每個第二索引在音視頻文件中的信息,所述第二索引在音視頻文件中的信息包括第二索引在文件中的偏移量,第二索引的大小及第二索引中的各軌的開始sample的幀號;S4 將所述第一索引編碼到所述音視頻文件中,并且所述第一索引在音視頻文件中的位置的偏移量分別小于第二索引和sample在文件中的偏移量。
2.如權(quán)利要求1所述的音視頻編碼方法,其特征在于,所述第二索引在所述音視頻文件中位于對應(yīng)的sample分組之前。
3.如權(quán)利要求2所述的音視頻編碼方法,其特征在于,所述第二索引與其對應(yīng)的 sample分組連續(xù)存放。
4.如權(quán)利要求1所述的音視頻編碼方法,其特征在于,所述第一索引在所述音視頻文件中位置緊接在元數(shù)據(jù)信息之后。
5.如權(quán)利要求1所述的音視頻編碼方法,其特征在于,所述第一索引按與其對應(yīng)的第二索引的先后順序編碼。
6.如權(quán)利要求1 5中任一項所述的音視頻編碼方法,其特征在于,所述音視頻文件為固定幀率的MP4文件、RMVB文件、WMV文件、MPEG文件或AVI文件。
7.一種縮短點播播放前等待時間的音視頻播放方法,其特征在于,點播的音視頻文件為按權(quán)利要求1 6任一所述的音視頻編碼方法編碼得到的音視頻文件,包括以下步驟Al 在線視頻點播系統(tǒng)的客戶端向服務(wù)器端發(fā)出請求,從所述音視頻文件的開始處順序下載數(shù)據(jù);A2 客戶端在下載并解析完所述第一索引后,停止下載后面的數(shù)據(jù);A3:客戶端根據(jù)第一索引中的索引信息,找到音視頻文件中的第一個第二索引在音視頻文件中的偏移量;A4:客戶端重新向服務(wù)器端發(fā)出請求,并指示服務(wù)器忽略從當(dāng)前位置到音視頻文件頭的尾部的數(shù)據(jù),而直接從第一個第二索引開始處下載數(shù)據(jù);A5:客戶端解析下載的數(shù)據(jù),當(dāng)解析到本次下載已經(jīng)完成了第一個第二索引的下載時, 解析該第二索引的信息得到對應(yīng)的音視頻分段中每個sample的播放信息;A6 客戶端根據(jù)所述sample的播放信息從服務(wù)器端下載對應(yīng)的sample,并將下載的 sample提交到播放器播放。
8.如權(quán)利要求7所述的縮短點播播放前等待時間的音視頻播放方法,其特征在于,所述步驟A6中在播放時按步驟A5的方式繼續(xù)下載后續(xù)的第二索引及其中記錄的播放信息對應(yīng)的sample,直至所有sample下載完成。
9.如權(quán)利要求8所述的縮短點播播放前等待時間的音視頻播放方法,其特征在于,在播放過程中,若播放器接收到用戶拖動或者點擊播放進度條的消息時,播放器根據(jù)第一索引和第二索引提供的播放信息中的時間戳到關(guān)鍵幀的文件偏移量重新定位到拖動點對應(yīng)的關(guān)鍵幀處。
全文摘要
本發(fā)明公開了一種音視頻編碼方法,涉及多媒體編碼技術(shù)領(lǐng)域,包括在音視頻文件中按照采樣數(shù)據(jù)段sample的時間戳由小到大順序排列,如果不同軌的媒體數(shù)據(jù)時間戳相同,則按照音視頻文件頭中記錄的軌的先后順序排列;以音視頻關(guān)鍵幀為邊界將若干sample分成若干組,并在原有的音視頻文件中為每組sample增加一個第二索引,記錄該組中每個sample的播放信息,每組中的sample個數(shù)大于等于1;依次為每個第二索引建立第一索引,記錄每個第二索引在音視頻文件中的信息;將第一索引編碼到音視頻文件中。還公開了一種縮短點播播放前等待時間的音視頻播放方法。本發(fā)明縮短了在線音視頻點播播放前等待時間,提高了播放效率。
文檔編號H04L29/08GK102170453SQ20111013870
公開日2011年8月31日 申請日期2011年5月26日 優(yōu)先權(quán)日2011年5月26日
發(fā)明者吳超, 焦利鋒 申請人:北京暴風(fēng)網(wǎng)際科技有限公司