標籤:類型 vcl 重複 搜尋 資料 音視頻 碼流 mat layer
****************************************************************************************************
一、TS封裝
1.簡介
MPEG2傳送流(Transport Stream)簡稱TS流,是根據ITU-T Rec.H.222.0 | ISO/IEC 13818-1協議而定義的一種資料流
,其目的是為了在有可能發生嚴重錯誤的環境下進行一個或者多個節目的編碼資料的傳送和儲存。TS流被廣泛應用於
視音頻資料的儲存、電視節目的非線性編輯系統及其網路等方面。
TS packet with PAT | TS packet with PMT | TS packet with PES of I Frame | TS packet with PES of I Frame |
... | TS packet with PES of Audio Frame | TS packet with PES of Audio Frame | ... | TS packet with Private Data |
... | TS packet with PES of P/B Frame | TS packet with PES of P/B Frame | ...
2.術語介紹
TS : Transport Stream , mpeg2 第一部分定義的傳輸串流。
VCL: Video Coding Layer,視頻編碼層,H.264定義的一個元素結果層次,只包括編碼資料。
PTS : Presentation Time Stamp , 顯示時間戳記。
PSI ;Program Specific Information,節目特殊資訊。
PAT : Program Association Table,節目關聯表。
PMT : Program Map Table , 節目映射表。
3.TS封裝介紹
TS流由一系列長度固定為188個位元組的TS包組成。
TS包以4個位元組的首碼(TS header)開始,起始碼0x47,包括13bit的PID,通過PID和節目特殊資訊表(PSI)可以
識別TS包中負載的內容。同一個PID值得TS包,其負載只帶有來自同一個原始流的資料。
PSI是MPEG-2系統中非常重要的資訊,它用來描述TS流的組成結果,有以下4中PSI:
1).節目關聯表: Program Association Table ,PAT,關聯節目號與節目映射表的PID
2).節目映射表:Program Map Table,PMT提供節目號與組成它們的原始流之間的映射。
3).網路資訊表: Network Information Table,NIT
4).條件訪問表: Conditional Access Table,CAT
4.TS封裝結構
1).複合過程
視頻ES(原始流)、音頻ES和其他資料首先打包成PES包,即三個PES包然後通過TS複合器複合成TS流
2).TS流結構
TS流結構,從裡往外數,
第一層為ES層,這一層的資料為視頻的碼流,音訊碼流或其他碼流,即裸流。
第二層為PES層,每個PES包分為包頭和負載兩部分,負載為來自ES層的資料,來自ES層的一段資料可以被打包成多個
PES包。
第三層為TS層,TS包分為包頭和負載兩部分,負載為來自PES包的資料。
5.TS包頭
1).TS流的包頭結構
包頭:
8bit同步位元組 | 1bit傳送錯誤 | 1bit承載指示位 | 1bit傳送優先順序 | 13bit PID | 2bit傳送加密控制 | 2bit適應欄位控制 | 4bit連續計數器 | 調整欄位
調整欄位:
8bit調整欄位長度 | 1bit非連續指示位 | 1bit隨機訪問指示位 | 1bit原始流優先順序指示位 | 5bit標誌位 | 可選欄位 | 填充位元組
可選欄位:
42bit PCR | 42bit OPCR | 8bit拼接遞減計數 | 8bit私人資料長度 | 私人資料 | 8bit使用欄位長度 | 3bit標誌位 | 可選欄位
可選欄位:
1bit ltw有效標記 | 15bit ltw有效位移 | 2bit | 22bit分段速率 | 4bit拼接類型 | 33bit DTS_next_ou
2).包頭詳解
同步位元組(sync_byte): 8bit,包起始標記,值固定為 0100 0111(0x47)
PID : 13bit,指示儲存在當前TS包承載中資料的類型,
0x0000 節目關聯表
0x0001 條件訪問表
0x0002 傳送流描述表
0x0003-0x000F 保留
0x0010-0x1FFE network_PID,Program_map_PID,elementary_PID,或其他
0x1FFF 空包
****************************************************************************************************
二、封裝簡單識別
1.工具識別
Elecard,VLC,MediaInfo
2.二進位 資料分析
1).PS封裝
通過搜尋PSM頭(00 00 01 bc) , PSH頭(00 00 01 ba)以確認封裝類型。
2)RTP封裝
通過搜尋私人標誌 88 77 66 55 來確定封裝類型
3)HIK封裝
通過搜尋私人標誌 01 00 00 00 ,並結合映像組模式,來確定封裝類型
4)TS封裝
通過搜尋0x47同步頭,每間隔188位元組,重複驗證多個同步頭,來確定封裝類型
音視頻處理之TS封裝與封裝識別20181030