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