TS(MPEG-2 Transport Stream)流,即MPEG-2标准中的传输流,是一种用于数据传输的单一数据流格式,是由一个又一个TS包(packet)组成,每个Packet的长度固定为188字节,由4字节的包头(Packet Header)和184字节的包数据(Pocket Data);(下图中,adaptation field可能存在也可能不存在,长度不固定)
TS传输流相关基本概念:
(1)ES(Elementary Stream),即基本流,直接从编码器出来的数据流,也就是未经打包和分割的原始音视频流;
(2)PES(Packetized Elementary Stream),分组基本流,ES流经过PES打包器后形成的数据流,根据需要将ES流进行分组,加入包头信息(PTS、DTS)等形成的;
(3)PSI(Program Specific Information),节目特定信息,用来描述传输流的组成结构,PSI包括节目关联表(PAT)、节目映射表(PMT)、条件接收表(CAT)、网络信息表(NIT);
(4)PAT(Program Association Table),节目关联表,是PSI(Program Specific Information,节目特定信息)信息的根节点,列出了当前TS流中所有的节目,并指明了每个节目对应的PMT表的PID,通过PAT表,解码器可以找到所需的PMT表,进而找到音视频流的PID
(5)PMT(Program Map Table),节目映射表,存储了节目中各个媒体流(如视频流、音频流等)的PID(Packet Identifier,包标识符),通过该数据,解码器可以找到并解码除所需的音视频流;