MPEG-2 Transport Stream (TS)协议解析与Section长度计算
需积分: 0 90 浏览量
更新于2024-08-05
收藏 600KB PDF 举报
"TS协议补充,包括TS流与其他流的关系,TS包的结构,以及如何解析TS包中的Section信息。"
TS协议是数字电视和多媒体领域中传输数据的一种标准,主要应用于误码较多的环境中,保证数据的可靠传输。在TS流中,数据被分割成固定长度的包,即TS包,每个包的长度通常是188字节,有时为了增加错误检测,会扩展到204字节。TS包的开头有一个同步字节(sync_byte),其固定值为0x47,用于识别TS包的起始位置。
TS包的结构包含以下几个关键部分:
1. `transport_error_indicator`: 1位,表示包内是否存在无法修正的错误。如果这个位为1,通常意味着这个包在传输过程中出现了问题,应该被丢弃。
2. `payload_unit_start_indicator`: 1位,当这个标志为1时,表示该TS包包含一个Section的开始。这对于解析PSI(Program Specific Information)或SI(Service Information)非常重要,因为这些信息通常分布在多个TS包中。
在解析TS包时,特别是对于处理 PSI 和 SI 的Section,我们需要关注如何确定Section的长度和内容。Section 是PSI表的一部分,包含关于节目、频道和其他服务信息的数据。Section的长度可以通过以下方式获取:取有效数据的第三个字节和其后的四个字节组合成一个12位的字段,这个值指示了Section_length后面数据的长度。注意,这通常不包括Section头部的前三个字节。
在实际操作中,可能需要收集多个TS包来组合一个完整的Section,因为Section可能会跨越多个TS包。一旦确定了Section的起始和结束,就可以解析其中的信息,例如PAT(Program Association Table)、CAT(Conditional Access Table)、PMT(Program Map Table)等,这些表格提供了解码和播放数字电视信号所需的关键信息。
对于音视频高级开发,了解TS协议是至关重要的,因为它涉及到如何有效地传输和复用音视频数据。在Elasticsearch这样的大数据存储和分析工具中,虽然直接处理TS流数据的情况较少,但理解这种数据结构有助于构建和优化相关的数据处理和存储系统,特别是在处理大规模多媒体数据时。
总结来说,TS协议是数字媒体传输的核心,其包结构和Section解析是理解和处理数字电视数据流的基础。了解这些知识点对于进行音视频开发或者在有类似需求的IT项目中至关重要。
2012-08-12 上传
2019-11-21 上传
2018-07-23 上传
2013-09-02 上传
2012-10-05 上传
2015-02-11 上传
168 浏览量
2020-01-16 上传
2009-07-26 上传
行走的瓶子Yolo
- 粉丝: 36
- 资源: 342
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析