mpeg2 ts流PAT,PMT,SDT的定义

转自: http://blog.sina.com.cn/s/blog_5ea0192f0100vo15.html

更具体准确的信息请参考iso13818-1,都在里面定义的

PAT的定义:
Table_id:为8bit字段,该字段标识节目关联分段,对于PAT,置为0x00。

Section_syntax_indicator:1bit字段,对于PAT,置为
0x01。

Reserved:2bit保留字段,用于将来扩展,置为11。

Section_length:12bit字段,指示当前section的长度,计数值
从分段长度下一个字节开始,包括CRC校验的4个字节,开头两
位置为00,因此其大小不超过1021。

Transport_stream_id:16bit字段,当前TS流的ID,与网络中其
他TS流相区别,由运营商指定。

Reserved:2bit保留字段,用于将来扩展,置为11。

Version_number:5bit字段,指出PAT表的版本号,一旦PAT表有变
化,其版本号增1,当增至31时,恢复至0。

Current_next_indicator:1bit,置为1时,表示传送的PAT当
前有效,置为0表示PAT下一次有效。

Section_number:8bit字段,表示section的数目,从0x00开
始。

Last_section_number:8bit字段,指出最后一个section号,
即PAT表section的最大数目。

Program_number:16bit字段,指出了节目对于哪一个PMT
PID是可用的,当为0x00时,后面的PID对应于NIT。

Reserved:3bit保留字段,用于将来扩展,置为111。

Network_id:13bit字段,NIT PID。

Program_map_PID:13bit字段,对应于program_number
所指定的节目的program_map_section的PID,从上面可看出:一个program用4字节来表示(包括16bit的program_number与13bit的PID)。

CRC:用来证实数据正确性的循环冗余校验码。

(section_number和 last_section_number的功能是当PAT内容>184字节时,PAT表会分成多个段(sections),解复用程序必须在全部接收完成后再进行PAT的分析)

PMT定义如下: 各字段含义如下:
table_id:8bits的ID,应该是0x02
section_syntax_indicator:1bit的段语法标志,应该是‘‘1‘‘ ‘‘0‘‘:固定是‘‘0‘‘,如果不是说明数据有错.
reserved:2bits保留位,应该是‘‘00‘‘
section_length:16bits段长度,从program_number开始,到CRC_32(包含)的字节总数.
program_number:16bits的频道号码,表示当前的PMT关联到的频道.换句话就是说,当前描述的是program_number频道的信息.
reserved:2bits保留位,应该是‘‘00‘‘
version_number:版本号码,如果PMT内容有更新,则version_number会递增1通知解复用程序需要重新接收节目信息,否则version_number是固定不变的.
current_next_indicator:当前未来标志符,一般是0
section_number:当前段号码
last_section_number:最后段号码,含义和PAT中的对应字段相同,请参考PAT部分.
reserved:3bits保留位,一般是‘‘000‘‘.
PCR_PID:13bits的PCR PID,具体请参考ISO13818-1,解复用程序不使用该参数.
reserved:4bits保留位,一般是‘‘0000‘‘
program_info_length:节目信息长度(之后的是N个描述符结构,一般可以忽略掉,这个字段就代表描述符总的长度,单位是Bytes) 紧接着就是频道内部包含的节目类型和对应的PID号码了.
stream_type:8bits流类型,标志是Video还是Audio还是其他数据.
reserved:3 bits保留位.
elementary_PID:13bits对应的数据PID号码(如果stream_type是Video,那么这个PID就是Video PID,如果stream_type标志是Audio,那么这个PID就是Audio PID)
reserved:4 bits保留位.
ES_info_length:和program_info_length类似的信息长度(其后是N2个描述符号)
CRC_32:32bits段末尾是本段的CRC校验值

