關於TS流的解析

helloxchen發表於2010-11-16

IP資料包有首部和資料兩部分組成的,首部的前一部分是固定長度20位元組,是所有IP資料包必須具有的。首部包括:總長度、標識、MF、DF、片偏移。
<wbr>
數字訊號實際傳送的是資料流,一般資料流包括以下三種:

ES流:也叫基本碼流,包含影片、音訊或資料的連續碼流。PES流:也叫打包的基本碼流,是將基本的碼流ES流根據需要分成長度不等的資料包,並加上包頭就形成了打包的基本碼流PES流。

TS流:也叫傳輸流,是由固定長度為188位元組的包組成,含有獨立時基的一個或多個節目,適用於誤碼較多的環境。 <wbr>
<wbr>
TS流(TransportStream)即在MPEG-2系統中,由影片,音訊的ES流和輔助資料復接生成的用於實際傳輸的標準資訊流稱
為MPEG-2傳送流。資訊複合/分離的過程稱為系統復接/分接,據傳輸媒體的質量不同,MPEG-2中定義了兩種複合資訊流:傳送流(TS)和節目流(PS:ProgramStream)
<wbr>
TS流與PS流的區別在於TS流的包結構是固定長度的,而PS流的包結構是可變長度。 PS包與TS包在結構上的這種差異,
導致了它們對傳輸誤碼具有不同的抵抗能力,因而應用的環境也有所不同。TS碼流由於採用了固定長度的包結構,當傳輸誤碼破壞了某一TS包的同步資訊時,接收機可在固定的位置檢測它後面包中的同步資訊,從而恢復同步,避免了資訊丟失。而PS包由於長度是變化的,一旦某一PS包的同步資訊丟失,接收機無法確定下一包的同步位置, 就會造成失步,導致嚴重的資訊丟失。因此,在通道環境較為惡劣,傳輸誤碼較高時,一般採用TS碼流;而在通道環境較好,傳輸誤碼較低時,一般採用PS碼流由於TS碼流具有較強的抵抗傳輸誤碼的能力,因此目前在傳輸媒體中進行傳輸的MPEG-2碼流基本上都採用了TS碼流的包

格。

___________________________________________________
___________________________________________________
TS即是"Transport Stream"的縮寫。他是分包傳送的,每一個包長為188位元組。在TS流裡可以填入很多型別的資料,如影片、音訊、自定義資訊等。他的包的結構為,包頭為4個位元組,負載為184個位元組(這184個位元組不一定都是有效資料,有一些可能為填充資料)。
工作形式:
因為在TS流裡可以填入很多種東西,所以有必要有一種機制來確定怎麼來標識這些資料。制定TS流標準的機構就規定了一些資料結構來定義。比如: PSI(Program Specific Information)表,所以解析起來就像這樣: 先接收一個負載裡為PAT的資料包,在整個資料包裡找到一個PMT包的ID。然後再接收一個含有PMT的資料包,在這個資料包裡找到有關填入資料型別的ID。之後就在接收到的TS包裡找含有這個ID的負載內容,這個內容就是填入的資訊。根據填入的資料型別的ID的不同,在TS流複合多種資訊是可行的。關鍵就是找到標識的ID號。
現在以一個例子來說明具體的操作:
在開始之前先給出一片實際TS流例子:
0000f32ch: 47 40 00 17 00 00 B0 0D 00 01 C1 00 00 00 01 E0 ; G@....?..?...?
0000f33ch: 20 A2 C3 29 41 FF FF FF FF FF FF FF FF FF FF FF ; ⒚)A

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24790158/viewspace-1041557/,如需轉載,請註明出處,否則將追究法律責任。

關於TS流的解析
請登入後發表評論 登入
全部評論

相關文章