【精品博文】TS流(1)——TS流概述
1, TS流的作用
最近在进行一项h264编解码的工作,h264的码流编出来后自然就涉及到码流的传输了,这时候就需要利用到TS流(Transport Stream)了。
如下图,视频/音频数据就是246编码器或者MPEG2编码器编码出来的原始码流,成为ES流(Elementary Stream)。ES流经过分组器被打包成PES流(Packetized Elementary Stream)。而后PES流有两种打包方式,一种是打包成PS流(Program Stream),主要用于存储,如DVD;另一种是打包成TS流,主要用于传输,如广播电视。两者的主要差别在于PS流是不固定长度,其对数据的完整性要求很高。而TS流是固定长度的,其最大的优势在于有很强的抵抗传输误码的能力,且从TS流的任一片段开始都可以独立解码。这里我们只讨论TS流。
2, TS流基本信息
前面提到,TS流在广播电视传输中有着广泛应用,那我们就先来了解下广播电视的接收原理,进行了解TS的基本信息。
如下图,假设我要看CCTV5,而其频道号为1。机顶盒在接收到遥控器的指示后,会进行如下操作:
(1) 搜索PID=0x0000的TS包,这种类型的包称为PAT。所谓PID即Packet ID,类似一张身份证,标示TS包的类型。从PAT中可以获取到频道号为1的PMT的PID为0x001f。
(2) 机顶盒开始搜索PID=0x001f的TS包——CCTV5的PMT。从PMT中又可以获取到2个重要信息:CCTV5的视频包的PID为0x0021,音频包为0x0028。
(3) 接着机顶盒抓取这2种PID的TS包,从中提取出PES。再从PES中提取出ES,送入相应的解码器。最后播放出来就形成了我们看到的精彩纷呈的电视节目。
由上面的描述,我们可以知道,TS流中关键包有PAT,PMT,PES。除此之外,还需要PCR来进行时钟同步。PTS,DTS信息来控制解码以及播放顺序。有了这些,我们就能编码出一段最基本的TS流了。关于它们的具体组成,我将在接下来的文章中给出。