关于TS流的解析
来源:互联网 发布:vb源代码 编辑:程序博客网 时间:2024/04/30 07:47
数字信号实际传送的是数据流,一般数据流包括以下三种:
ES流:也叫基本码流,包含视频、音频或数据的连续码流。PES流:也叫打包的基本码流,是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流。
TS流:也叫传输流,是由固定长度为188字节的包组成,含有独立时基的一个或多个节目,适用于误码较多的环境。
TS流(TransportStream)即在MPEG-2系统中,由视频,音频的ES流和辅助数据复接生成的用于实际传输的标准信息流称
TS流与PS流的区别在于TS流的包结构是固定长度的,而PS流的包结构是可变长度。 PS包与TS包在结构上的这种差异,
格。
______________________________________________________________________________________________________
TS即是"Transport Stream"的缩写。他是分包发送的,每一个包长为188字节。在TS流里可以填入很多类型的数据,如视频、音频、自定义信息等。他的包的结构为,包头为4个字节,负载为184个字节(这184个字节不一定都是有效数据,有一些可能为填充数据)。
工作形式:
因为在TS流里可以填入很多种东西,所以有必要有一种机制来确定怎么来标识这些数据。制定TS流标准的机构就规定了一些数据结构来定义。比如: PSI(Program Specific Information)表,所以解析起来就像这样: 先接收一个负载里为PAT的数据包,在整个数据包里找到一个PMT包的ID。然后再接收一个含有PMT的数据包,在这个数据包里找到有关填入数据类型的ID。之后就在接收到的TS包里找含有这个ID的负载内容,这个内容就是填入的信息。根据填入的数据类型的ID的不同,在TS流复合多种信息是可行的。关键就是找到标识的ID号。
现在以一个例子来说明具体的操作:
在开始之前先给出一片实际TS流例子:
0000f32ch: 47 40 00 17 00 00 B0 0D 00 01 C1 00 00 00 01 E0 ; G@....?..?...?
0000f33ch: 20 A2 C3 29 41 FF FF FF FF FF FF FF FF FF FF FF ; ⒚)A
工作形式:
因为在TS流里可以填入很多种东西,所以有必要有一种机制来确定怎么来标识这些数据。制定TS流标准的机构就规定了一些数据结构来定义。比如: PSI(Program Specific Information)表,所以解析起来就像这样: 先接收一个负载里为PAT的数据包,在整个数据包里找到一个PMT包的ID。然后再接收一个含有PMT的数据包,在这个数据包里找到有关填入数据类型的ID。之后就在接收到的TS包里找含有这个ID的负载内容,这个内容就是填入的信息。根据填入的数据类型的ID的不同,在TS流复合多种信息是可行的。关键就是找到标识的ID号。
现在以一个例子来说明具体的操作:
在开始之前先给出一片实际TS流例子:
0000f32ch: 47 40 00 17 00 00 B0 0D 00 01 C1 00 00 00 01 E0 ; G@....?..?...?
0000f33ch: 20 A2 C3 29 41 FF FF FF FF FF FF FF FF FF FF FF ; ⒚)A
0 0
- 关于TS流的解析
- 关于TS流的解析
- 关于TS流的解析
- 关于TS流的解析
- 关于TS流的解析
- 关于TS流的解析
- 关于TS流的解析
- 关于TS流的解析
- 关于TS的解析
- 关于TS流的封装和解析
- TS流的解析
- TS流的解析
- TS流的解析
- TS流的解析
- TS流的解析
- TS流的解析
- [Multimedia][TS]TS流的解析
- TS流解析之TS包头解析
- Java内存分配的原理
- Android日期选择器,可以自定义样式
- Android Studio、Gradle常见错误、设置
- Quartz2D(图形上下文栈)
- OTA升级包的解释和升级方法
- 关于TS流的解析
- 使用jQuery快速解决input中placeholder值在ie中无法支持的问题
- ant脚本部署RCP产品
- Quartz2D使用(矩阵操作)
- Quartz2D使用(图片剪切)
- Jenkins中Git Plugin配置的几个小问题
- adb push 文件夹
- 系统操作日志设计
- Java中,你遇到的错误 :程序包不存在