Linux里截取网络包并解析成H.264

7 篇文章 0 订阅
6 篇文章 0 订阅

音视频媒体

Linux 截取网络包并解析成H.264


前言

在分析媒体问题的时候,特别是涉及到网络媒体的时候,当网络对端的媒体显示异常的时候,我们需要定位到媒体问题是出现在本端编码,还是对端解码,这时候就需要抓取网络包进行分析,定界问题以便于后续分析。本文主要记录一下,如何通过tcpdump命令截取网络包,并解析成264的码流,播放并查看码流是否正常。


一、tcpdump获取码流

在Linux终端上运行

tcpdump -i eth0 host 10.120.180.* and 10.120.180.* -nn -s 1500 -w ./20211215.pcap

tcpdump:截包命令
-i eth0:指定网卡
host 10.120.180.* and 10.120.180.*:指定经过这两个IP主机的网络包
-nn:直接以 IP 及 port number 显示,而非主机名和服务名称
note:记得用ctrl+c停止截包

二、wireshark去网络包头

此时获取的码流封装形式为

eth:ethertype:ip:udp:rtp:h264

即码流经过了rtp封装,udp封装。

1.筛选rtp包

在wireshark的筛选框中输入如下命令,筛选端到端的rtp包

(ip.src==10.120.180.* && ip.dst==10.120.180.*) && rtp	

2.筛选H264视频码流

电话->RTP->RTP流,查看数据最大的一个ssrc对应的type值,然后到编辑->首选项->protocol里面找到H264,将这个值设置为对应的type值

(ip.src==10.120.180.31 && ip.dst==10.120.180.156) && rtp && h264

使用上述指令,将H264码流包筛选出来,文件->导出特定分组,保存下来


三、去udp

1.pktDeal_265去udp

用pktDeal_265将上述保存下来的udp包解析成264码流。

2.wireshark去udp

如果在wireshark上嵌入一个插件h264extractor
h264extractor
在wireshark的安装路径找到init.lua,添加如下

dofile(DATA_DIR.."rtp_h264_extractor.lua")

重启软件,可以看到软件->工具处支持rtp导出h264码流

总结

提供截取码流,依次去网络头,然后获取264码流的方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值