MPEG2-TS
MPEG2-TS 傳輸串流(MPEG-2 Transport Stream;又称MPEG-TS、MTS、TS)是一種标准数字封装格式,用来傳輸和儲存視訊、音訊與频道、节目信息,应用于數位電視廣播系統,如DVB、ATSC、ISDB[3]:118、IPTV等。
.ts, .tsv, .tsa | |
video/MP2T[1]:38 | |
开发者 | MPEG |
首次发布 | 1995年[2] |
格式类型 | 视频文件格式(媒体流格式) |
作为容器 | 音频、视频、数据 |
为 | M2TS, TOD |
标准 | ISO/IEC 13818-1, ITU-T Recommendation H.222.0[2] |
MPEG2-TS定義於MPEG-2第一部份:系統(即ISO/IEC標準13818-1或ITU-T Rec. H.222.0)。[2]
MPEG2-TS面向的传输介质是地面和卫星等可靠性较低的传输介质,这一点与面向较可靠介质如DVD等的MPEG PS不同。[3]:117
传输协议
1个TS(传输流)中封装了多个子TS。通常子TS是分组化基本流();分组化基本流中封装基本流(),或者非MPEG的编码流,例如AC-3、DTS音频流,MJPEG、JPEG 2000视频流、字幕所需要的文本和图像、用于定义基本流的表、乃至电视台定义的电子节目表(EPG)等。[3]:117
一些相互独立的流可以被复用在一个TS里,例如几个不同的电视频道或者同一个电影的多个拍摄角度。
每个传输流被分割为大小最大为188字节的TS封包(TS Packet),它是多路复用(multiplexing)的基本单位。多个不同的ES(基本流)的内容会分别被封装到TSP中通过同一个TS传输。由于封包(分组)尺寸较小,复用对各个ES造成的时延也较低,对传输误码的耐受性也强于那些将一帧画面封装到一整个包里的容器格式,如MPEG PS和AVI、MOV/MP4、MKV等[4]。这对于视频会议等对实时性要求高的场景特别有意义,因为单个分组损坏不会造成很大的语音延迟。
TS通常以固定码率传输。固定码率传输时,如果上层待传输内容不足,会发送空分组[5]以占位。蓝光光碟中使用的MPEG-2 TS也使用了固定码率。
下表为MPEG-2 TS协议的一个实际应用的例子:日本地面数字电视ISDB-T。表中列举了TS、PES、ES层次上,ISDB-T这个具体的系统使用的具体标准。[3]:118
MPEG-2 TS 协议层次划分 |
ISDB-T的协议栈 | ||||
---|---|---|---|---|---|
ES/Table | MPEG-2 视频(H.262) (ISO/IEC 13818-2) | MPEG-2 AAC (ISO/IEC 13818-7) | 数据服务(独立PES模式) (ARIB STD-B24) |
PSI/SI (ISO/IEC 13818-1、ARIB STD-B10) |
数据服务(轮播模式[註 1]) (ARIB STD-B24) |
TRMP(加密) (ARIB STD-B25) | |||||
PES/Section | MPEG-2 PES (ISO/IEC 13818-1、ARIB STD-B32) |
表的分节(Table Section[註 2]) (ISO/IEC 13818-1、ARIB STD-B32) | |||
TS | MPEG-2 TS (ISO/IEC 13818-1) |
TS中的主要概念
TS分组
TS分组(TS packet)是TS的基本传输单位。在TS范围以外并不存在描述一个TS的属性的全局性的描述体。TS自身的全部信息仅由其自身描述,TS仅由一系列的TS分组构成。
每个TS分组以固定的同步字节起始,这个同步字节的值为0x47,它也是TS分组头的一部分[3]:126。TS分组的必选头长度为4字节,其后为可选部分,为载荷或适配域。TS分组的头部固定以大端序读写。TS分组长度为188字节。
如同所有的传输协议一样,虽然TS分组本身长度为188字节,其底层传输机制可以为每个TS分组附加一些信息以便传输,例如前向纠错用的校验部分。DVB和ISDB数字电视制式的前向纠错信息有16个字节,而ATSC制式有20个字节[7]。
TS分组格式
TS分组包括头部和载荷两部分。头部包括固定长度部分和可选部分,可选部分中包括适配域。适配域有可选的扩展部分。[3]:125,126
本节介绍TS分组头部中的固定部分和适配域(不包含适配域扩展部分)。
名稱 | 比特數 | 描述 | ||
---|---|---|---|---|
固定部分 (4字节) |
同步字节 | sync byte | 8 | 0x47 |
传输错误指示位 | Transport Error Indicator (TEI) | 1 | 发送时(调制前)值为0。接收方的解调器在无法成功解调(即使有前向纠错机制)TS分组内容时,将该位设置为1,表示该TS分组损坏。[8] | |
载荷单元开始指示位 | Payload Unit Start Indicator | 1 | 负载单元起始标示符,一个完整的数据包开始时标记为1, 表示携带的是PSI或PES第一个包 | |
传输优先级 | Transport Priority | 1 | 值为1时,在相同PID的分组中具有更高的优先权。 | |
分组ID | PID | 13 | 用于识别TS分组的ID。一个PID对应一种特定的PSI消息或者一个特定的PES。 | |
传输加扰控制 | Transport Scrambling control (TSC) | 2 | 值为'00'时表示载荷未加密。其余值由具体系统定义。以DVB的CSA[9]:8和ATSC的DCS为例:
| |
适配域存在标志 | Adaptation field exist | 2 |
| |
连续性计数器 | Continuity counter | 4 | 取值为0x00到0x0F,循环。用于检查同一个PID的TS分组的连续性。每当一个TS分组中包含载荷时,该计数器加1。 | |
可选部分 | 适配域 | Adaptation field | 0或更多 | 当适配域存在标志为'10'或'11'时存在 |
载荷 | Payload Data | 0或更多 | 当适配域存在标志为'01'或'11'时存在 |
适配域
名稱 | 位元數 | 描述 | ||
---|---|---|---|---|
固定部分 (2字节) |
适配域长度 | Adaptation Field Length | 8 | 适配域的长度,单位为字节,不包含当前字节。 |
不连续指示位 | Discontinuity indicator | 1 | 如果根据连续性计数器或PCR计算,确认当前分组处于不连续状态,则取值为1。 | |
随机访问指示位 | Random Access indicator | 1 | 如果当前分组是一个PES的起始,取值为1。 | |
ES优先级指示位 | Elementary stream priority indicator | 1 | 取值为1时ES优先级更高。 | |
PCR标识 | PCR flag | 1 | 1表示适配域中有PCR域 | |
OPCR标识 | OPCR flag | 1 | 1表示适配域中有OPCR域 | |
接续点标识 | Splicing point flag | 1 | 1表示适配域中有接续倒数计数器域 | |
传输私有数据标识 | Transport private data flag | 1 | 1表示适配域中有私有数据域 | |
适配域扩展标识 | Adaptation field extension flag | 1 | 1表示适配域中有适配域扩展域 | |
可选部分 | PCR | 33+6+9 | Program Clock Reference。结构为33位的低精度部分+6位的填充部分+9位的高精度部分。具体说明参见PCR一节。 | |
原PCR | OPCR | 33+6+9 | Original PCR。格式与PCR相同。在TS复制时使用。 | |
接续倒数计时器 | Splice countdown | 8 | 指示从当前分组起多少个分组之后接续点出现(取值可为负)。 | |
填充字节 | 可变长度 |
PID
每一种PSI表和每个ES都对应一个PID值,它是将TS解复用为ES和PSI表的依据。常见的实现中,多个PES在TS中以时分复用方式存在,故而各ES的PID会轮流出现。
节目
节目(Program)这个概念存在于TS中。每个节目在TS中对应一个节目映射表(PMT),不同的节目的PMT具有不同的PID。PMT中会指定与这个节目相关的所有ES的PID。
数字电视的一个TS中可能包含3个或更多[註 3]的节目。假设每个节目包含1个视频ES,1到2个音频ES,以及一些对应的PSI、数据服务等,播放电视节目的设备并不需要解析所有节目的视频、音频流,只需要根据PID,选择相应的ES,解析并播放即可,与节目无关的PID对应的TS分组可以全部丢弃。
包含多个节目的TS称为多节目TS(MPTS),只包含1个节目的TS成为单节目TS(SPTS)。
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)[10]:107。其中MPEG-2标准规定了PAT和PMT的具体结构。
在基于MPEG-2 TS的一些系统,如地面数字电视DVB[11]:17,18、ATSC[12][註 4]、ISDB-T[13]等扩展了MPEG2-TS,引入了服务信息(SI,Service Information)这一概念。SI是PSI的补充,在协议层次上与PSI相同[3]:123。
PAT
PAT (PAT: Program Association Table)列出该TS内所有节目。其PID固定为0x0000。每个节目由一个16比特的字段program_number指定。每个program_number都有一个对应的PID,用来指定该节目的PMT。PAT中不包含节目信息时,program_number为0x0000,则应从NIT(PID为0x0010)获取节目信息。[3]:128,129
PMT
PMT (PMT: Program Map Table)包含特定节目相关的信息,每一个节目有一个PMT。虽然MPEG-2协议标准允许多个PMT使用相同的PID,常见的系统中,如ATSC、SCTE中,不同的PMT有各自的PID。
PMT包含的信息有特定节目的program_number,以及该节目对应的所有ES的PID[註 5]。此外还有可选的描述子用来提供整个MPEG-2系统的属性和特定ES的属性。[3]:129
CAT
CAT (CAT: Conditional Access Table) 用于节目的加密與解密。CAT对应PID为0x0001。
NIT
NIT (NIT: Network Information Table 网络信息表)提供TS的相关信息,如频率、调制方式。在扫描所有频道的节目时,关键信息来自各频道的TS中的NIT。[3]:130
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值为基准的偏移量。[10]:46,47
PCR包括一个33比特的低精度部分(90kHz)和一个9比特的高精度部分(27MHz,取值为0-299)[3]:134。PCR容许的最大抖动[註 6]为+/-500ns[10]:12。
数字电视以外的应用
数码摄像机
MPEG-2 TS原本的设计用途是数字电视广播,不过后来用在数码摄像机、录像机、播放机上。用于非广播类用途时,其TS分组格式有所不同:在分组上增加了4个字节长的时间码(Time Code),使分组长度变为192字节[14]:15[15]。时间码使得播放系统可以在允许随机读取的存储介质中快速找到特定时间点的视频内容[16]。借助时间码也可以用来同步多个摄像机拍摄的内容。
蓝光
以前述格式构成的流被蓝光光碟联盟称为“BDAV MPEG-2 transport stream”(字面意思为BDAV版本的MPEG2-TS),其文件扩展名为.m2ts[14]:15[16],俗称M2TS流。蓝光的影碟以BDAV(Blu-ray Disc Movie)格式的BDMV容器存储音频、视频以及其他内容,用于BD-R和BD-RE等格式的录制中[18][19]。由于蓝光的M2TS和标准的MPEG TS格式基本相同,其设备能够以非常小的延迟转录数字电视内容[15]。由于MPEG-2 TS原本就是面向实时播放的格式,使得蓝光的内容可以简单地从流中截取任意一段,降低了视频剪辑的处理成本。此外,这种流格式也使得存储介质的物理损坏对内容的影响降到最小[20]:22。
关联条目
- MPEG媒体传输(MPEG media transport, MMT)
- MPEG PS
- 节目专用信息(PSI)
- 分组化基本流(PES)
- 实时传输协议(RTP)
- 单向轻量封装(Unidirectional Lightweight Encapsulation,ULE)
注释
- 依据ISO/IEC 13818-6[6]
- 参看英文维基百科条目Program-specific_information#Table Sections
- 日本制式ISDB-T中,1个TS通常含有3个标清节目和1个1Seg节目
- 见节目与系统信息协议(PSIP)
- 准确地说是PES的PID
- 例如复用、解复用、传输造成的抖动
参考来源
- . IETF. 2003-07 [2018-06-05]. (原始内容存档于2017-07-07) (英语).
- . ITU-T. [2018-06-05]. (原始内容存档于2019-12-25) (英语).
- 川口英; 辰巳博章. . CQ出版. 2010-06. ISBN 978-4789845434 (日语).
- . ハイテックインター株式会社. 2018-01-18 [2018-06-06]. (原始内容存档于2018-06-06) (日语).
- Gorry Fairhurst. . 阿伯丁大学. 2001-01 (英语).
- . 电波产业会. [2018-06-05]. (原始内容存档于2020-08-06) (日语).
- Wes Simpson. . TV Technology. 2013-09-16 (英语).
- . COOLSTF.com. [2018-06-05]. (原始内容存档于2020-07-05) (英语).
- (PDF). ETSI. 2013-11 [2018-06-05]. (原始内容 (PDF)存档于2019-02-17) (英语).
- (PDF). ISO/IEC. 2000 [2018-06-06]. (原始内容存档 (PDF)于2020-12-03) (英语).
- (PDF). ETSI. [2018-06-07]. (原始内容存档 (PDF)于2020-07-11) (英语).
- . TV without borders. [2018年6月7日]. (原始内容存档于2018年6月7日) (英语).
- . 电波产业会. [2018-06-07]. (原始内容存档于2018-06-12) (日语).
- (PDF). 藍光光碟聯盟. 2005-03 [2018-06-06]. (原始内容 (PDF)存档于2009-07-30) (英语).
- (PDF). 藍光光碟聯盟. 2008-03 [2018-06-06]. (原始内容 (PDF)存档于2009-07-30) (英语).
- poisondeathray. . videohelp.com. 2009-06-03 [2018-06-06]. (原始内容存档于2018-06-06) (英语).
- . JVC. [2018-06-06]. (原始内容存档于2020-11-27) (日语).
- . afterdawn.com. [2018-06-06]. (原始内容存档于2009-07-29) (英语).
- . afterdawn.com. [2018年6月6日]. (原始内容存档于2012年12月9日) (英语).
- (PDF). 藍光光碟聯盟. 2010-10 [2018-06-06]. (原始内容 (PDF)存档于2009-06-12) (英语).