MPEG2-TS(Transport Stream“传输流”;又称TS、TP、MPEG-TS 或 M2T)是用于音效、图像与数据的通信协定,最早应用于DVD的实时传送节目。
简介
MPEG2-TS 传输流(MPEG-2 Transport Stream;又称MPEG-TS、MTS、TS)是一种传输和存储包含视频、音频与通信协议各种数据的标准格式,用于数字电视广播系统,如
DVB、
ATSC、
ISDB、IPTV等等。
MPEG2-TS定义于
MPEG-2第一部分:系统(即
ISO/
IEC标准13818-1或
ITU-TRec. H.222.0)。
MPEG2-TS面向的传输介质是
地面和卫星等
可靠性较低的传输介质,这一点与面向较可靠介质如
DVD等的MPEG PS不同。
传输协议
1个TS承载多个子TS,通常子TS是分组化基本流(PES, Packetized elementary stream);分组化基本流上承载基本流(ES,Elementary Stream),或者非MPEG的编码流,例如
AC-3、
DTS音频流,
MJPEG、
JPEG 2000视频流、字幕所需要的文本和图像、用于定义基本流的表、乃至电视台定义的电子节目表(EPG)等。
一些相互独立的流可以被
复用在一个TS里,例如几个不同的电视频道或者同一个电影的多个拍摄角度。
TS分组(TS Packet)大小最大为188字节,它是多路复用的基本单位。多个不同的ES的内容会分别被封装到TSP中通过同一个TS传输。由于分组(分组)尺寸较小,复用对各个ES造成的时延也较低,对传输误码的耐受性也强于那些将一帧画面封装到一整个包里的容器格式,如MPEG PS和
AVI、MOV/
MP4、
MKV等。这对于
视频会议等对实时性要求高的场景特别有意义:单个分组损坏不会造成很大的语音延迟。
TS通常以
固定码率传输。固定码率传输时,如果上层待传输内容不足,会发送空分组以占位。蓝光光盘中使用的MPEG-2 TS也使用了固定码率。
S中的主要概念
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个字节。
TS分组格式
TS分组包括头部和载荷两部分。头部包括固定长度部分和可选部分,可选部分中包括适配域。适配域有可选的扩展部分。
PID
每一种PSI表和每个ES都对应一个PID值,它是将TS解复用为ES和PSI表的依据。常见的实现中,多个PES在TS中以
时分复用方式存在,故而各ES的PID会轮流出现。
节目
节目(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)。
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、
ISDB-T等扩展了MPEG2-TS,引入了服务信息(SI,Service Information)这一概念。SI是PSI的补充,在协议层次上与PSI相同。
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。
空分组
空分组(null packet)存在于某些使用MPEG2-TS的系统中,例如
地面数字电视系统ATSC和DVB,用于保证固定码率。在从ES复用到TS的过程中,如果ES的数据量不足用尽TS的比特率,则
复用器模块会插入空分组。空分组使用保留的PID值0x1FFF。空分组的载荷没有意义,接收者应当丢弃。
数字电视以外的应用
数字摄像机
MPEG-2 TS原本的设计用途是数字电视广播,不过后来用在数字摄像机、录像机、播放机上。用于非广播类用途时,其TS分组格式有所不同:在分组上增加了4个字节长的时间码(Time Code),使分组长度变为192字节。时间码使得播放系统可以在允许随机读取的存储介质中快速找到特定时间点的视频内容。借助时间码也可以用来同步多个摄像机拍摄的内容。
JVC在基于
硬盘存储的
数字摄像机产品中将这种流称为TOD。
蓝光
以前述格式构成的流被
蓝光光盘联盟称为“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原本就是面向实时播放的格式,使得蓝光的内容可以简单地从流中截取任意一段,降低了视频剪辑的处理成本。此外,这种流格式也使得存储介质的物理损坏对内容的影响降到最小。
关联条目
节目专用信息(PSI)
分组化基本流(PES)
单向轻量封装(Unidirectional Lightweight Encapsulation,ULE)