MPEG2-TS
MPEG2-TS(Transport Stream「傳輸串流」;又稱TS、TP、MPEG-TS 或 M2T)是用於音效、影像與資料的通訊協定,最早應用於DVD的即時傳送節目。
MPEG2-TS 定義於 MPEG-2 第一部份,系統(即原來之 ISO/IEC 標準 13818-1 或 ITU-T Rec. H.222.0)。
WinDVD、Elecard Player、VLC Media Player等軟體可以直接播放MPEG-TS(播放前最好先將TS流檔的副檔名改為 .mpg)。
TS的解码方式是從PID为0 的TS packet內,解析出PAT table,然后 PAT table 找到各个program 源的PID。解码器根据PMT talbe 的ES streaming 的PID,将TS流上的packet 进行区分,并按不同的ES流进行解码。
目录 |
通訊層 [编辑]
傳輸流類似OSI network 協定堆疊:
- 各種不同節目(programs)的組成
- Packetized Elementary Stream (PES)
- Elementary stream (ES) — audio or video (the below is for video only)
- 圖像群組 (GOP) — providing random access points
- Slice — preventing an error from being propagated through intra prediction
- Macroblock—包含了 6 到 12 DCT blocks
- 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 |
| 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+9 | 節目時鐘參照 |
| OPCR | 33+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 [编辑]
- FFmpeg
- MPlayer [4]
- VideoLAN VLC media player [5]
Linux [编辑]
Windows [编辑]
- Combined Community Codec Pack [6]
- GOM Player
- Squared 5 MPEG Streamclip [7]
- Total video converter
- AVS Video Converter
- 格式工厂
- Windows Media Player 12
Mac OS X [编辑]
- Squared 5 MPEG Streamclip [7]
- Perian Quicktime Plugin for Mac OS X
注釋 [编辑]
- ^ ISO/IEC 13818-1 Second edition. 2000-12-01. xi or 11 according to PDF viewer.
- ^ TSReader Support
- ^ DVB scrambling control bits defined. Page 6
- ^ http://www.mplayerhq.hu/
- ^ http://www.videolan.org/vlc/
- ^ http://cccp-project.net
- ^ 7.0 7.1 http://www.squared5.com
外部連結 [编辑]
參見 [编辑]
|
|||||||||||||||||||||||||||||||||||||||||||