=================================================================
音视频入门基础:MPEG2-TS专题系列文章:
音视频入门基础:MPEG2-TS专题(1)——MPEG2-TS官方文档下载
音视频入门基础:MPEG2-TS专题(2)——使用FFmpeg命令生成ts文件
音视频入门基础:MPEG2-TS专题(3)——TS Header简介
音视频入门基础:MPEG2-TS专题(4)——使用工具分析MPEG2-TS传输流
音视频入门基础:MPEG2-TS专题(5)——FFmpeg源码中,判断某文件是否为TS文件的实现
音视频入门基础:MPEG2-TS专题(6)——FFmpeg源码中,获取MPEG2-TS传输流每个transport packet长度的实现
音视频入门基础:MPEG2-TS专题(7)——FFmpeg源码中,读取出一个transport packet数据的实现
音视频入门基础:MPEG2-TS专题(8)——TS Header中的适配域
音视频入门基础:MPEG2-TS专题(9)——FFmpeg源码中,解码TS Header的实现
音视频入门基础:MPEG2-TS专题(10)——PSI、SI简介
音视频入门基础:MPEG2-TS专题(11)—— TS中的Section
音视频入门基础:MPEG2-TS专题(12)—— FFmpeg源码中,把各个transport packet组合成一个Section的实现
音视频入门基础:MPEG2-TS专题(13)——FFmpeg源码中,解析Section Header的实现
音视频入门基础:MPEG2-TS专题(15)——FFmpeg源码中,解析Program association section的实现
音视频入门基础:MPEG2-TS专题(17)——FFmpeg源码中,解析TS program map section的实现
音视频入门基础:MPEG2-TS专题(18)——PES流简介
音视频入门基础:MPEG2-TS专题(19)——FFmpeg源码中,解析TS流中的PES流的实现
音视频入门基础:MPEG2-TS专题(21)——FFmpeg源码中,获取TS流的视频信息的实现
音视频入门基础:MPEG2-TS专题(22)——FFmpeg源码中,获取TS流的音频信息的实现
音视频入门基础:MPEG2-TS专题(23)——通过FFprobe显示TS流每个packet的信息
音视频入门基础:MPEG2-TS专题(24)——FFmpeg源码中,显示TS流每个packet的pts、dts的实现
音视频入门基础:MPEG2-TS专题(25)——通过FFmpeg命令使用UDP发送TS流
音视频入门基础:MPEG2-TS专题(26)——通过FFmpeg命令使用RTP发送TS流
=================================================================
一、PSI、SI
根据《T-REC-H.222.0-202106-S!!PDF-E.pdf》第74页,节目专用信息(PSI,Program Specific Information),描述了特定节目相关的属性。MPEG-2标准规定了4种PSI:节目关联表(PAT,Program Association Table)、节目映射表(PMT,Program Map Table)、条件访问表(CAT,Conditional Access Table)以及网络信息表(NIT,Network Information Table)。其中,MPEG-2标准规定了PAT和PMT的具体结构。
在基于MPEG-2 TS的一些系统,如地面数字电视DVB、ATSC、ISDB-T等扩展了MPEG2-TS,引入了服务信息(SI,Service Information)这一概念。SI是PSI的补充,在协议层次上与PSI相同:
二、填充
根据《T-REC-H.222.0-202106-S!!PDF-E.pdf》第75页,transport packet有效载荷中所传送的不同类型数据(视频、音频、特定数据、系统信息等),对应着不同的PID值。对于MPEG-2 TS的空余有效载荷用0xFF进行填充(Stuffing)。下一报文指针NMP(Next Message Pointer)用于指示新DVB-MPE数据报分段的开始位置:
举个例子,下图PAT表红框中的数据就是填充(Stuffing),填充是为了让一个transport packet满188字节: