一種可伸縮的傳輸流收錄系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其是涉及一種可伸縮的傳輸流收錄系統(tǒng)及方法。
【背景技術(shù)】
[0002] MPEG組織制定了用于視音頻壓縮編碼及其封裝格式的MPEG-2標準,其中的系統(tǒng) 層定義了將音視頻和其它數(shù)據(jù)組合成適宜于傳輸和存儲的傳輸流規(guī)范。傳輸流具有分組長 度固定、容錯性好、靈活度高、可擴展性強、處理快速等優(yōu)點,因此在數(shù)字電視等領(lǐng)域應用廣 泛。目前傳輸流已成為廣播電視系統(tǒng)流的標準。
[0003] 傳輸流中涉及到的碼流按照形成過程可分為基本流(ES)、打包的基本流(PES)和 傳輸流(TS)。壓縮層對原始的音視頻信號進行編碼后產(chǎn)生ES,系統(tǒng)層將ES封裝成PES,傳 輸流復合器將音視頻PES包切割打包為定長的TS包,與系統(tǒng)信息和填充數(shù)據(jù)交織在一起形 成傳輸流。
[0004] TS包為188字節(jié),由包頭和負載組成,包頭包含了包的ID值(PID)、是否存在調(diào)整 字段、是否存在負載等信息。調(diào)整字段包含系統(tǒng)時間信息(PCR),有效負載可為PES或節(jié)目 詳細信息(PSI)。PES通常含一幀壓縮編碼的音頻或視頻數(shù)據(jù),PSI信息描述解復用和其它 系統(tǒng)操作所需的信息,其中節(jié)目分配表(PAT)和節(jié)目映射表(PMT)尤其重要。PAT表描述每 套節(jié)目對應的PMT表信息,PMT表描述包含在節(jié)目中的每個流的信息。解析時需將TS包拼 湊成PES或PSI,先解析PAT表,再解析PMT表,接著解析并收錄所需的流和系統(tǒng)信息。
[0005] 隨著新媒體業(yè)務(wù)的迅速發(fā)展,內(nèi)容提供商和內(nèi)容運營商已經(jīng)將TS流收錄作為獲 得節(jié)目素材和進行節(jié)目交流的重要手段。現(xiàn)有的TS收錄方法主要有離線式收錄和在線式 收錄。
[0006] 在線式收錄的工作流程是:首先將傳輸流解析為音視頻數(shù)據(jù)和系統(tǒng)信息,這兩類 數(shù)據(jù)進行必要的音視頻同步、編解碼和文件封裝后得到收錄任務(wù)所需的媒體文件。在線式 收錄的優(yōu)點是即時輸出文件,能滿足實時性要求高的應用場景。
[0007] 離線式收錄的工作流程是:首先將傳輸流緩存為中間文件,待到節(jié)目播出完畢緩 存文件存完后,再對緩存文件執(zhí)行與在線式收錄相同的解析和封裝,得到最終的目標文件。 離線式收錄的優(yōu)點是在數(shù)據(jù)流異常時,如收錄系統(tǒng)故障,便于利用緩存文件排查異常原因, 恢復丟失內(nèi)容。
[0008] 但這兩種收錄方式都存在一定的弊端。在線式收錄遇到數(shù)據(jù)流異常時,將會出現(xiàn) 內(nèi)容丟失收錄任務(wù)無法恢復,排查原因困難等問題。離線式收錄的不足之處是:收錄效率 低,任務(wù)時間包括節(jié)目時長和解析、編解碼、文件封裝等時間;占用存儲空間大,收錄時把所 有節(jié)目都存儲下來,收錄多套節(jié)目中的一套時將占用大量的儲存空間。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明的目的在于:針對現(xiàn)有技術(shù)存在的問題,提供一種可伸縮的傳輸流收錄系 統(tǒng)及方法,其結(jié)合了現(xiàn)有兩種收錄方式的優(yōu)勢,具有收錄效率高、存儲空間小、可恢復收錄 任務(wù)、便于異常分析等優(yōu)點;該收錄方式經(jīng)過簡單的配置后可以變更為在線式收錄和離線 式收錄。
[0010] 本發(fā)明的發(fā)明目的通過以下技術(shù)方案來實現(xiàn):
[0011] -種可伸縮的傳輸流收錄系統(tǒng),該系統(tǒng)包括開關(guān)1、開關(guān)2、開關(guān)3、傳輸流解析模 塊、數(shù)據(jù)壓縮模塊、數(shù)據(jù)解壓縮模塊、緩存模塊和文件封裝模塊,傳輸流分別經(jīng)開關(guān)1和開 關(guān)2送入傳輸流解析模塊和數(shù)據(jù)壓縮模塊,所述數(shù)據(jù)壓縮模塊與緩存模塊連接,緩存模塊 依次串連開關(guān)3、數(shù)據(jù)解壓縮模塊后連接傳輸流解析模塊,傳輸流解析模塊連接文件封裝模 塊。
[0012] 作為進一步的方案,所述傳輸流解析模塊從傳輸流中解析出音視頻數(shù)據(jù)和系統(tǒng)信 息。
[0013] 作為進一步的方案,所述數(shù)據(jù)壓縮模塊將傳輸流壓縮為壓縮數(shù)據(jù),并存入緩存模 塊,其步驟如下:
[0014] (1)取一個TS包并解析包頭信息;
[0015] (2)如果當前時間大于收錄開始時間,轉(zhuǎn)入步驟(3),否則執(zhí)行以下步驟:
[0016] 如果TS包含PSI信息,緩存此包,否則,丟棄此包,然后轉(zhuǎn)入步驟(1);
[0017] (3)如果當前時間大于收錄結(jié)束時間,轉(zhuǎn)入步驟(4),否則執(zhí)行以下步驟:
[0018] 如果是包含系統(tǒng)信息的TS包、含有與收錄任務(wù)相關(guān)的PSI信息的TS包或者與收 錄任務(wù)相關(guān)的音視頻TS包,則保留此包,否則丟棄此包,然后轉(zhuǎn)到步驟(1);
[0019] (4)在每個保留TS包的前面添加4個字節(jié)輔助信息以記錄上一個保留TS包到該 保留TS包之間的丟包數(shù),將這個由4字節(jié)輔助信息和188字節(jié)TS包組成的192字節(jié)的數(shù) 據(jù)包記為ETS包,然后將這些ETS包依次寫入壓縮文件,并返回。
[0020] 作為進一步的方案,若傳輸流中含多套節(jié)目,則只保留待收錄節(jié)目的數(shù)據(jù),丟棄其 他節(jié)目的數(shù)據(jù)。
[0021] 作為進一步的方案,所述數(shù)據(jù)解壓縮模塊將壓縮數(shù)據(jù)解壓縮為傳輸流,其步驟如 下:
[0022] (1)將解壓縮傳輸流初始化為無任何數(shù)據(jù)的數(shù)據(jù)流;
[0023] (2)從緩存模塊中讀取一個由4字節(jié)輔助信息和188字節(jié)TS包組成的192字節(jié) ETS包;
[0024] (3)讀取ETS包前部4字節(jié)輔助信息中的丟包數(shù);
[0025] (4)在解壓縮傳輸流的末尾寫入與丟包數(shù)個數(shù)相同的空包;
[0026] (5)在解壓縮傳輸流的末尾寫入ETS包中的188字節(jié)TS包;
[0027](6)重復步驟(2)~(5),直到讀取完所有的ETS包,得到傳輸流。
[0028] 作為進一步的方案,所述文件封裝模塊將音視頻數(shù)據(jù)進行同步處理后封裝為收錄 任務(wù)所需的媒體文件。
[0029] 一種可伸縮的傳輸流收錄系統(tǒng)的方法,首先閉合開關(guān)1和開關(guān)2,斷開開關(guān)3,啟用 可伸縮式收錄的正常工作模式:傳輸流依次經(jīng)傳輸流解析模塊和文件封裝模塊后輸出收錄 任務(wù)所需的媒體文件,同時,傳輸流經(jīng)數(shù)據(jù)壓縮模塊進行壓縮后存入緩存模塊。
[0030] 一種可伸縮的傳輸流收錄系統(tǒng)的方法,首先斷開開關(guān)1和開關(guān)2,閉合開關(guān)3,啟用 可伸縮式收錄的異?;謴湍J剑捍鎯τ诰彺婺K中的傳輸流被數(shù)據(jù)解壓縮模塊解壓縮為普 通的傳輸流后,再經(jīng)傳輸流解析模塊和文件封裝模塊后輸出收錄任務(wù)所需的媒體文件。
[0031] -種可伸縮的傳輸流收錄系統(tǒng)的方法,首先閉合開關(guān)1,斷開開關(guān)2和開關(guān)3,啟用 可伸縮式收錄的在線收錄模式:傳輸流依次經(jīng)傳輸流解析模塊和文件封裝模塊后輸出收錄 任務(wù)所需的媒體文件。
[0032] 一種可伸縮的傳輸流收錄系統(tǒng)的方法,首先斷開開關(guān)1,閉合開關(guān)2和開關(guān)3,啟用 可伸縮式收錄的離線收錄模式:傳輸流經(jīng)數(shù)據(jù)壓縮模塊進行壓縮后存入緩存模塊,待壓縮 完畢后,將存儲于緩存模塊中的傳輸流經(jīng)數(shù)據(jù)解壓縮模塊解壓縮為普通的傳輸流,普通的 傳輸流再經(jīng)傳輸流解析模塊和文件封裝模塊后輸出收錄任務(wù)所需的媒體文件。
[0033] 與現(xiàn)有技術(shù)相比,本發(fā)明通過結(jié)合現(xiàn)有的在線式收錄和離線式收錄的特點,實現(xiàn) 了一種具有收錄效率高、存儲空間小、可恢復收錄任務(wù)、便于異常分析等優(yōu)點的可伸縮式收 錄方式,同時,此收錄方式經(jīng)過簡單配置后可以變更為在線式收錄和離線式收錄。
【附圖說明】
[0034] 圖1是可伸縮的傳輸流收錄系統(tǒng)的構(gòu)架圖;
[0035] 圖2是可伸縮式收錄的正常工作模式的流程圖;
[0036] 圖3是可伸縮式收錄的異?;謴湍J降牧鞒虉D;
[0037] 圖4是可伸縮式收錄的在線收錄模式的流程圖;
[0038] 圖5是可伸縮式收錄的離線收錄模式的流程圖。
【具體實施方式】
[0039] 下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細說明。
[0040] 實施例
[0041] 本發(fā)明提供一種可伸縮的傳輸流收錄系統(tǒng),參見圖1,該系統(tǒng)包括開關(guān)1、開關(guān)2、 開關(guān)3、傳輸流解析模塊、數(shù)據(jù)壓縮模塊、數(shù)據(jù)解壓縮模塊、緩存模塊和文件封裝模塊。傳輸 流分別經(jīng)開關(guān)1和開關(guān)2送入傳輸流解析模塊和數(shù)據(jù)壓縮模塊,數(shù)據(jù)壓縮模塊與緩存模塊 連接,緩存模塊依次串連開關(guān)3、數(shù)據(jù)解壓縮模塊后連接傳輸流解析模塊,傳輸流解析模塊 連接文件封裝模塊。
[0042] 傳輸流解析模塊主要完成傳輸流解析步驟S1 :從傳輸流中解析出音視頻數(shù)據(jù)和 系統(tǒng)信息,系統(tǒng)信息包括音視頻同步信息。
[0043] 文件封裝模塊主要完成文件封裝步驟S2 :在系統(tǒng)信息的幫助下將音視頻數(shù)據(jù)進 行同步處理后封裝為收錄任務(wù)所需的媒體文件;如果用戶所需的音視頻格式和傳輸流中原 有的音視頻格式有差異,還需進行視音頻解碼和編碼。
[0044] 數(shù)據(jù)壓縮模塊主要完成傳輸流壓縮步驟S3 :傳輸流壓縮,將傳輸流壓縮為壓縮數(shù) 據(jù)。傳輸流壓縮的基本思想是選擇性地保留TS包,即只保留與收錄任務(wù)相關(guān)的TS包,丟棄 無關(guān)的TS包。數(shù)據(jù)壓縮模塊將傳輸流壓縮為壓縮數(shù)據(jù),并存入緩存模塊,其步驟如下:
[0045] (1)取一個TS包并解析包頭信息。
[0046] (2)如果當前時間大于收錄開始時間,轉(zhuǎn)入步驟(3)。否則執(zhí)行以下步驟:
[0047] 21)如果TS包含PSI信息,緩存此包;否則,丟棄此包。該步驟中只緩存最新的PSI 信息,首次進入步驟(3)時需將緩存的PSI信息保存下來。
[0048] 22)轉(zhuǎn)入步驟(1)。
[0049] (3)如果當前時間大于收錄結(jié)束時間,轉(zhuǎn)入步驟(4)。否則執(zhí)行以下步驟:
[0050] 31)如果是空包,丟棄此包。
[0051] 32)如果是包含系統(tǒng)信息的TS包,保留此包。該系統(tǒng)信息包含PCR信息。
[0052] 33)如果是含有與收錄任務(wù)相關(guān)的PSI信息的TS包,保留此包。
[0053] 34)如果是與收錄任務(wù)相關(guān)的音視頻TS包,保留此包。為了進一步提高壓縮率,還 可以改進:若當傳輸流中含多套節(jié)目時,只保留待收錄節(jié)目的數(shù)據(jù),丟棄其他節(jié)目的數(shù)據(jù)。 如傳輸流有五套節(jié)目,僅收錄某一套節(jié)目時,只保留該套節(jié)目的數(shù)據(jù)。
[0054] 35)如果是無法識別的TS包或者不識別流的T