MPEG2-TS

维基百科,自由的百科全书
跳转至: 导航搜索

MPEG2-TS(Transport Stream「傳輸串流」;又稱 MTS、TS)是一種傳輸和儲存包含音效、影像與通訊協定各種資料的標準格式,用於數位電視廣播系統,如 DVBATSCIPTV 等等。

MPEG2-TS 定義於 MPEG-2 第一部份,系統(即原來之 ISO/IEC 標準 13818-1 或 ITU-T Rec. H.222.0)。

Media Player ClassicVLC多媒體播放器 等軟體可以直接播放 MPEG-TS 檔案。

TS的解码方式是從PID为0 的TS packet內,解析出PAT table,然后 PAT table 找到各个program 源的PID。解码器根据PMT talbe 的ES streaming 的PID,将TS流上的packet 进行区分,并按不同的ES流进行解码。

多重 MPEG 節目會結合天線.

通訊層[编辑]

傳輸流類似OSI network 協定堆疊

  1. 各種不同節目(programs)的組成
  2. Packetized Elementary Stream (PES)
  3. Elementary stream (ES) — audio or video (the below is for video only)
  4. 圖像群組 (GOP) — providing random access points
  5. Slice — preventing an error from being propagated through intra prediction
  6. Macroblock—包含了 6 到 12 DCT blocks
  7. Encoding block or just block—a DCT encoding block, 8x8 pixels

重要元素[编辑]

Packet[编辑]

packet 是傳輸流(transport stream)內資料的最基本單位,包含了一個同步位元組(sync byte)值為 0x47,接著是13位元的 Packet Identifier (PID). Packets 有 188 bytes 的長度[1]。但是后面有可能会追加一些验证字节,所以packets的长度有可能变为192、204或者208Byte的长度。

部份傳輸流封包格式
名稱 位元 描述
同步位元組(sync byte) 8 0x47
Transport Error Indicator (TEI) 1 如果这个流中包含了一个无法修复的错误,由解调器设置,以告诉多路解调器,该包存在一个无法纠正的错误[2]
Payload Unit Start Indicator 1 1 表示是 PES 数据或 PSI数据的开始部分,否则为零.
Transport Priority 1 1 意思是在相同 PID 的封包中含有更高的優先權.
PID 13 包的ID号
Scrambling control 2 '00' = Not scrambled.   The following per DVB spec:[3]   '01' = Reserved for future use,   '10' = Scrambled with even key,   '11' = Scrambled with odd key
Adaptation field exist 2 01 = 無配適欄, 僅 payload

10 = 僅有 adaptation field
11 = adaptation field 和 payload 皆俱

Continuity counter 4
注:以上总共为32位,被称为传输流的4个字节前缀
Adaptation field 0 或更多 依旗標而定
Payload Data 0 或更多 依旗標而定
配適欄格式
名稱 位元數 描述
Adaptation Field Length 8 Number of bytes in the adaptation field immediately following this byte
Discontinuity indicator 1 Set to 1 if current TS packet is in a discontinuity state with respect to either the continuity counter or the program clock reference
Random Access indicator 1 Set to 1 if the PES packet in this TS packet starts a video/audio sequence
Elementary stream priority indicator 1 1 = 更高優先權
PCR flag 1 1 意思是配適欄含有一 PCR field
OPCR flag 1 1 意思是配適欄含有一 OPCR field
Splicing point flag 1 1 means presence of splice countdown field in adaptation field
Transport private data flag 1 1 means presence of private data bytes in adaptation field
Adaptation field extension flag 1 1 means presence of adaptation field extension
Below fields are optional variable 依旗標而定
PCR 33+6+9 節目時鐘參照
OPCR 33+6+9 Original Program clock reference. Helps when one TS is copied into another
Splice countdown 8 Indicates how many TS packets from this one a splicing point occurs (may be negative)
stuffing bytes variable

PID[编辑]

傳輸流(transport stream)的表(table)或是基礎流(elementary stream)會定義13-bit packet ID (PID).

Programs[编辑]

Transport stream 有 programs的觀念. single program 被 Program Map Table (PMT) 所描述, 有單一的 PID。elementary streams 則透過 PMT的PID列表來嘗試與Program溝通.

PSI[编辑]

PSI 全名是 Program Specific Information,意为program專用資訊。PSI 的PID 是特定的。目前PSI 制定有4 種PSI 表: Program Association Table (PAT), Program Map Table (PMT), Conditional Access Table (CAT), 以及 Network Information Table (NIT). 这四张表分别描述了一个TS所包括的所有ES流的传输结构。

PAT[编辑]

PAT 是指 Program Association Table. 因為PID 由PAT 指定,所以要先解出PAT,再解PMT。

PMT[编辑]

Program Map Tables (PMTs) 包含了 programs的資訊。

CAT[编辑]

CAT用于Program 的加密與解密。CAT所在分组的PID=1。

NIT[编辑]

NIT提供传输流(transfer streaming)的相关資訊,如频率、调制方式。

PCR[编辑]

Program Clock Reference是指時間參考,至少約100 ms會確定一次audio tracks與video之間的同步問題。

Null packets[编辑]

Null packets可能會存在於ATSC 和 DVB之中, 可用於確認constant bitrate。

M2TS[编辑]

M2TS是指Blu-ray BDMV的stream 封装容器。

支援TS的軟體[编辑]

Multiple OS[编辑]

Linux[编辑]

Windows[编辑]

Mac OS X[编辑]

注釋[编辑]

外部連結[编辑]

參見[编辑]