基本概念:
ES流:原始流 直接从编码器输出来的数据流 可以使编码过的视频,音频数据流,也可以是其他videotext等编码得到的数据流。ES经过压缩复用之后会形成PES流,ES和PES流都是只包含一种数据的数据流,如只包含音频或只包含视频。
PES流:PES流是ES经过PES打包器处理后形成的数据流,在这个过程中完成了ES流的分组,打包,加入包头信息等操作。PES流的基本单位是PES包,PES是由包头和payload组成的。
TS流:传输流 由PES包重新封装得到 PS:节目流 两者的区别在于TS流是基于packet的位流格式,每个包是188字节或者是204字节,一般使用较多的是188字节的一个包的格式,204字节一个包的格式据说在高清节目中使用较多。而PS流的包结构是可变长度的。PS包由于长度是可变化的,一旦丢失某一数据包,接收机就会进入一种失步状态,从而导致严重得错误信息。而TS流由于采用的固定的包结构,当传输码破坏了某一TS包的同步信息时,接收机可在固定位置检测它后面包中的同步信息。从而恢复同步避免信息丢失。所以TS流内部具有很强大的错误处理能力。
一个TS流中有多种数据,一个packet里面可以是视频数据可以使音频数据也可以是PSI/SI表格数据。
http://www.360doc.com/content/13/0829/15/13084517_310733557.shtml
http://blog.csdn.net/zxh821112/article/details/17587215
里面讲基础知识讲的很清楚,下面我来总结一下我工作第一周学到的东西和完成的任务。
作业1:从一个现成的TS流里解析PAT表和PMT表,并把PES包里的视频提取出来保存到文件里。
首先,解析PAT,PMT表的过程就是分析结构并对一段十六进制数据处理的过程,我们首先要了解packet的结构从中找到包含PAT表的packet,然后解析PAT表解析得到PMT pid,再解析PMT表得到视频音频pid。解析过程要针对各个表的不同数据结构及各字段的含义来进行分析。
TS包: