TS协议之PAT(节目关联表)

1. 概要

PAT:节目关联表,与PMT成对出现,包含所有的频道编号;是解析ts数据的起点。

PAT数据结构如下:

image.png

字段分析:

TS头:参考TS协议之PES,已做过解释这里不多做解释。

PAT信息体:

字段 字段描述
表id PAT设置为0x0
段语法标志位 固定位1
0 固定为0
保留位 固定为0x11(每一位都是1)
分段长度 分段长度后面直到CRC字段的长度(不包括分段长度)
传输流id 由用户规定。该字段充当标签,标识网络内此传输流有别于任何其他多路复用流
保留位 固定为0x11(每一位都是1)
版本号 指示符 设置为‘1’时,版本号 必须为当前有效的节目相关表的版本号。指示符 设置为‘0’时,版本号 为下一个有效的节目相关表的版本号。
指示符 1:发送的节目相关表为当前有效的。0:发送的该表尚未有效并且下一个表将生效。
分段号 有可能一个PAT描述很多PMT,导致PAT很长,所以PAT可能分为多段传输,第一段为00,以后每个分段加1,最多可能有256个分段
最后一个分段号 最后一个分段的号码
节目单 该字段是一个容器,该容器内可能有很多个节目
CRC32校验 CRC32校验,是对除CRC32字段外PAT所有字段的校验

节目单:

字段 字段描述
节目号 0:表明这是NIT(网络信息表)非0:这是PMT(节目信息表)
保留位 固定为0x11(每一位都是1)
网络信息表 与节目信息表只能存在一个,用于标识传输流中一个特定的网络,提供网络相关的信息,如网络识别符、传输参数等;个网络都有一个唯一的network_PID(网络信息表)值。
节目信息表 用于指向每个节目的节目映射表(PMT),每个节目都有一个唯一的program_map_PID(节目信息表)值。

2. PAT代码结构

typedef struct TS_PAT_Program
{
 unsigned program_number    :16;   //节目号
 unsigned reserved_3        : 3; // 保留位
 unsigned program_map_PID   :13;   //节目映射表的PID,节目号大于0时对应的PID,每个节目对应一个
}TS_PAT_Program;

typedef struct TS_PAT
{
    unsigned table_id                     : 8; //固定为0x00 ,标志是该表是PAT
    unsigned section_syntax_indicator     : 1; //段语法标志位,固定为1
    unsigned zero                         : 1; //0
    unsigned reserved_1                   : 2; // 保留位
     unsigned section_length               : 12; //表示这个字节后面有用的字节数,包括CRC32
    unsigned transport_stream_id        : 16; //该传输流的ID,区别于一个网络中其它多路复用的流
    unsigned reserved_2                   : 2;// 保留位
    unsigned version_number               : 5; //范围0-31,表示PAT的版本号
    unsigned current_next_indicator       : 1; //发送的PAT是当前有效还是下一个PAT有效
    unsigned section_number               : 8; //分段的号码。PAT可能分为多段传输,第一段为00,以后每个分段加1,最多可能有256个分段
    unsigned last_section_number          : 8;  //最后一个分段的号码

    std::vector<TS_PAT_Program> program;    //节目单
    unsigned network_PID                    : 13; //网络信息表(NIT)的PID,节目号为0时对应的PID为network_PID
    unsigned CRC_32                        : 32;  //CRC32校验码
} TS_PAT; 

上述代码可见节目单字段是一个容器:std::vector program;容器容每个TS_PAT_Program结构对用一个PMT,所以当PMT很多的时候可能超过188个字节,要进行分段;

在TS传输过程中,就是遍历该容器通过查找program_map_PID字段找到对应的PMT。

文档下载地址:TS协议之PAT

后续会更新更多音视频相关技术,关注一下。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • HLS协议及TS封装 一、HLS协议 HLS协议由苹果公司提出并推广,来自维基百科的定义。 HTTP Live S...
    O2Space_Xiu阅读 14,282评论 2 16
  • 版权声明:本文为CSDN博主「Kayson12345」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上...
    星_025f阅读 1,943评论 0 2
  • 参考【PSI/SI学习系列】第一章:预备知识【PSI/SI学习系列】第二章:从TS到PAT和PMT 最近开始学习数...
    合肥黑阅读 6,528评论 0 6
  • ISO/IEC标准13818-1MPEG2-TS面向的传输介质是地面和卫星等可靠性较低的传输介质 TS通常以固定码...
    龙遁流阅读 1,166评论 0 1
  • 一、TS HEADER 参考TS科普 2 包头TS流格式学习Ts流解析中难点说明百度文库 最直白明了的TS流分析 ...
    合肥黑阅读 4,460评论 0 2