TS流解析 (转)

TS流解析步骤可以拆分为如下几部分:

   Step 1、获取TS流文件包长

           TS流文件一般分为标清和高清文件,文件有固定的包组成,每个包的包头为0x47且及PacketLength=188Byte与204Byte。所以解析TS流文件第一步就是解包长。

           解包长可以通过C语言的fopen、fgetc、fseek等相关函数实现,但要注意open方式最好以二进制方式,否则在调试时打印文件指针当前位置会出现乱码。

           思路:打开文件读一字节判断,满足通过十次跳转循环判断确保正确,一次不满足就从第一次开始位置文件指针后挪一位依次重复前边操作。

           由于该阶段比较简单,不再详细说明。

  Step 2、获取指定PID的所有包

          在已经获得正确数据包长和数据包开始位置后,用户传入一个指定的PID,程序要分析所有的包头信息,并将PID与指定值相等的包另存为文件。详细参见文                     档ISO-138181.pdf的第42页。

          在这一步首先要知道一个TS包的结构:

 188Byte的结构如图所示,其中详细说明了每一位代表啥,具体可以查看该图。

 

参考:http://www.cppblog.com/elva/archive/2009/03/05/75650.html

         http://my.oschina.net/u/174242/blog/74646

转载于:https://www.cnblogs.com/li-baibo/p/3198010.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值