`
chriszeng87
  • 浏览: 736886 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TS文件格式详解

阅读更多

最近彻底研究分析了ts文件格式,这里做下学习总结:
简单的来说,ts文件中的信息其实就是通过负载类型字段来找,找到后把数据从负载中提取出来,ts中可以有很多媒体类型数据,比如说可以同时又音频和视频数据,
可是要如何区分ts文件中的数据是音频还是视频呢?这就需要动用ts文件中的PSI描述说明了。

PSI:

在MPEG-II中定义了节目特定信息(PSI),PSI用来描述传送流的组成结构,在MPEG-II系统中担任极其重要的角色,在多路复用中尤为重要的是PAT表和PMT表。PAT表给出了一路MPEG-II码流中有多少套节目,以及它与PMT表PID之间的对应关系;PMT表给出了一套节目的具体组成情况与其视频、音频等PID对应关系。PSI提供了使接收机能够自动配置的信息,用于对复用流中的不同节目流进行解复用和解码。PSI信息由以下几种类型表组成:

◆ 节目关联表(PAT Program Association Table)

     PAT表用MPEG指定的PID(00)标明,通常用PID=0表示。它的主要作用是针对复用的每一路传输流,提供传输流中包含哪些节目、节目的编号以及对应节目的节目映射表(PMT)的位置,即PMT的TS包的包标识符(PID)的值,同时还提供网络信息表(NIT)的位置,即NIT的TS包的包标识符(PID)的值。

◆ 条件接收表(CAT Conditional Access Table)

     CAT表用MPEG指定的PID(01)标明,通常用PID=1表示。它提供了在复用流中条件接收系统的有关信息,指定CA系统与它们相应的授权管理信息(EMM))之间的联系,指定EMM的PID,以及相关的参数。

◆ 节目映射表(PMT Program Map Table)

     节目映射表指明该节目包含的内容,即该节目由哪些流组成,这些流的类型(音频、视频、数据),以及组成该节目的流的位置,即对应的TS包的PID值,每路节目的节目时钟参考(PCR)字段的位置。

◆ 网络信息表(NIT Nerwork Information Table)

     网络信息表提供关于多组传输流和传输网络相关的信息,其中包含传输流描述符、通道频率、卫星发射器号码、调制特性等信息。

◆ 传输流描述表(TSDT Transport Stream Description Table)

    传输流描述表由PID为2的TS包传送,提供传输流的一些主要参数。

◆ 专用段(private_section)

     MPEG-2还定义了一种专用段用于传送用户自己定义的专用数据。

◆ 描述符(Descripter)

     除了上述的表述之外,MPEG-2还定义了许多描述符,这些描述符提供关于视频流、音频流、语言、层次、系统时钟、码率等多方面的信息,在PSI的表中可以灵活的采用这些描述符进一步为接收机提供更多的信息。

     在解码时,接收机首先根据PID值找到PAT表,找出相应节目的PMT表的PID,再由该PID找到该PMT表,再在PMT表中找到相应的码流,然后开始解码。

总下简单的说就是,解析ts的过程就是通过找到PAT表,从PAT表中找出对应存在的节目的id,按照这些id找到这些节目的PMT表,从中获到这些节目总的相对的媒体数据id,然后通过这些id,再从ts文件中找到这些文件的es数据,来完成解码或者别的什么操作。
  如图:

ts文件,将每个数据包分成188个字节来发送。ts文件格式如图:
   
 从图中可以看到 ts文件头分为包头和负载两部分,现在我们详细看下包头结构:
 
sync_btye固定为0x47 ,说明从这个字节后的188个字节都属于一个ts包。 比较重要的是PID这个字段,共13位,表示了这个ts包负载数据的类型,如果没有这个信息,无法再后续寻找我们想要的数据。调整字段的作用稍后会看到。这里先跳过介绍吧,其他的字段对于ts的学习可以先不研究,不是很重要。

    现在我们看看,PAT表的结构:
    
   
     TS的解析工作,一般都是从找PAT表开始,所以,要先找到负载中头个字节是0x00的,就说明找到PAT表了。section_length表示从这个字段开始后有几个字节,如果不满188个字节,就用0xff填满。可以发现去掉最后4位的crc校验位从section_number之后的5个字节开始,就是这个ts文件中缩有的节目了,每两个字节代表一个节目,从中很容易获取到节目的ID信息。
    获取到ID之后,就可以开始查找关于这个id的PMT表了。
    PMT:
    
      
        PMT表中 多数字段含义和PAT表类似,值得注意的是对于对应节目中的媒体数都是5个字节表示,音频数据或视屏数据。所以,从中可以发现当前节目有多少的音视频相关信息。从stream_type可以通过查表来得知是音频数据还是视频数据等信息,这个就靠大家自己在网上查阅了。
         之后就可以通过得到的elementary_pid来查找对应的音视频信息了。从而从中获取出es流。
      

 

转自:http://blog.chinaunix.net/uid-24922718-id-3686257.html

分享到:
评论

相关推荐

    MPEG-TS 文件格式解析

    EasyICE作为一款专业级的MPEG-TS分析工具,能够深入解析TS文件的各个层面,帮助工程师和内容提供商诊断和优化传输流的质量。通过理解MPEG-TS的基本结构和EasyICE的功能,用户能够更好地处理和管理数字多媒体数据,...

    ts流文件解析工具 easyice v2.6 内含ts示例文件demo.ts

    1. **TS文件分析**:EasyICE能打开并解析TS文件,展示其基本结构,如PID(Packet Identifier)信息、PCR(Program Clock Reference)等关键参数。 2. **流类型识别**:它可以识别并显示不同类型的流,如视频流(如...

    qt解析excel直接生成ts文件

    标题"qt解析excel直接生成ts文件"涉及到的技术点主要有三个:Qt、XML解析以及多语言资源管理。这个过程通常是为了简化多语言支持的更新和维护,尤其是在有大量字符串需要翻译的情况下。 首先,Qt库提供了丰富的功能...

    从ts文件或流中解析I帧

    总的来说,从TS文件或流中解析I帧涉及对TS流的结构理解,如PAT、PMT和PES的解析,以及视频编码格式的知识,如H.264的NAL单元。通过使用FFmpeg等工具,我们可以有效地完成这个过程,从而获取到用于播放、编辑或其他...

    Qt ts翻译文件导出excel

    1. 解析.ts文件:读取.ts文件的内容,通常使用QFile和QTextStream类来处理。 2. 构建数据结构:根据.ts文件的XML格式,创建对应的翻译条目结构,例如,包含原始字符串、翻译字符串、上下文等信息。 3. 初始化Excel:...

    解ts文件包含多路视频流和音频流

    2. **解析TS文件**: 解析TS文件是了解其内部结构的关键步骤。TS文件由一系列的包组成,每个包包含一个固定长度的头和可变长度的数据负载。解析过程需要识别包头中的同步字节,然后解析PID(包ID)和PCR(节目时间...

    ts解析工具

    TS流解析是理解和处理这种数据流的关键步骤,通常用于解码、分析或转换TS文件。 TS流解析工具是用来检查、分析和解码TS流的软件。它们可以帮助我们理解TS包结构,查找错误,或者提取特定信息,如视频、音频和字幕...

    TS格式详解

    TS格式详解 TS流格式是数字视频广播系统中的一种基本格式,它将多个音频、视频和数据流组合成一个单一的流,以便于传输和存储。TS流格式的详细中文说明将涵盖PES结构说明、如何从TS流中解析PAT信息等。 TS流也是由...

    对ts文件按指定时间进行切割的工具

    标题中的“对ts文件按指定时间进行切割的工具”指的是一个程序或脚本,它能够根据用户设定的时间点将TS(Transport Stream)格式的视频文件分割成多个小片段。TS文件是一种常见的数字视频传输格式,广泛应用于广播、...

    m3u8视频播放器(先下载TS文件再下载切片视频)

    当用户启动一个M3U8视频时,播放器会解析M3U8文件,获取所有TS文件的URL。然后,它会根据网络状况和播放需求,选择合适的TS文件进行下载。在低带宽环境下,播放器可能会优先下载较低分辨率的TS文件;在网络条件改善...

    解析TS文件

    标题中的“解析TS文件”指的是对Transport Stream(传输流)文件进行分析和理解,这是数字视频和音频广播中常用的数据格式。TS文件通常用于在不同的网络环境和存储介质上无损地传输多媒体数据,比如卫星电视、有线...

    MPEG2TS流解析程序,输入为TS流文件,可以将视频和音频解析出来.zip

    MPEG2TS流解析程序是针对传输流(Transport Stream,简称TS)文件进行处理的工具,主要用于解码和提取TS文件中的视频和音频数据。在数字电视广播、视频编码和网络传输等领域,TS流格式被广泛应用。这个程序是用C#...

    TS 文件的传输

    总的来说,TS文件的传输涉及了网络编程基础、Socket连接建立、文件流读写、缓冲区处理、错误处理和数据包的解析与重组等多个知识点。通过这样的实践,不仅可以加深对Socket编程的理解,还能提高在实际项目中处理大...

    TS格式解析并再次封装

    总的来说,TS格式解析并再次封装涉及了数字电视传输流的解码、复用、时钟同步等多个核心概念,这些技术在现代多媒体系统中有着广泛的应用。通过理解并掌握这些知识,我们可以更好地处理和操纵数字视频流,以满足各种...

    QT 中英文翻译转成excel表(源码,完整工程,ts文件转xls)

    提供的源码就是一个这样的工具,它可能使用了QT库来解析TS文件,并将数据写入Excel格式。 5. **QT与Excel的交互**:QT可以通过QAxWidget或QAxObject来使用ActiveX接口与Excel交互,实现读写Excel文件的功能。这允许...

    linux c解析TS流

    - 读取TS包:通过打开TS文件,逐个读取188字节的数据包。 - 检测同步字:检查每个数据包的前4字节,确认其是否为TS包的同步字。 - 分析PID:根据每个包的PID,判断该包属于PAT、PMT还是其他内容。 - 解析表格:...

    m2ts格式播放器

    **m2ts格式播放器详解** m2ts是一种常见的高清视频格式,主要应用于蓝光光盘(Blu-ray Disc)的视频存储。这种格式通常包含了高质量的音视频数据,为用户带来卓越的视听体验。然而,由于其特殊性,不是所有的媒体...

    自己写的TS文件分割工具 TS过滤器

    标题中的“TS文件分割工具”指的是用于处理MPEG-2传输流(Transport Stream,简称TS)文件的软件工具。TS文件通常用于存储数字电视广播的数据,包括视频、音频和辅助数据。这种格式的特点是数据包化的,每个包包含...

Global site tag (gtag.js) - Google Analytics