SDT的定义
DVB系统提出了一个SDT表格,该表格标志一个节目的名称,并且能和 PMT中的PID联系起来,这样用户就可以通过直接选择节目名称来选择节目了. SDT, Service description section,服务描述段 SDT可以提供的信息包括: (1) 该节目是否在播放中 (2) 该节目是否被加密 (3) 该节目的名称
SDT定义如下: 各字段定义如下:
table_id:8bits的ID,可以是0x42,表示描述的是当前流的信息,也可以是0x46,表示是其他流的信息(EPG使用此参数)
section_syntax_indicator:段语法标志,一般是‘‘1‘‘
reserved_future_used:2bits保留未来使用
reserved:1bit保留位,防止控制字冲突,一般是‘‘0‘‘,也有可能是‘‘1‘‘
section_length:12bits的段长度,单位是Bytes,从transport_stream_id开始,到CRC_32结束(包含)
transport_stream_id:16bits当前描述的流ID
reserved:2bits保留位
version_number:5bits的版本号码,如果数据更新则此字段递增1
current_next_indicator:当前未来标志,一般是‘‘0‘‘,表示当前马上使用.
original_netword_id:16bits的原始网络ID号
reserved_future_use:8bits保留未来使用位
接下来是N个节目信息的循环:
service_id:16 bits的服务器ID,实际上就是PMT段中的program_number.
reserved_future_used:6bits保留未来使用位
EIT_schedule_flag:1bit的EIT信息,1表示当前流实现了该节目的EIT传送
EIT_present_following_flag:1bits的EIT信息,1表示当前流实现了该节目的EIT传送
running_status:3bits的运行状态信息:1-还未播放 2-几分钟后马上开始,3-被暂停播出,4-正在播放,其他---保留
free_CA_mode:1bits的加密信息,‘‘1‘‘表示该节目被加密. 紧 接着的是描述符,一般是Service descriptor,分析此描述符可以获取servive_id指定的节目的节目名称.具体格式请参考 EN300468中的Service descriptor部分.
分析完毕,则节目名称和节目号码已经联系起来了.机顶盒程序就可以用这些节目名称代替 PID让用户选择,从而实现比较友好的用户界面!

H.222规范---PMT的stream_type字段

0x00     ITU-T | ISO/IEC Reserved
0x01     ISO/IEC 11172-2 Video
0x02     ITU-T Rec. H.262 | ISO/IEC 13818-2 Video or ISO/IEC 11172-2 constrained parameter video stream
0x03     ISO/IEC 11172-3 Audio
0x04     ISO/IEC 13818-3 Audio
0x05     ITU-T Rec. H.222.0 | ISO/IEC 13818-1 private_sections
0x06     ITU-T Rec. H.222.0 | ISO/IEC 13818-1 PES packets containing private data
0x07     ISO/IEC 13522 MHEG
0x08     ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Annex A DSM-CC
0x09     ITU-T Rec. H.222.1
0x0A     ISO/IEC 13818-6 type A
0x0B     ISO/IEC 13818-6 type B
0x0C     ISO/IEC 13818-6 type C
0x0D     ISO/IEC 13818-6 type D
0x0E     ITU-T Rec. H.222.0 | ISO/IEC 13818-1 auxiliary
0x0F     ISO/IEC 13818-7 Audio with ADTS transport syntax
0x10     ISO/IEC 14496-2 Visual
0x11     ISO/IEC 14496-3 Audio with the LATM transport syntax as defined in ISO/IEC 14496-3/Amd.1
0x12     ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in PES packets
0x13     ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in ISO/IEC 14496_sections
0x14     ISO/IEC 13818-6 Synchronized Download Protocol
0x15     Metadata carried in PES packets
0x16     Metadata carried in metadata_sections
0x17     Metadata carried in ISO/IEC 13818-6 Data Carousel
0x18     Metadata carried in ISO/IEC 13818-6 Object Carousel
0x19     Metadata carried in ISO/IEC 13818-6 Synchronized Download Protocol
0x1A     IPMP stream (defined in ISO/IEC 13818-11, MPEG-2 IPMP)
0x1B     AVC video stream as defined in ITU-T Rec. H.264 | ISO/IEC 14496-10 Video
0x1C     ISO/IEC 14496-3 Audio, without using any additional transport syntax, such as DST, ALS and SLS
0x1D     ISO/IEC 14496-17 Text
0x1E     Auxiliary video stream as defined in ISO/IEC 23002-3
0x1F-0x7E ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Reserved
0x7F     IPMP stream
0x80-0xFF User Private

时间: 2025-01-04 21:10:21

mpeg2 ts流PAT,PMT,SDT的定义的相关文章

TS数据流PAT和PMT分析

TS流,是基于packet的位流格式,每个packet是188个字节或者204个字节(一般是188字节,204字节格式是在188字节的packet后面加上16字节的CRC数据,其他格式相同),解析TS流,先解析每个packet ,然后从一个packet中,解析出PAT的PID,根据PID找到PAT包,然后从PAT包中解析出PMT的PID,根据PID找到PMT包,在从PMT包中解析出Video和Audio(也有的包括Teletext和EPG)的PID.然后根据PID找出相应的包. 所有packet

