專利名稱:一種支持ts流媒體文件幀精確定位的索引方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及節(jié)目制作技術(shù)領(lǐng)域,尤其涉及一種支持TS流媒體文件幀精確定位、索引的方法。
背景技術(shù):
隨著多媒體視頻業(yè)務(wù)越來(lái)越快的發(fā)展,文件的存儲(chǔ)介質(zhì)已經(jīng)不限于卡帶或者光盤(pán),適合于無(wú)線傳輸?shù)腡S流媒體得到了更多的關(guān)注。然而在目前三網(wǎng)融合的國(guó)家大政策背景下,對(duì)網(wǎng)絡(luò),電視,電信三大網(wǎng)絡(luò)的發(fā)展提出了很高要求。傳輸流是MPEG-2定義的一種數(shù)據(jù)流,TS (Transport Stream)是傳輸流的縮寫(xiě),適合環(huán)境比較惡劣,傳輸不太穩(wěn)定的環(huán)境,是可以在有可能發(fā)生嚴(yán)重錯(cuò)誤的信道環(huán)境下進(jìn)行一個(gè)或多個(gè)節(jié)目的編碼數(shù)據(jù)的傳輸和存儲(chǔ)的。MPEG-2傳輸流是由連續(xù)的傳輸流分組構(gòu)成的,攜帶不同類型的傳輸流分組由不同的PID字段值標(biāo)識(shí)。每個(gè)被指定的PID值都與特定的分組相對(duì)應(yīng),而且是唯一對(duì)應(yīng)。在MPEG-2系統(tǒng)中,TS流是由很多不同種類的包所組成的,這些數(shù)據(jù)包都是188或 192個(gè)字節(jié)大小,這些字節(jié)包含兩部分,包頭和數(shù)據(jù)負(fù)載,包頭包括同步信息,包信息等等, 而數(shù)據(jù)負(fù)載則是傳輸?shù)臄?shù)據(jù),而這些負(fù)載則可以組成PES流或者私有流等數(shù)據(jù)流,因?yàn)橐陨辖Y(jié)構(gòu)當(dāng)傳輸誤碼破壞了某一 TS包的同步信息時(shí),接收機(jī)可在固定的位置檢測(cè)它后面包中的同步信息,從而恢復(fù)同步,避免了信息丟失;TS作為一種媒體數(shù)據(jù)的封裝形式,就不可避免的要將原數(shù)據(jù)文件按傳輸所需形式進(jìn)行封裝,因此在現(xiàn)有技術(shù)中,在國(guó)內(nèi)各網(wǎng)絡(luò)有線公司的內(nèi)容平臺(tái)中,收錄、編輯、存儲(chǔ)、播出的流媒體文件都是以傳輸流TS(Mpeg、HJ64)為主。數(shù)字視頻廣播和網(wǎng)絡(luò)電視等無(wú)線廣播系統(tǒng)的很多素材來(lái)源都是以TS為主的,因?yàn)門(mén)S流(DVB-T,DMB-TH等)如果斷了碼流, 后面的隨時(shí)可以再開(kāi)始解碼怎么看都行。DVB-T,DVB-H, DMB-TH主要指的是調(diào)制解調(diào)(信道編碼和解碼)方式為C0FDM,信源編解碼采用的都是MPEG-2,TS流。目前地面波數(shù)字電視標(biāo)準(zhǔn)中只有日本的ISDB采用MPEG-4(H. 264)編解碼。清晰度方面,DVB-T, DMB-TH標(biāo)準(zhǔn)都可以達(dá)到高清標(biāo)準(zhǔn),DVB-H主要面向手持設(shè)備,接收終端的解析度有限。在非線性編輯視頻播放或者幀采樣的時(shí)候,通常不僅僅關(guān)注于實(shí)時(shí)播放的效率, 而更關(guān)注于關(guān)鍵幀的顯示效果,所以對(duì)于整體的完整的文件在讀取的時(shí)候需要搜索到每一幀的具體位置和數(shù)據(jù)包或者數(shù)據(jù)包組的大小。由于TS流媒體文件很大且多數(shù)不存在適合于方便編輯用的索引數(shù)據(jù),這就需要占用很大的內(nèi)存空間,以現(xiàn)有的存儲(chǔ)方式或內(nèi)置索引結(jié)構(gòu)直接精確定位幀的時(shí)候,資源占用率很大,與每次直接從頭查詢?cè)戳髅襟w文件并無(wú)區(qū)別。在上述現(xiàn)有技術(shù)實(shí)現(xiàn)的過(guò)程中,發(fā)明人發(fā)現(xiàn)至少存在以下技術(shù)問(wèn)題1、編輯時(shí)查詢流媒體文件時(shí)需要等待很長(zhǎng)時(shí)間;2、編輯流媒體文件需要占用內(nèi)存空間很大;3、傳統(tǒng)的編輯定位方法很難達(dá)到快速的幀精確定位;
4、視頻編輯中剪切等編輯操作按照原有的技術(shù),必須要先解碼來(lái)顯示編輯操作的結(jié)果,再編碼壓縮以完成合成片子的目的,但是對(duì)于沒(méi)有任何改變的視音頻幀部分解碼后再編碼是會(huì)有一定的質(zhì)量損失的。
發(fā)明內(nèi)容
為了解決上述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的主要目的是提供一種支持TS (Transport stream傳輸流)流媒體文件幀精確定位的索引方法,通過(guò)對(duì)TS流媒體文件分塊處理并建立分級(jí)索引的方法,解決現(xiàn)有技術(shù)中編輯大文件需要占用很大內(nèi)存和查詢需要很長(zhǎng)時(shí)間的問(wèn)題,達(dá)到高效的幀精確定位編輯,滿足了三網(wǎng)融合市場(chǎng)的需要。本發(fā)明實(shí)施例適用于分塊建立了索引的流媒體文件。為了達(dá)到上述目的,本發(fā)明通過(guò)生成一個(gè)兩級(jí)索引文件為源文件的伴侶文件的方法來(lái)實(shí)現(xiàn)幀精確定位索引,創(chuàng)建兩級(jí)索引文件的主要步驟包括讀取TS流媒體數(shù)據(jù)流信息,預(yù)分析流媒體文件中的視音頻數(shù)據(jù)流的基本文件信息,選擇基本的數(shù)據(jù)結(jié)構(gòu),所述基本的數(shù)據(jù)結(jié)構(gòu)包括節(jié)目流列表PAT數(shù)據(jù)塊和節(jié)目流信息 PMT數(shù)據(jù)塊,根據(jù)所述PMT數(shù)據(jù)塊基本信息預(yù)留一級(jí)索引單元項(xiàng)目空間;解析讀取到的流媒體文件數(shù)據(jù)塊單元,按照數(shù)據(jù)流信息的標(biāo)志碼傳輸包PID值從中得到實(shí)際的編碼數(shù)據(jù)的文件偏移,生成視音頻二級(jí)索引;在記錄二級(jí)索引的同時(shí),根據(jù)數(shù)據(jù)塊出現(xiàn)時(shí)間的先后順序分組形成一級(jí)索引;復(fù)寫(xiě)完整的視音頻流信息。本發(fā)明實(shí)施例還提供了一種支持TS流媒體文件幀精確定位的索引系統(tǒng),具體包括索引文件頭模塊,用于記錄視音頻文件的基本信息;一級(jí)索引模塊,用于記錄視音頻一級(jí)索引;二級(jí)索引模塊,用于存儲(chǔ)視音頻文件的二級(jí)索引。本發(fā)明實(shí)施例通過(guò)對(duì)讀取到的視音頻媒體流文件建立兩級(jí)索引,并且在記錄下每一幀位置的同時(shí)分析記錄下每一幀的基本屬性信息(包括位移信息,數(shù)據(jù)大小,是否關(guān)鍵幀等等),按照固定比特大小的數(shù)據(jù)塊模式存儲(chǔ)并建立索引以最優(yōu)化文件讀取效率(固定大小為磁盤(pán)扇區(qū)的整數(shù)倍),使得在讀取查詢媒體流文件每一幀時(shí)就能在一級(jí)索引進(jìn)行粗定位,再到二級(jí)索引實(shí)現(xiàn)直接快速精確定位目標(biāo)幀的具體位置和基本信息,而無(wú)需對(duì)源文件內(nèi)視音頻數(shù)據(jù)進(jìn)行額外存儲(chǔ),也避免了頻繁直接讀取源文件信息,大大提高了讀取查詢的效率,也減少了對(duì)系統(tǒng)內(nèi)存的過(guò)多依賴。
為了更清楚的說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)的,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例提供的一種支持TS流媒體文件幀精確定位的索引文件生成示意圖2為為本發(fā)明實(shí)施例提供的一種支持TS流媒體文件幀精確定位索引文件加載示意圖;圖3為本發(fā)明實(shí)施例提供的一種支持TS流媒體文件加載索引文件后精確定位的示意圖;圖4為本發(fā)明實(shí)施例提供的一種支持TS流媒體文件幀精確定位的索引系統(tǒng);
圖5為本發(fā)明實(shí)施例提供的一種支持TS流媒體文件幀精確定位的索引文件生成的方法步驟圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然所描述的實(shí)施例僅是本發(fā)明的一部分實(shí)施例,不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有付出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。在實(shí)際應(yīng)用中,編輯的TS素材節(jié)目來(lái)源非常廣泛,包括但不局限于衛(wèi)星收錄即無(wú)線傳輸領(lǐng)域;壓縮工作站可以把任意形式的信號(hào)來(lái)源壓縮封裝成TS,比如磁帶等等; 還可以通過(guò)轉(zhuǎn)碼把其他任意類型的素材轉(zhuǎn)換成的TS ;還包括網(wǎng)絡(luò)下載,從第三方內(nèi)容提供商購(gòu)買的片源等等。本發(fā)明實(shí)施例一方面提供了一種TS流媒體文件幀精確定位索引方法的索引文件生成的方法,如圖1所示為T(mén)S流媒體文件生成的簡(jiǎn)要流程圖。圖2所示為T(mén)S索引文件生成的具體方法步驟步驟Sl 讀取支持TS的流媒體文件基本文件信息,從目標(biāo)數(shù)據(jù)入口處開(kāi)始搜索并解析TS流媒體文件的文件結(jié)構(gòu)信息,其中目標(biāo)數(shù)據(jù)入口可以是文件頭也可以是文件當(dāng)中的任意位置。步驟S2 搜索到PAT (ftOgram Association Table節(jié)目流列表)數(shù)據(jù)塊,記錄下節(jié)目流列表信息。步驟S3 搜索到PMT (Program Map Table節(jié)目流信息)數(shù)據(jù)塊,真正開(kāi)始記錄數(shù)據(jù)。在搜索到PMT數(shù)據(jù)塊的同時(shí)預(yù)寫(xiě)所有數(shù)據(jù)流的基本文件信息到文件頭,在預(yù)寫(xiě)基本文件信息到文件頭的同時(shí)預(yù)留空間以供分別保存視音頻一級(jí)索引數(shù)據(jù)。步驟S4 根據(jù)通用國(guó)際標(biāo)準(zhǔn)解析讀取到的TS媒體流數(shù)據(jù)塊的信息,對(duì)所述TS媒體流數(shù)據(jù)塊根據(jù)數(shù)據(jù)流信息的PID值進(jìn)行分類,不同的PID值記錄節(jié)目流列表中不同的數(shù)據(jù)塊種類,數(shù)據(jù)流分類包括視頻數(shù)據(jù)塊,音頻數(shù)據(jù)塊,其他數(shù)據(jù)塊。如果PID值為節(jié)目流中記錄的視頻數(shù)據(jù)塊則轉(zhuǎn)到步驟S401,如果為音頻數(shù)據(jù)塊則進(jìn)行步驟S5,如果為其他數(shù)據(jù)則不記錄到二級(jí)索引。其中,步驟S4中判斷為視頻數(shù)據(jù)塊后,如果得到第一次有效的視頻數(shù)據(jù)塊后分析實(shí)際數(shù)據(jù)后截取記錄并記錄其視頻序列頭信息數(shù)據(jù)。如果為音頻數(shù)據(jù)塊,得到第一次有效的音頻數(shù)據(jù)后分析出音頻頭信息數(shù)據(jù),如有必要也需要像視頻一樣加以記錄。步驟S401 對(duì)每次讀取的視頻數(shù)據(jù)包進(jìn)行記錄并生成視頻I^yload的二級(jí)索引。 在生成視頻Payload 二級(jí)索引的同時(shí)對(duì)當(dāng)前視頻Payload記錄進(jìn)行關(guān)鍵幀的判斷分析,當(dāng)前幀如果為關(guān)鍵幀則意味著前一個(gè)GOP數(shù)據(jù)的結(jié)束,需要加入累計(jì)到的前一個(gè)視頻GOP數(shù)據(jù)的基本信息二級(jí)索引,并清空累計(jì)信息開(kāi)始記錄新的一個(gè)GOP數(shù)據(jù)。
步驟S5 當(dāng)判斷媒體流數(shù)據(jù)塊為音頻數(shù)據(jù)塊后則對(duì)每次讀取的音頻數(shù)據(jù)流屬性信息記錄到音頻二級(jí)索引內(nèi)。步驟S401與步驟S5是同時(shí)進(jìn)行的,并不分先后順序。步驟S6 對(duì)于步驟S401與步驟S5中生成的視音頻二級(jí)索引后按照固定的數(shù)據(jù)塊大小進(jìn)行存儲(chǔ)(固定數(shù)據(jù)塊大小根據(jù)常見(jiàn)文件的結(jié)構(gòu)信息和磁盤(pán)扇區(qū)的最小單位的倍數(shù)來(lái)決定,本發(fā)明設(shè)定的固定數(shù)據(jù)塊的標(biāo)準(zhǔn)大小為184bytes或者192bytes),當(dāng)存儲(chǔ)上限達(dá)到預(yù)設(shè)值時(shí)則回寫(xiě)到對(duì)應(yīng)的視音頻一級(jí)索引中。步驟S7 對(duì)所述讀取到的媒體流文件可以從文件頭開(kāi)始,也可以從文件當(dāng)中任意位置開(kāi)始按照視音頻數(shù)據(jù)流每一幀都進(jìn)行分別的分級(jí)索引的建立,按照TS流媒體文件的數(shù)據(jù)包到來(lái)的先后順序進(jìn)行讀取解析并建立索引,直到讀取到目標(biāo)文件數(shù)據(jù)結(jié)尾為止。步驟S8 當(dāng)讀取到文件尾的時(shí)候,則復(fù)寫(xiě)完整的視音頻數(shù)據(jù)流信息到一級(jí)索引的文件頭基本文件信息進(jìn)行索引記錄,比如統(tǒng)計(jì)到的實(shí)際視頻幀數(shù)、實(shí)際音頻采樣數(shù),視音頻同步校正時(shí)間等。本發(fā)明實(shí)施例通過(guò)對(duì)支持TS視音頻媒體流文件建立兩級(jí)索引,并且在記錄下每一幀位置的同時(shí)分析記錄下每一幀的基本屬性信息(包括位移信息,數(shù)據(jù)大小,是否關(guān)鍵幀等等),按照固定比特大小的數(shù)據(jù)塊模式存儲(chǔ)并建立索引以最優(yōu)化文件讀取效率(固定大小為磁盤(pán)扇區(qū)的整數(shù)倍),使得在讀取查詢媒體流文件每一幀時(shí)就能在一級(jí)索引進(jìn)行粗定位,再到二級(jí)索引實(shí)現(xiàn)直接快速精確定位目標(biāo)幀的在具體位置和基本信息,而無(wú)需對(duì)源文件內(nèi)視音頻數(shù)據(jù)進(jìn)行額外存儲(chǔ),也避免了頻繁直接讀取源文件信息,大大提高了讀取查詢的效率,也減少了對(duì)系統(tǒng)內(nèi)存的過(guò)多依賴。本發(fā)明的另一方面提供了一種支持TS流媒體文件幀精確定位索引文件的加載方法,如圖3所示,具體為步驟Sl 從目標(biāo)數(shù)據(jù)入口處開(kāi)始對(duì)所需加載的TS流媒體文件的各數(shù)據(jù)塊進(jìn)行容錯(cuò)處理并生成二級(jí)索引,方法步驟如同上述實(shí)施例,在此不再贅述。步驟S2 生成索引文件后,從目標(biāo)數(shù)據(jù)入口處開(kāi)始進(jìn)行索弓I文件的播放加載。步驟S3 對(duì)加載的索引文件進(jìn)行幀精確定位,并加載流媒體文件。步驟S4 對(duì)加載的TS流媒體文件區(qū)分視頻流與音頻流兩種方式分別進(jìn)行加載。步驟S5 對(duì)于加載的音頻流,加載音頻流解碼器;對(duì)于加載的視頻流,加載視頻解碼器;其中,若在視頻流內(nèi)缺少GOP基本信息,需加載GOP基本文件信息,可在加載視頻流信息后加載也可在加載索引文件的同時(shí)加載。步驟S6 分別輸出音頻流與視頻流。本發(fā)明實(shí)施例再一方面提供了一種加載索引文件后幀精確定位的方法,如圖4所示,具體步驟如下步驟Sl 加載基本的文件信息,包括文件頭信息等基本文件信息,分別加載視頻解碼器與音頻解碼器。步驟S2 對(duì)需要播出的幀號(hào)加載一級(jí)索引文件,對(duì)于音頻流文件按照加載一級(jí)音頻索引,加載二級(jí)音頻索引的方式進(jìn)行索引文件的加載。步驟S3 針對(duì)視頻流文件,按照先加載視頻GOP索引后加載視頻Payload索引的方式進(jìn)行加載,其中,對(duì)于加載視頻GOP索引按照先加載視頻GOP —級(jí)索引后加載視頻GOP二級(jí)索引的方式進(jìn)行加載,同樣視頻I^ayload索引也按照先一級(jí)后二級(jí)的方式加載。其中步驟S2與步驟S3同時(shí)進(jìn)行,并不分先后順序。步驟S4 針對(duì)視音頻流文件按照Payload記錄的文件偏移讀取源文件。步驟S5 分別對(duì)視音頻流文件進(jìn)行解碼輸出,音頻解碼器解碼音頻流文件,視頻解碼器解碼視頻流文件,其中在視頻解碼器解碼前,需要加載視頻數(shù)據(jù)頭kquenceheader 數(shù)據(jù)。本發(fā)明實(shí)施例還提供了一種支持TS流媒體文件幀精確定位的索引系統(tǒng),如圖5所示,具體包括索引文件頭模塊10,用于記錄視音頻文件的基本信息;一級(jí)索引模塊20,用于存儲(chǔ)視音頻文件頭基本信息與視音頻一級(jí)索引;二級(jí)索引模塊30,用于存儲(chǔ)視音頻文件的二級(jí)索引。具體的,一級(jí)索引模塊20進(jìn)一步包括視頻GOP索引21,用于存儲(chǔ)視頻GOP —級(jí)索引;視頻Payload索引22,用于存儲(chǔ)視頻Payload —級(jí)索引;音頻索引23,用于存儲(chǔ)音頻一級(jí)索引。具體的,二級(jí)索引模塊30進(jìn)一步包括視頻Payload索引31,用于存儲(chǔ)視頻Payload 二級(jí)索引;視頻GOP索引32,用于存儲(chǔ)關(guān)鍵幀二級(jí)索引;音頻索引33,用于存儲(chǔ)音頻二級(jí)索引;視頻數(shù)據(jù)頭^^仙此吐盼如!·數(shù)據(jù),用于記錄得到的第一次有效視頻數(shù)據(jù)塊后分析截取的實(shí)際數(shù)據(jù)。本發(fā)明實(shí)施例通過(guò)對(duì)讀取到的視音頻媒體流文件建立兩級(jí)索引,并且在記錄下每一幀位置的同時(shí)分析記錄下每一幀的基本屬性信息(包括位移信息,數(shù)據(jù)大小,是否關(guān)鍵幀等等),按照固定比特大小的數(shù)據(jù)塊模式存儲(chǔ)并建立索引以最優(yōu)化文件讀取效率(固定大小為磁盤(pán)扇區(qū)的整數(shù)倍),使得在讀取查詢媒體流文件每一幀時(shí)就能在一級(jí)索引進(jìn)行粗定位,再到二級(jí)索引實(shí)現(xiàn)直接快速精確定位目標(biāo)幀的在具體位置和基本信息,而無(wú)需對(duì)源文件內(nèi)視音頻數(shù)據(jù)進(jìn)行額外存儲(chǔ),也避免了頻繁直接讀取源文件信息,大大提高了讀取查詢的效率,也減少了對(duì)系統(tǒng)內(nèi)存的過(guò)多依賴。通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過(guò)軟件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)。基于這樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是⑶-ROM,U盤(pán),移動(dòng)硬盤(pán)等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上所述,僅為本發(fā)明的一個(gè)最佳具體實(shí)施例,但本發(fā)明的特征并不局限于此,任何熟悉該項(xiàng)技術(shù)的人在本發(fā)明領(lǐng)域內(nèi),可輕易想到的變化或修飾,都應(yīng)涵蓋在以下本發(fā)明的申請(qǐng)專利范圍中。
權(quán)利要求
1.一種支持傳輸流TS流媒體文件幀精確定位的索引方法,其特征在于,包括讀取TS流媒體數(shù)據(jù)流信息,預(yù)分析流媒體文件中的視音頻數(shù)據(jù)流的基本文件信息,選擇基本的數(shù)據(jù)結(jié)構(gòu),所述基本的數(shù)據(jù)結(jié)構(gòu)包括節(jié)目流列表PAT數(shù)據(jù)塊和節(jié)目流信息PMT數(shù)據(jù)塊,根據(jù)所述PMT數(shù)據(jù)塊基本信息預(yù)留一級(jí)索引單元項(xiàng)目空間;解析讀取到的流媒體文件數(shù)據(jù)塊單元,按照數(shù)據(jù)流信息的標(biāo)志碼傳輸包PID值從中得到實(shí)際的編碼數(shù)據(jù)的文件偏移,生成視音頻二級(jí)索引;在記錄二級(jí)索引的同時(shí),根據(jù)數(shù)據(jù)塊出現(xiàn)時(shí)間的先后順序分組形成一級(jí)索引;復(fù)寫(xiě)完整的視音頻流信息。
2.如權(quán)利要求1所述支持TS流媒體文件幀精確定位的索引方法,其特征在于,所述讀取TS流媒體數(shù)據(jù)流信息包括讀取包含TS媒體流基本文件信息的媒體流數(shù)據(jù)塊,讀取到PMT數(shù)據(jù)塊后預(yù)寫(xiě)所有數(shù)據(jù)流的基本信息到文件頭。
3.如權(quán)利要求1所述支持TS流媒體文件幀精確定位的索引方法,其特征在于,所述根據(jù)PMT數(shù)據(jù)塊基本信息預(yù)留一級(jí)索引單元項(xiàng)目空間還包括在預(yù)寫(xiě)文件頭的同時(shí)預(yù)留一級(jí)索引單元項(xiàng)目空間,所述一級(jí)索引單元項(xiàng)目空間包括 文件頭基本信息、視頻GOP—級(jí)索引單元、視頻I^yload—級(jí)索引單元、音頻一級(jí)索引單元。
4.如權(quán)利要求1所述支持TS流媒體文件幀精確定位的索引方法,其特征在于,所述解析讀取到的流媒體文件數(shù)據(jù)塊單元包括根據(jù)通用國(guó)際標(biāo)準(zhǔn)解析讀取到的媒體流數(shù)據(jù)塊的信息,對(duì)所述媒體流數(shù)據(jù)塊按照數(shù)據(jù)流信息的標(biāo)志碼傳輸包PID值進(jìn)行分類,數(shù)據(jù)流分類包括視頻數(shù)據(jù)塊,音頻數(shù)據(jù)塊,其他數(shù)據(jù)塊。
5.如權(quán)利要求4所述支持TS流媒體文件幀精確定位的索引方法,其特征在于,判斷為視頻數(shù)據(jù)塊后包括得到第一次有效的視頻數(shù)據(jù)塊后分析實(shí)際數(shù)據(jù)后截取記錄并記錄其視頻序列頭 Sequenceheader 信息數(shù)據(jù)。
6.如權(quán)利要求1所述支持TS流媒體文件幀精確定位的索引方法,其特征在于,所述生成二級(jí)索引包括視頻GOP 二級(jí)索引、Payload 二級(jí)索引、音頻二級(jí)索引、視頻序列頭kquenceheader信息數(shù)據(jù);
7.如權(quán)利要求1或6所述支持TS流媒體文件幀精確定位的索引方法,其特征在于,所述生成二級(jí)索引具體包括每次讀取的視頻數(shù)據(jù)包進(jìn)行記錄并生成視頻Payload的二級(jí)索引;生成視頻Payload 二級(jí)索引的同時(shí)對(duì)當(dāng)前視頻Payload記錄進(jìn)行關(guān)鍵幀的判斷分析, 當(dāng)前幀如果為關(guān)鍵幀需要加入累計(jì)到的前一個(gè)視頻GOP數(shù)據(jù)的基本信息二級(jí)索引,并清空累計(jì)信息開(kāi)始記錄新的一個(gè)GOP數(shù)據(jù);當(dāng)判斷媒體流數(shù)據(jù)塊為音頻數(shù)據(jù)塊后則對(duì)每次讀取的音頻數(shù)據(jù)流屬性信息記錄到音頻二級(jí)索引內(nèi)。
8.如權(quán)利要求1所述支持TS流媒體文件幀精確定位的索引方法,其特征在于,所述生成二級(jí)索引后還包括生成的視音頻二級(jí)索引后根據(jù)常見(jiàn)文件的結(jié)構(gòu)信息和磁盤(pán)扇區(qū)的最小單位的倍數(shù),按照固定的數(shù)據(jù)塊大小進(jìn)行存儲(chǔ),當(dāng)存儲(chǔ)上限達(dá)到預(yù)設(shè)值時(shí)則回寫(xiě)到對(duì)應(yīng)的視音頻一級(jí)索引中。
9.一種支持傳輸流TS流媒體文件幀精確定位的索引系統(tǒng),其特征在于,具體包括 索引文件頭模塊,用于記錄視音頻文件的基本信息;一級(jí)索引模塊,用于記錄視音頻一級(jí)索引; 二級(jí)索引模塊,用于存儲(chǔ)視音頻文件的二級(jí)索引。
10.如權(quán)利要求9所述支持TS流媒體文件幀精確定位的索引系統(tǒng),其特征在于,所述一級(jí)索引模塊進(jìn)一步包括視頻畫(huà)面組GOP索引,用于存儲(chǔ)視頻GOP —級(jí)索引; 視頻有效載荷Payload索引,用于存儲(chǔ)視頻Payload —級(jí)索引; 音頻索引,用于存儲(chǔ)音頻一級(jí)索引。
11.如權(quán)利要求9所述支持TS流媒體文件幀精確定位的索引系統(tǒng),其特征在于,所述二級(jí)索引模塊進(jìn)一步包括視頻Payload索引,用于存儲(chǔ)視頻Payload 二級(jí)索引; 視頻GOP索引,用于存儲(chǔ)關(guān)鍵幀二級(jí)索引; 音頻索引,用于存儲(chǔ)音頻二級(jí)索引;視頻數(shù)據(jù)頭kquenceheader數(shù)據(jù),用于記錄得到的第一次有效視頻數(shù)據(jù)塊后分析截取的實(shí)際數(shù)據(jù)。
12.—種支持TS流媒體文件幀精確定位的索引文件加載播放方法,其特征在于,包括 加載流媒體索引文件;按照幀精確定位結(jié)果,加載流媒體文件; 分解流媒體文件; 加載解碼器進(jìn)行播放。
13.如權(quán)利要求12所述的支持TS流媒體文件幀精確定位的索引文件加載播放方法,其特征在于,所述分解流媒體文件具體包括流媒體文件可分解為視頻流文件、音頻流文件分別進(jìn)行加載。
14.如權(quán)利要求12所述支持TS流媒體文件幀精確定位的索引文件加載播放方法,其特征在于,加載流媒體文件后還包括視頻流內(nèi)缺少GOP基本信息,需加載GOP基本文件信息,可在加載視頻流信息后加載也可在加載索引文件的同時(shí)加載。
15.一種加載索引文件后幀精確定位的方法,其特征在于,包括加載基本的文件信息,包括文件頭信息等基本文件信息,分別加載視頻解碼器與音頻解碼器;根據(jù)播出的幀號(hào)加載一級(jí)索引文件和二級(jí)索引文件; 按照Payload記錄的文件偏移讀取源文件; 視音頻解碼器解碼后進(jìn)行視音頻輸出。
全文摘要
本發(fā)明公開(kāi)了一種實(shí)現(xiàn)TS流媒體文件直接幀精確定位的索引方法,所述生成用于幀精確定位索引的步驟包括根據(jù)國(guó)際標(biāo)準(zhǔn)讀取并解析TS流媒體數(shù)據(jù)流信息,根據(jù)TS流媒體文件中的視音頻數(shù)據(jù)流的基本信息確定目標(biāo)索引文件的基本結(jié)構(gòu),分別記錄視音頻數(shù)據(jù)塊中記錄的流屬性信息生成視音頻二級(jí)索引,按照出現(xiàn)時(shí)間的先后順序?qū)⒂涗浵碌亩?jí)索引分組形成一級(jí)索引;最后復(fù)寫(xiě)完整的視音頻流信息。通過(guò)本發(fā)明可以有效地避免在實(shí)際定位時(shí)對(duì)源文件的讀取,通過(guò)二級(jí)索引的方法實(shí)現(xiàn)直接快速幀定位,大大提高了讀取查詢的效率,也減少了系統(tǒng)內(nèi)存的存儲(chǔ)空間。
文檔編號(hào)H04N7/24GK102231826SQ20111006115
公開(kāi)日2011年11月2日 申請(qǐng)日期2011年3月14日 優(yōu)先權(quán)日2011年3月14日
發(fā)明者夏永宏, 楊珂 申請(qǐng)人:新奧特(北京)視頻技術(shù)有限公司