本页使用了标题或全文手工转换

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 table的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 用於判斷packet有無丟失,若無丟失相同pid的CC為連續的。
注:以上总共为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的軟體[编辑]

跨平台[编辑]

Linux[编辑]

Windows[编辑]

Mac OS X[编辑]

注釋[编辑]

外部連結[编辑]

參見[编辑]