- ts流是由长度固定的ts包组成的(每个ts包占188字节),没有别的数据,就是一个个的ts包
- 每个ts包包含ts包头和数据
- 包头长度固定:4字节,在实际的ts流中,发现前六个字节都不是数据部分,删掉就可以了
- 需要根据包头判断包的类型和属性,然后处理数据
- ts包头各位的具体含义参见ts和ps
- 在实际的判断中
- 比如前四个字节为47 40 65 10
- 第一个字节:同步位置,一般都是47,不用管
- 第二个字节(40、20、00)
- 传输错误指示占一位:正确为0,错误为1
- 负载开始标志占一位:这里表示一组数据中的第一块数据(40、 60)比如h264视频流中的第一块数据,或者pat、pmt的第一块数据,视频数据前面会有非h264数据,要根据h264分隔符判断,然后删除这些无效数据
- 传输优先级占一位:这里表示一组数据的最后一块数据(20、60),比如h264中的最后一块数据,数据前面会加上ffffffff的填充
- pid占了剩下的五位(总共13位):一般这个字段是0
- 第三个字节
- 前面的五位pid一般都是0,后面的这八位决定了ts包是什么包
- 65:h264视频
- 00:pat(ts流中的第一个数据包)
- 10:pmt(ts流中的第二个数据包)
- 前面的五位pid一般都是0,后面的这八位决定了ts包是什么包
- 第四个字节
- PAT和PMT
- 节目:由节目元组成,节目元可以对应pes
- pat
- ts中有不同的节目,pat对应着节目到pmt
- pmt:
- pmt对应着一个节目中具体的节目元
ts流转化为h264码流
最新推荐文章于 2023-03-22 13:30:18 发布