TS 包由以下3部分组成:

包头: 4字节, 同步,识别,检错和加密用

自适配域:可选

包数据:最大184字节(不存在自适配域)

4字节

184字节

包头

自适配域

包数据

4字节包头结构:

1字节

1比特

1比特

1比特

13比特

2比特

2比特

4比特

同步字节

传输错误描述符

载荷起始描述符

传输优先

包识别

传输加扰控制

适配域控制

连续计数器

自适配域结构包含:

域长度:1字节

域标志:1字节, PCR标志就是其中一个重要标志

域信息: 由域长度指定

包数据的类型一般有如下几种:

PSI信息:  PAT/PMT/CAT/NIT表

视频流

音频流

字幕流

除了PSI信息,视频流、音频流和字幕流会做PES打包。

PAT表结构

完整的PAT表包含一个头结构和若干个节目结构,

最后还要加上CRC校验。

PAT表头结构(总共8字节)

1Byte

1bit

1bit

2bit

12bit

2Byte

2bit

5bit

1bit

1Byte

1Byte

表标识

段语法标识符

填0

保留

段长度含CRC

传输流标识

保留

版本号

有效标识

段号

最后段号

PAT表节目结构

2Byte

3bit

13bit

节目号

保留

节目映射表PID

PMT表结构

一个完整的PMT表包含一个表头和若干个流结构,

最后还要加上CRC校验。

PMT表流结构

1Byte

3bit

13bit

4bit

12bit

流类型

保留

基本元素PID

保留

节目元素长度

PMT头结构(总共12字节)

1Byte

1bit

1bit

2bit

12bit

2Byte

2bit

5bit

1bit

1Byte

1Byte

3bit

13bit

4bit

12bit

表标识

段语法标识符

填0

保留

段长度含CRC

节目数

保留

版本

有效标识

段号

最后段号

保留

PCR PID

保留

节目信息长度

MPEG2/TS 包结构简述的更多相关文章

  1. ts包、表、子表、section的关系

    我们经常接触到创建 DEMUX,注册 Filter 过滤数据, 通过回调过滤出 section 数据,然后我们对 section 数据做具体的解析或者其他操作. 我们这里说的 section 就是段的 ...

  2. 文档:网络通讯包结构(crc校验,加解密)

    一直想把这个流程整理一下. 包结构: 包 对(datacrc+protoID+dataSize)组成的byte[] 进行crc计算而得到 对(数据内容)进行crc计算而得到 协议号 数据内容的字节长度 ...

  3. jdk1.7.0_80源码包结构

    解压源码src.zip,jdk源码结构如下所示: src |--com.sun    sun公司对jdk的实现,Oracle官方不支持,不保证跨平台(可能一些类linux有而windows没有),甚至 ...

  4. Node.js入门:包结构

        JavaScript缺少包结构.CommonJS致力于改变这种现状,于是定义了包的结构规范(http://wiki.commonjs.org/wiki/Packages/1.0 ).而NPM的 ...

  5. JDK源码包结构分类

    最近查看JDK源码时,无意间发现几个类在陌生包里:com.sun.*.sun.*.org.*,google了一把总结了下以备他人搜索,如内容有误欢迎指正!   Jre库包含的jar文件(jdk1.6) ...

  6. TCP/IP数据包结构具体解释

    [关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构, ...

  7. 【Java基础】Jar包结构结构分析和操作具体解释

    作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell 一 ...

  8. UDP包结构

    UDP包结构  // 参考: http://www.2cto.com/net/201307/224715.html UDP数据包由首部和数据组成,每行4个字节(32位),首部固定长度为8个字节(2行) ...

  9. USB的包结构及包分类

    USB的传输总是低位在前,高位在后. USB的传输方向:从设备到主机的数据为输入:从主机到设备的数据叫做输出. 1. 包结构 以同步域开始,紧跟着一个包标识符PID(Packet Identifier ...

随机推荐

  1. 个性二维码开源专题<替换定位点>

    基础方法: ChangeFillShape //修改填充形状 ChangeFillShape(...) // 摘要: // 修改填充形状 // // 参数: // g: // 图形画板 // // F ...

  2. Dynamic CRM 2013学习笔记(九)CrmFetchKit.js介绍:Fetchxml、多表联合查询, 批量更新

    CrmFetchKit.js是一个跨浏览器的一个类库,允许通过JavaScript来执行fetch xml的查询,还可以实现批量更新,分页查询等.目前已支持Chrome 25, Firefox 19 ...

  3. Java正则表达式的应用

    在很多种情况下,我们都必须对字符串进行匹配,以便判断字符串的格式是否符合要求,对字符串中的内容进行提取.比如,我要从一段话aabdfe中,判断这段话是否有包含ab这个词,那么如果用if-else来判断 ...

  4. [OpenCV] 3、直线提取 houghlines

    >_<" 发现一个好的链接,是一个讲openCV的网站:http://www.opencv.org.cn/opencvdoc/2.3.2/html/index.html > ...

  5. [C++] C/C++结构体的区别

    C/C++结构体的区别 >_<:C中的结构体和C++中结构体的不同之处: 在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数. >_<: ...

  6. [BTS] The adapter "SQL" raised an error message. Details "The Messaging Engine is shutting down. ".

    Get a warning in event log. Log Name:      ApplicationSource:        BizTalk ServerDate:          3/ ...

  7. .NET Remoting学习笔记(一)概念

    目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 背景 自接触编程以来,一直听过这个名词Remotin ...

  8. IoC实践--用Autofac实现MVC5.0的IoC控制反转方法

    Autofac是一个.net平台下发性能还不错的IoC框架,利用它可以实现依赖注入和控制反转,使自己的软件模块之间的耦合性大大降低,让软件扩展.维护更加容易.控制反转(Inversion of Con ...

  9. UVa 10387- Billiard

    UVa 10387- Billiard Table of Contents 1 题目 2 思路 3 代码 4 参考 1 题目 ============= Problem A: Billiard In ...

  10. Android Studio no debuggable applications解决方案2

    android studio 默认是没有开启debuggable 功能的,在tools里打开该功能即可,Tools->Android->Enable ADB Integration. 刚设 ...