MPEG2-TS
MPEG2-TS(Transport Stream“传输流”;又称 MTS、TS)是一种传输和存储包含音效、视频与通信协议各种数据的标准格式,用于数字电视广播系统,如 DVB、ATSC、IPTV 等等。
MPEG2-TS 定义于 MPEG-2 第一部分,系统(即原来之 ISO/IEC 标准 13818-1 或 ITU-T Rec. H.222.0)。
Media Player Classic、VLC多媒体播放器 等软件可以直接播放 MPEG-TS 文件。
TS的解码方式是从PID为0 的TS packet内,解析出PAT table,然后 PAT table 找到各个program 源的PID。解码器根据PMT talbe 的ES streaming 的PID,将TS流上的packet 进行区分,并按不同的ES流进行解码。
目录
- 1 套接层
- 2 重要元素
- 2.1 Packet
- 2.2 PID
- 2.3 Programs
- 2.4 PSI
- 2.4.1 PAT
- 2.4.2 PMT
- 2.4.3 CAT
- 2.4.4 NIT
- 2.5 PCR
- 2.6 Null packets
- 3 M2TS
- 4 支持TS的软件
- 4.1 跨平台
- 4.2 Linux
- 4.3 Windows
- 4.4 Mac OS X
- 5 注释
- 6 外部链接
- 7 参见
套接层[编辑]
传输流类似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+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的软件[编辑]
跨平台[编辑]
- FFmpeg
- MPlayer [4]
- VideoLAN VLC media player [5]
Linux[编辑]
- xine
- MythTV
- GStreamer
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
外部链接[编辑]
- MPEG-2 Systems FAQ
- MPEG-4 Systems FAQ
参见[编辑]
- MPEG2-PS
|
- MPEG