MPEG-2 TS学习(一)MPEG-2 TS格式解析

MPEG-2 TS格式解析


收集了一些大神们的博客:

ts文件格式解析

TS文件格式详解

白话浅谈MPEG2-TS之demux

TS文件解析流程

TS流的解码过程-ES-PES-DTS-PTS-PCR

MPEG-2 TS码流分析

多媒体文件格式之TS


本文来自上面几篇文章的整理分析


MPEG2-TS介绍


    TS:全称为MPEG2-TS。TS即"Transport Stream"的缩写。它是分包发送的,每一个包长为188字节(还有192和204个字节的包)。包的结构:包头为4个字节(第一个字节为0x47),负载为184个字节。在TS流里可以填入很多类型的数据,如视频、音频、自定义信息等。MPEG2-TS主要应用于实时传送的节目,比如实时广播的电视节目。
MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。


TS包头







TS负载的类型


   
    一个TS包的载荷中,可以包含PAT包、PMT包、多个音频包、多个视频包、多个PCR包、以及其他信息包。


    TS包负载部分可以分成两种类型:
        1、视频、音频的PES包以及辅助数据。其中音视频的ES需要被打包成为PES,而辅助数据不需要被打包成PES
        2、节目专用信息PSI,包括下面几种:
            PAT:节目关联表。提供了节目好和对应PMT表格的PID的对应关系
            PMT:节目映射表。定义了与特定节目相关的PID信息,例如:音频包的pid,视频包的pid、pcr的pid
            CAT:条件接收表。用于流加扰情况下配置参数。
            NIT:网络信息表。可选的,标准未详细定义
            TSDT:传输流描述表。可选的。



PAT




PMT





PES







获取TS包中的音视频数据



    如果给定一个TS文件,怎么去寻找解码音视频解码数据呢? 每个TS包的前4个字节的包头里都有一个PID

        1、首先,一个个遍历TS包,我们找到PID为0的TS包,这个包叫PAT,这个PAT包里包含了PMT的PID号

        2、遍历TS包又可以找到名为PMT的TS包,PMT里有什么呢?PMT里包含了video TS包的PID和它的codec,audio TS包的PID和它的codec 。有了codec我们知道要选择什么解码器,有PID我们就可以获得解码数据。

        3、我们先来说说video数据和audio数据是怎么分散在TS包里的。video和audio其实都是以一种叫PES(Packetized Elementary Stream)的形式组织的。一帧视频就是一个PES包。我们都知道一个TS包只有188个字节,除掉包头还剩184个字节,这是不可能放下一帧的。
        4、实际上一个PES包是分配在连续的几个TS包中,所以如果我们要获得一帧数据,那么我们需要把连续的几个TS包里的数据全部取出来才能组合成一个PES。
        5、那我们怎么知道一个PES的开始和结尾呢?那我们还是一个个遍历每一个TS包,寻找包头里payload_unit_start_indicator为1包,这个标志位代表着是一个PES的开始,那么我从这开始,一直到下一个payload_unit_start_indicator为1,这中间的TS包组成起来就是一个PES。




TS包的解析流程




    解析TS流数据的流程:

        1、查找PID为0x0的包,解析PAT,PAT包中的program_map_PID表示PMT的PID;

        2、查找PMT,PMT包中的elementary_PID表示音视频包的PID,PMT包中的PCR_PID表示PCR的PID,
        3、有的时候PCR的PID跟音频或者视频的PID相同,说明PCR会融进音视频的包

        4、有的时候PCR是自己单独的包;

        5、CAT、NIT、SDT、EIT的PID分别为: 0x01、0x10、0x11、0x12。


  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mpeg2-tsMPEG-2 Transport Stream)是一种用于数字广播和视频传输的协议。它的目标是将音频、视频和其他数据以数据包的形式进行传输和存储。 mpeg2-ts的在线解析涉及将以mpeg2-ts格式编码的媒体文件进行解析和分析,以便播放或进行其他操作。解析过程包括以下几个步骤: 1. 读取文件头信息:首先读取文件的头部信息,其中包括文件的标识符、版本号、编码信息等。通过分析头部信息,可以确定文件的类型和结构。 2. 解析PAT表(Program Association Table):PAT表记录了各个节目的信息和各个PID(Packet ID)的映射关系。通过解析PAT表,可以获取到TS流中的所有节目的PID。 3. 解析PMT表(Program Map Table):PMT表描述了各个节目中包含的音频、视频和其他数据的PID,并提供了流的详细信息。通过解析PMT表,可以获取到各个节目中各个流的PID以及编码格式等相关信息。 4. 解析数据包:根据PID的信息,解析相应的数据包,提取出音频、视频和其他数据。对于音视频数据,还需要进行解码和解封装操作,以便进行播放或进一步处理。 5. 分析和处理数据:分析音视频和其他数据的格式、编码方式以及其他相关信息,以便进行后续处理,如解码、转码、封装等。 通过对mpeg2-ts文件进行在线解析,可以实现对媒体文件的播放、编辑、转码等功能。同时,也可以提取音视频数据进行分析和处理,以满足不同的应用需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值