自学内容网 自学内容网

音视频入门基础:MPEG2-TS专题(16)——PMT简介

一、引言

PMT(Program Map Table)与PAT表成对出现,其PID由PAT表给出。通过PMT表可以得到该节目包含的视频和音频信息,从而找到音视频流:

 二、PMT表中的属性

根据《T-REC-H.222.0-202106-S!!PDF-E.pdf》第79页,PMT表(Program map table)由一个或多个段(Transport stream program map section,简称TS program map section)组成,TS program map section就是组成PMT表的Section(段)。TS program map section包含下图所示部分:

即:

其中,比较重要的属性是:

table_id:占8位,为表id。TS program map section的table_id固定为0x02:

section_syntax_indicator:占1位,为段语法标志位,值必须为1:

section_length:占12位,为该TS program map section从program_number属性开始到该Section结束(包含CRC校验)的总长度,单位为字节。所以section_length的值加3才是该TS program map section的实际总长度:

program_number:占16位,为节目号,TS流中一个频道的唯一标志。跟PAT表的program_number属性对应上:

current_next_indicator:占1位。值为1:发送的TS program map section为当前有效的,值为0:发送的该Section尚未有效并且下一个Section将生效:

PCR_PID:占13位,PCR(节目参考时钟)所在transport packet(TS分组)的PID:

stream_type:占8位,媒体流的类型,具体流类型参考下面的表格。比如值为0x1B表示是AVC,即H.264视频流;值为0x0F表示是ADTS包装的AAC音频流:

elementary_PID:占13位,该节目的音频或视频PID:

ES_info_length:占12位,ES描述信息的长度,如果值为0表示没有信息:

三、PMT表实例分析

用Elecard Stream Analyzer工具打开一个TS文件。可以看到其某个PMT表中program_number为1,表示这是一个节目号为“1”的节目:

该节目中有两个媒体流。第一个媒体流stream_type的值为0x1B,表示是H.264视频流,elementary_PID为0x100,所以该节目视频的PID为0x100;第二个媒体流stream_type的值为0x0F,表示是AAC音频流,elementary_PID为0x101,所以该节目音频的PID为0x101;

 

通过PMT表找到PID为0x100的视频流如下:

通过PMT表找到PID为0x101的音频流如下:

 


原文地址:https://blog.csdn.net/u014552102/article/details/144361237

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!