MPEG2-TS

MPEG2-TS 傳輸串流（MPEG-2 Transport Stream；又稱 MPEG-TS、MTS、TS）是一種標準數字封裝格式，用來傳輸和儲存視訊、音訊與頻道、節目資訊，應用於數位電視廣播系統，如 DVB、ATSC、ISDB、IPTV 等。

MPEG2-TS 定義於 MPEG-2 第一部份：系統（即 ISO/IEC 標準 13818-1 或 ITU-T Rec. H.222.0）。

MPEG2-TS 面向的傳輸介質是地面和衛星等可靠性較低的傳輸介質，這一點與面向較可靠介質如 DVD 等的不同。

傳輸協議

1 個 TS（傳輸流）中封裝了多個子 TS。通常子 TS 是（PES, Packetized elementary stream）；分組化基本流中封裝（ES，Elementary Stream），或者非 MPEG 的編碼流，例如 AC-3、DTS 音訊流，MJPEG、JPEG 2000 影片流、字幕所需要的文字和影像、用於定義基本流的表、乃至電視臺定義的電子節目表（EPG）等。

一些相互獨立的流可以被複用在一個 TS 裡，例如幾個不同的電影片道或者同一個電影的多個拍攝角度。

每個傳輸流被分割為大小最大為 188 位元組的 TS 封包（TS Packet），它是多路複用（multiplexing）的基本單位。多個不同的 ES（基本流）的內容會分別被封裝到 TSP 中透過同一個 TS 傳輸。由於封包（分組）尺寸較小，複用對各個 ES 造成的時延也較低，對傳輸誤碼的耐受性也強於那些將一幀畫面封裝到一整個包裡的容器格式，如 MPEG PS 和 AVI、MOV/MP4、MKV 等。這對於視訊會議等對即時性要求高的場景特別有意義，因為單個分組損壞不會造成很大的語音延遲。

TS 通常以固定位元速率傳輸。固定位元速率傳輸時，如果上層待傳輸內容不足，會發送空分組以佔位。藍光光碟中使用的 MPEG-2 TS 也使用了固定位元速率。

下表為 MPEG-2 TS 協議的一個實際應用的例子：日本地面數字電視 ISDB-T。表中列舉了 TS、PES、ES 層次上，ISDB-T 這個具體的系統使用的具體標準。

TS 中的主要概念

2.1 TS 分組

TS 分組（TS packet）是 TS 的基本傳輸單位。在 TS 範圍以外並不存在描述一個 TS 的屬性的全域性性的描述體。TS 自身的全部資訊僅由其自身描述，TS 僅由一系列的 TS 分組構成。

每個 TS 分組以固定的起始，這個同步位元組的值為 0x47，它也是 TS 分組頭的一部分。TS 分組的必選頭長度為 4 位元組，其後為可選部分，為載荷或適配域。TS 分組的頭部固定以大端序讀寫。TS 分組長度為 188 位元組。

如同所有的傳輸協議一樣，雖然 TS 分組本身長度為 188 位元組，其底層傳輸機制可以為每個 TS 分組附加一些資訊以便傳輸，例如前向糾錯用的校驗部分。DVB 和 ISDB 數字電視制式的前向糾錯資訊有 16 個位元組，而 ATSC 制式有 20 個位元組。

2.2 TS 分組格式

TS 分組包括頭部和載荷兩部分。頭部包括固定長度部分和可選部分，可選部分中包括適配域。適配域有可選的擴充套件部分。

本節介紹 TS 分組頭部中的固定部分和適配域（不包含適配域擴充套件部分）。

2.2.1 適配域

2.3 PID

每一種 PSI 表和每個 ES 都對應一個 PID 值，它是將 TS 解複用為 ES 和 PSI 表的依據。常見的實現中，多個 PES 在 TS 中以時分複用方式存在，故而各 ES 的 PID 會輪流出現。

2.4 節目

節目（Program）這個概念存在於 TS 中。每個節目在 TS 中對應一個節目對映表（PMT），不同的節目的 PMT 具有不同的 PID。PMT 中會指定與這個節目相關的所有 ES 的 PID。

數字電視的一個 TS 中可能包含 3 個或更多的節目。假設每個節目包含 1 個影片 ES，1 到 2 個音訊 ES，以及一些對應的 PSI、資料服務等，播放電視節目的裝置並不需要解析所有節目的影片、音訊流，只需要根據 PID，選擇相應的 ES，解析並播放即可，與節目無關的 PID 對應的 TS 分組可以全部丟棄。

包含多個節目的 TS 稱為多節目 TS（MPTS），只包含 1 個節目的 TS 成為單節目 TS（SPTS）。

2.5 PSI

節目專用資訊（PSI，Program Specific Information），描述特定節目相關的屬性。MPEG-2 標準規定了 4 種 PSI：節目關聯表（PAT，Program Association Table）、節目對映表（PMT，Program Map Table）、條件訪問表（CAT，Conditional Access Table）以及網路資訊表（NIT，Network Information Table）。其中 MPEG-2 標準規定了 PAT 和 PMT 的具體結構。

在基於 MPEG-2 TS 的一些系統，如地面數字電視 DVB、ATSC（PSIP）}}、ISDB-T 等擴充套件了 MPEG2-TS，引入了服務資訊（SI，Service Information）這一概念。SI 是 PSI 的補充，在協議層次上與 PSI 相同。

2.5.1 PAT

PAT (PAT: Program Association Table) 列出該 TS 內所有節目。其 PID 固定為 0x0000。每個節目由一個 16 位元的欄位 programnumber 指定。每個 programnumber 都有一個對應的 PID，用來指定該節目的 PMT。PAT 中不包含節目資訊時，program_number 為 0x0000，則應從 NIT（PID 為 0x0010）獲取節目資訊。

2.5.2 PMT

PMT (PMT: Program Map Table) 包含特定節目相關的資訊，每一個節目有一個 PMT。雖然 MPEG-2 協議標準允許多個 PMT 使用相同的 PID，常見的系統中，如 ATSC、SCTE 中，不同的 PMT 有各自的 PID。

PMT 包含的資訊有特定節目的 program_number，以及該節目對應的所有 ES 的 PID。此外還有可選的描述子用來提供整個 MPEG-2 系統的屬性和特定 ES 的屬性。

2.5.3 CAT

CAT (CAT: Conditional Access Table) 用於節目的加密與解密。CAT 對應 PID 為 0x0001。

2.5.4 NIT

NIT (NIT: Network Information Table 網路資訊表) 提供 TS 的相關資訊，如頻率、調製方式。在掃描所有頻道的節目時，關鍵資訊來自各頻道的 TS 中的 NIT。

2.6 PCR

節目時鐘參考（PCR，Program Clock Reference）使得解碼後的內容可以正確地同步播放。最多每 100ms，接收方會從 TS 分組的適配域中得到特定節目的 PCR 值，PCR 的 PID 由該節目的 PMT 中的 PCR_PID 域指定。解碼系統應當基於 PCR 生成高精度的系統校時時鐘（System Timing Clock，STC），用於同步聲音 ES 和影片 ES 的內容。STC 是 MPEG-2 系統裡校時的基準。例如，（Presentation timestamp，PTS）的值即是以 PCR 值為基準的偏移量。

PCR 包括一個 33 位元的低精度部分（90kHz）和一個 9 位元的高精度部分（27MHz，取值為 0-299）。PCR 容許的最大抖動為 +/-500ns。

2.7 空分組

空分組（null packet）存在於某些使用 MPEG2-TS 的系統中，例如地面數字電視系統 ATSC 和 DVB，用於保證固定位元速率。在從 ES 複用到 TS 的過程中，如果 ES 的資料量不足用盡 TS 的位元率，則複用器模組會插入空分組。空分組使用保留的 PID 值 0x1FFF。空分組的載荷沒有意義，接收者應當丟棄。

數字電視以外的應用

3.1 數碼攝像機

MPEG-2 TS 原本的設計用途是數字電視廣播，不過後來用在數碼攝像機、錄影機、播放機上。用於非廣播類用途時，其 TS 分組格式有所不同：在分組上增加了 4 個位元組長的時間碼（Time Code），使分組長度變為 192 位元組。時間碼使得播放系統可以在允許隨機讀取的儲存介質中快速找到特定時間點的影片內容。藉助時間碼也可以用來同步多個攝像機拍攝的內容。

JVC 在基於硬碟儲存的產品中將這種流稱為。

3.2 藍光

以前述格式構成的流被藍光光碟聯盟稱為 “BDAV MPEG-2 transport stream”（字面意思為 BDAV 版本的 MPEG2-TS），其副檔名為.m2ts，俗稱 M2TS 流。藍光的影碟以 BDAV（Blu-ray Disc Movie）格式的 BDMV 容器儲存音訊、影片以及其他內容，用於 BD-R 和 BD-RE 等格式的錄製中。由於藍光的 M2TS 和標準的 MPEG TS 格式基本相同，其裝置能夠以非常小的延遲轉錄數字電視內容。由於 MPEG-2 TS 原本就是面向即時播放的格式，使得藍光的內容可以簡單地從流中擷取任意一段，降低了影片剪輯的處理成本。此外，這種流格式也使得儲存介質的物理損壞對內容的影響降到最小。

關聯條目

（MPEG media transport, MMT）
節目專用資訊（PSI）
（PES）
即時傳輸協議（RTP）
（Unidirectional Lightweight Encapsulation，ULE）