TS数据流PAT和PMT分析(转载)

转自:http://www.cnblogs.com/hjj801006/p/3837435.html TS流,是基于packet的位流格式,每个packet是188个字节或者204个字 节(一般是188字节,204字节格式是在188字节的packet后面加上16字节的CRC数据,其他格式相同),解析TS流,先解析每个packet ,然后从一个packet中,解析出PAT的PID,根据PID找到PAT包,然后从PAT包中解析出PMT的PID,根据PID找到PMT包,在从 PMT包中解析出Video

TS流解析 四

一 从TS流开始 数字电视机顶盒接收到的是一段段的码流,我们称之为TS(Transport Stream,传输流),每个TS流都携带一些信息,如Video.Audio以及我们需要学习的PAT.PMT等信息.因此,我们首先需要了解TS流是什么,以及TS流是怎样形成.有着怎样的结构. (一) TS流.PS流.PES流和ES流都是什么? ES流(Elementary Stream):基本码流,不分段的音频.视频或其他信息的连续码流. PES流:把基本流ES分割成段,并加上相应头文件打包成形的打包基本码

ffmpeg解析TS流

介绍:  MPEG的系统层编码为不同的应用场景设计了两种格式: TS(Transport Stream) 和PS(Program Stream), 它们两者之间不具有层级关系, 在逻辑上,它们两者都是由PES(Packetized Elementary Stream)包组成的, 所以可以很方便地实现相互转换. TS(Transport Stream): 是将具有一个或多个独立时间基的一个或多个节目(包括音频和视频)组成一个流, 组成同一个节目的基本流(如一个视频流,多个音频流)的PES包有一个共

TS流格式(转)

一 从TS流开始 数字电视机顶盒接收到的是一段段的码流,我们称之为TS(Transport Stream,传输流),每个TS流都携带一些信息,如Video.Audio以及我们需要学习的PAT.PMT等信息.因此,我们首先需要了解TS流是什么,以及TS流是怎样形成.有着怎样的结构. (一) TS流.PS流.PES流和ES流都是什么? ES流(Elementary Stream):基本码流,不分段的音频.视频或其他信息的连续码流. PES流:把基本流ES分割成段,并加上相应头文件打包成形的打包基本码

TS流分析

一 从TS流开始 数字电视机顶盒接收到的是一段段的码流,我们称之为TS(Transport Stream,传输流),每个TS流都携带一些信息,如Video.Audio以及我们需要学习的PAT.PMT等信息.因此,我们首先需要了解TS流是什么,以及TS流是怎样形成.有着怎样的结构. (一) TS流.PS流.PES流和ES流都是什么? ES流(Elementary Stream):基本码流,不分段的音频.视频或其他信息的连续码流. PES流:把基本流ES分割成段,并加上相应头文件打包成形的打包基本码

[视频播放] HLS协议之M3U8、TS流详解

本文转载自:<hls之m3u8.ts流格式详解> HLS,Http Live Streaming 是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件. 1.M3U8文件 用文本方式对媒体文件进行描述,由一系列标签组成. #EXTM3U #EXT-X-TARGETDURATION:5 #EXTINF:5, ./0.ts #EXTINF:5, ./1.ts #EXTM3U:每个M3U8文件第一行必须是这个tag. #

TS流解析 三

应该说真正了解TS,还是看了朋友推荐的<数字电视业务信息及其编码>一书之后,MPEG2 TS和数字电视是紧密不可分割的,值得总结一下其中的一些关系. ISO/IEC-13818-1:系统部分:ISO/IEC-13818-2:视频:ISO/IEC-13818-3:音频:ISO/IEC-13818-4:一致性测试:ISO/IEC-13818-5:软件部分:ISO/IEC-13818-6:数字存储媒体命令与控制:ISO/IEC-13818-7:高级音频编码:ISO/IEC-13818-8:系统解码实

TS流 PS流 ES流

IP数据报有首部和数据两部分组成的,首部的前一部分是固定长度20字节,是所有IP数据报必须具有的.首部包括:总长度.标识.MF.DF.片偏移. 数字信号实际传送的是数据流,一般数据流包括以下三种: (1)ES流(Elementary Stream):也叫基本码流,包含视频.音频或数据的连续码流. (2)PES流(Packet Elementary Stream):也叫打包的基本码流,是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流. (3)TS流:也叫传