TS流 系列日记(1)TS流的基本概念

因为工作需要不得不研究底层TS结构,难受,哎,,,,
TS流 系列日记,持续更新中.....

TS流 系列日记(1)TS流的基本概念
TS流 系列日记(2)TS流的表那些事
TS流 系列日记(3)TS流的PSI/SI 深入学习

这一章主要介绍TS流的基本概念

ts文件分为三层:ts层(Transport Stream)、pes层(Packet Elemental Stream)、es层(Elementary Stream)。es层就是音视频数据,pes层是在音视频数据上加了时间戳等对数据帧的说明信息,ts层是在pes层上加入了数据流识别和传输的必要信息。

ts包的认识(一般拿188包的说事儿):

  • ts流包的大小可能分为188和204字节的包(我认为是204字节是调制出来的包;204个字节,在188个字节后加上了16字节的CRC校验数据);TS文件判断的方法一般为前5个包都是188字节(0x47开头,2..5*188都是0x47),则认为是包大小为188字节。

  • TS包结构,4个字节的ts包头,184字节内容(包数据);Packet Header(包头)主要告诉唯一网络标识符PID;而在Packet Data(包数据)中会给出数据,并且给出table-id。


    TS流 系列日记(1)TS流的基本概念_第1张图片
    image

    TS流 系列日记(1)TS流的基本概念_第2张图片

    PID是TS流中唯一识别标志,Packet Data是什么内容就是由PID决定的。如果一个TS流中的一个Packet的Packet Header中的PID是0x0000,那么这个Packet的Packet Data就是DVB的PAT表而非其他类型数据(如Video、Audio或其他业务信息)。下表给出了一些表的PID值,这些值是固定的,不允许用于更改。
    TS流 系列日记(1)TS流的基本概念_第3张图片

PSI/SI表的构成是:一个表由一个或多个子表构成,表用table_id来标识;不同的子表由table_id和table_id_extension来区分(具有相同的table_id和不同的table_id_extension);一个子表由一个或多个段构成(具有相同的table_id和table_id_extension,不同section_number来区分);每个段由多个TS数据包的数据组成。每个段具有一个完整的数据结构,表的重要参数----描述符在段里传送。

PSI:(ProgramSpecial Information)节目专用信息表。
PSI:PAT,PMT,CAT,NIT四种
PSI信息由节目关联表PAT、条件接收表CAT、节目映射表PMT组成。PSI信息用来描述TS的组成结构;PSI提供了在传送流包中传送节目的初始化信息,信息指定了如何从一个携带多个节目的传输流中找到指定的节目

SI:Service Information.业务信息表
SI:SDT/BAT,EIT,TDT/TOT,ST,SIT,DIT,RST九种
SI信息内容是按照network(网络)→transport strem(传输流)→service(业务)→event(事件)的分层顺序描述。SI数据信息是按照一定的数据结构进行存储的。SI数据主要有:网络信息、传输流信息、业务信息、业务的事件信息等,并且大量的信息都是通过描述符来传输的。

你可能感兴趣的:(TS流 系列日记(1)TS流的基本概念)