最近,写完了多个段SDT/BAT的生成,对PSI表的生成,解析等有了更深的理解,在这里也写来与大家分享一下。
用一个10个段的SDT表举例,更形象一些:
1.PSI表由多个段构成,每个段有section_number,10个段,则last_section_number为9,第1个段section_numbe=0;last_section_number最大为255,一个段最长为1021B,则一个表最大255K=255*1021B。(标准中定义)
2.每个段大约可以这么算1021/188=6个ts包,即一个section最多可以装6个包,当然不装满就直接下一个section也是允许的。
3.每个段内的第1个包可以看作起始帧,包头5字节,一般为47 40 xx xx xx
而后续包可以看作续帧,包头均为4字节,都为47 00 xx xx
4.处理多个分段的方法:最好按表结构(多个端构成,每个段按段结构存储)进行处理,按分段的内容进行切割,打包等,比较抽象的方法了,意思是指按段结构来做,不要按包来做。