音视频入门基础: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的音频流如下:

相关推荐
向阳花开_miemie1 小时前
Android音频学习(十七)——音频数据流转
学习·音视频
小周不长肉2 小时前
视频串行解串器(SerDes)介绍
音视频
懒人村杂货铺2 小时前
[特殊字符] 跨端视频通话实战:腾讯云 TRTC + IM(React Native & Web)
react native·音视频·腾讯云
昨日之日20069 小时前
Wan2.2-S2V - 音频驱动图像生成电影级质量的数字人视频 ComfyUI工作流 支持50系显卡 一键整合包下载
人工智能·音视频
hnxaoli13 小时前
win10(三)视频剪裁
音视频
ai产品老杨16 小时前
驱动物流创新与协同,助力物流行业可持续发展的智慧物流开源了
人工智能·开源·音视频·能源
xingxing_F18 小时前
SoundSource for Mac 音频控制工具
macos·音视频
音视频牛哥18 小时前
AI+ 行动意见解读:音视频直播SDK如何加速行业智能化
人工智能·音视频·人工智能+·ai+ 行动意见·rtsp/rtmp 播放器·低空经济视频链路·工业巡检视频传输
BUG创建者20 小时前
uni 拍照上传拍视频上传以及相册
前端·javascript·音视频
无线图像传输研究探索21 小时前
无定位更安全:5G 高清视频终端的保密场景适配之道
5g·安全·音视频·无人机·5g单兵图传·单兵图传·无人机图传