c语言解析ts流文件,Golang通过pcap文件解析TS流,还原TS视频

最近在做抓包录像方面的案例,通过tcpdump抓包后再分析包文件,解析出包中的视频等文件信息。先做最简单的部分,针对组播流的抓包录像分析。

TS识别TS包由4B的包头(header)、可变长度的调整头和净荷(payload)组成;

包头结构定义如下:

struct ts_header{

char syn_byte:8; // 包头同步字节,0x47

char transport_error_indicator:1; //传送数据包差错指示器

char payload_unit_start_indicator:1; //有效净荷单元开始指示器

char transport_priority:1; //传送优先级

int PID:13; //包ID

char transport_scrambling_control:2; //传送加扰控制

char adaptation_field_control:2; //调整字段控制

char continuity_conunter:4; //连续计数器 0-15

}syn_byte:值为0x47,是MPEG-2TS的传送包标识符;

transport_error_indicator:值为1时,表示相关的传送包中至少有一个不可纠正的错误位,只有错误位纠正后,该位才能置0;

payload_unit_start_indicator:表示TS包的有效净荷带有PES或PSI数据的情况;当TS包的有效净荷带有PES包数据时,payload_unit_start_indicator为1,表示TS包的有效净荷以PES包的第一个字节开始;为0࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值