当前位置: 首页 > article >正文

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

一、引言

当某个transport packet的TS Header中的PID属性的值为0x0000时,该transport packet的payload为Program association table ,即 PAT表。PAT表包含所有PMT表的目录列表,将program_number和PMT表的PID相关联,获取数据的起始。简单来讲,PAT表用来描述该TS流中有多少个节目。以及它们的PMT表的PID分别是多少,对TS流进行解复用时要先找到PAT表,根据其再找到PMT表,然后才可以找到音视频流。TS流中,PAT表会重复实现,以保证解码的实时性。

二、PAT表中的属性

根据《T-REC-H.222.0-202106-S!!PDF-E.pdf》第76页,PAT表包含下图中所示部分:

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

table_id:占8位,为表id。PAT表的table_id固定为0x00。

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

section_length:占12位,为该PAT表的section的长度,单位为字节。由于PAT表是一个section由一个transport packet的payload组成。所以PAT表的section_length为“从transport_stream_id属性开始到该PAT表结束(包含CRC)的总长度:

program_number:占16位。为TS流中一个频道的唯一标志。program_number的值为0x0000时,表示接下来的是network_PID(NIT的PID),否则接下来的是program_map_PID(PMT的PID):

network_PID:占13位。指定NIT表(Network Information Table)的PID:

program_map_PID:占13位。指定PMT表的PID,表示本频道使用哪个PID做为PMT的PID:

三、PAT表实例分析

用Elecard Stream Analyzer工具打开一个TS文件。可以看到其PAT表(Program association table)中program_number为1,表示该TS文件/TS流中有一个节目号为“1”的节目;program_map_PID为0x1000,表示要想获取这个节目的详细信息,就要去解析PID值为0x1000的PMT表:

PID值为0x1000的PMT表如下:

四、参考

PSI/SI专题 | OneLib智库,为您定制私人智库


http://www.kler.cn/a/416203.html

相关文章:

  • hdlbits系列verilog解答(Exams/m2014 q4a)-86
  • 使用vcpkg自动链接tinyxml2时莫名链接其他库(例如boost)
  • 基于单片机的温度控制系统设计
  • 【IEEE出版】2024年大数据、神经网络与深度学习研讨会(BDNNDL 2024,12月13日-15日)
  • 重装系统后恢复matlab和anaconda的方法
  • 嵌入式Qt使用ffmpeg视频开发记录
  • 穿越机与无人机的区别:深入解析
  • 【Leetcode 每日一题】3250. 单调数组对的数目 I
  • 【C#】C# resx方式实现多语言切换(静态切换)
  • RAG架构类型
  • 物联网客户端在线服务中心(客服功能/私聊/群聊/下发指令等功能)
  • 【视频】OpenCV:读写视频文件VideoCapture和VideoWriter
  • HarmonyOS4+NEXT星河版入门与项目实战(23)------实现手机游戏摇杆功能
  • Flink四大基石之Time (时间语义) 的使用详解
  • Android使用UVCCamera打开USBCamera-预览
  • 安卓-碎片的使用入门
  • 浏览器的数据六种存储方法比较 :LocalStorage vs. IndexedDB vs. Cookies vs. OPFS vs. WASM-SQLite
  • 设计一个基于 LSTM 神经网络的文本分类器
  • 如何利用Java爬虫获取1688关键词接口的深度解析
  • String的设计,用到了哪些设计模式?