MPEG2/TS 包结构简述
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 包结构简述的更多相关文章
- ts包、表、子表、section的关系
我们经常接触到创建 DEMUX,注册 Filter 过滤数据, 通过回调过滤出 section 数据,然后我们对 section 数据做具体的解析或者其他操作. 我们这里说的 section 就是段的 ...
- 文档:网络通讯包结构(crc校验,加解密)
一直想把这个流程整理一下. 包结构: 包 对(datacrc+protoID+dataSize)组成的byte[] 进行crc计算而得到 对(数据内容)进行crc计算而得到 协议号 数据内容的字节长度 ...
- jdk1.7.0_80源码包结构
解压源码src.zip,jdk源码结构如下所示: src |--com.sun sun公司对jdk的实现,Oracle官方不支持,不保证跨平台(可能一些类linux有而windows没有),甚至 ...
- Node.js入门:包结构
JavaScript缺少包结构.CommonJS致力于改变这种现状,于是定义了包的结构规范(http://wiki.commonjs.org/wiki/Packages/1.0 ).而NPM的 ...
- JDK源码包结构分类
最近查看JDK源码时,无意间发现几个类在陌生包里:com.sun.*.sun.*.org.*,google了一把总结了下以备他人搜索,如内容有误欢迎指正! Jre库包含的jar文件(jdk1.6) ...
- TCP/IP数据包结构具体解释
[关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构, ...
- 【Java基础】Jar包结构结构分析和操作具体解释
作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell 一 ...
- UDP包结构
UDP包结构 // 参考: http://www.2cto.com/net/201307/224715.html UDP数据包由首部和数据组成,每行4个字节(32位),首部固定长度为8个字节(2行) ...
- USB的包结构及包分类
USB的传输总是低位在前,高位在后. USB的传输方向:从设备到主机的数据为输入:从主机到设备的数据叫做输出. 1. 包结构 以同步域开始,紧跟着一个包标识符PID(Packet Identifier ...
随机推荐
- 安装SQLSERVER2012遇到的一些问题
安装SQLSERVER2012遇到的一些问题 先到MSDN我告诉你http://msdn.itellyou.cn/下载安装包,我每次都到MSDN我告诉你里下载的,因为那里的安装包保证能用 我的环境是: ...
- mssql的日期函数,如何取得当前年月日,当前时间,当前月份,当前天数,一年中第几天?
mssql函数DATENAME 语法 DATENAME ( datepart , date ) 参数 datepart 是返回的 date 的一部分.下表列出了所有有效的 datepart 参数.用户 ...
- 面向对象开发方式的开源硬件--.NET Gadgeteer
说起.NET Gadgeteer,不得不先说一下.NET Micro Framework,虽然.NET Micro Framework已经有十几年的发展历史了,但是在全球范围内,.NET Micro ...
- 【Leetcode】【Hard】Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 解 ...
- UML类图基本元素符号
UML类图基本元素符号 元素名称 符号图例 含义 Class 包含类的名称.属性和方法定义. 可见性修饰符: + public - private # protected 无修饰符为 intern ...
- jQuery document window load ready 区别详解
用过JavaScript的童鞋,应该知道window对象和document对象,也应该听说过load事件和ready事件,小菜当然也知道,而且自认为很了解,直到最近出了问题,才知道事情并不是那么简单. ...
- 找出数组中最长的连续数字序列(JavaScript实现)
原始题目: 给定一个无序的整数序列, 找最长的连续数字序列. 例如: 给定[100, 4, 200, 1, 3, 2], 最长的连续数字序列是[1, 2, 3, 4]. 小菜给出的解法: functi ...
- Artificial Intelligence Language
Artificial Intelligence Language Objective We know, a true AI program should have ability to underst ...
- atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o
atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o 1. 建立applet:: 1 2. Applet 码 1 3. Applet (awt)跟japplet (swing) ...
- iOS UICollectionView的实现
ios的UICollectionView并不能在iOS6之前的版本中使用,为了兼容之前的版本需要自定义UICollectionView.写完之后发现人家已经有开源了,下过来看了看发现我是用UIScro ...