随笔 - 165, 文章 - 0, 评论 - 18, 阅读 - 22万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

其他参考牛文:

https://blog.csdn.net/LS_ss123/article/details/105222953

https://blog.csdn.net/weixin_43360707/article/details/120975297

https://zhuanlan.zhihu.com/p/98533891

https://www.cnblogs.com/lynsen/p/15057825.html

 

在做GB28181视频接入的时候经常遇到信令交互失败或者无法正常播放视频的问题,这里介绍下LiveGBS GB28181国标视频平台播放失败或者信令不通时如何抓包分析:

1、第一步:抓包工具准备

1.1、Linux

使用 tcpdump 进行抓包,如果系统无此命令,自行安装

1.2、windows

下载安装 wireshark 进行抓包

2、第二步:找到设备出口ip

在LiveGBS国标视频平台国标设备菜单,设备列表页面中有出口IP这列

3、第三步:执行命令抓设备出口ip

3.1 Linux

在Linux系统中切换到root用户,执行下面的抓吧命令

tcpdump -i any "host 172.18.1.34" -w ttt.pcap

3.2 Windwos

在Windows中,就启动wireshark 添加过滤抓包

host 172.18.1.34

4、第四步:触发相关页面操作

4.1、如:更新通道操作

4.2、如:查看通道播放

5、第五步:停止抓包

等一段时间停止抓包,或是等到返回了提示

5.1、Linux

Ctrl+C 结束抓包,抓包文件就在执行命令的目录下面

5.2、Windows

点击红色按钮停止,文件菜单可以另存抓包到文件

6、第六步:查看抓包

抓包文件可以用wireshark打开,然后分析数据

1、在服务器/客户端抓包,方法不赘述了,拷到装了wireshark的电脑中

2、打开抓包,先在过滤器中过滤“SIP”包,找到自己要分析的IP的包,右键→追踪流→UDP(信令一般都走UDP,如果是TCP就要FOLLOW TCP)

 

 

 

 

 3、在FOLLOW的报文中,CTRL+F搜索相关关键字。一般抓包都会控制尽量少干扰项,如一个抓包中只有需要的预览过程等。这里可以过滤国标ID

 

 报文中:m=video 16116 TCP/RTP/AVP 126 125 99 34 98 97 96,”video“后面的“16116”是收流TCP端口,这篇文章只分析UDP,由于手上的抓包没有UDP INVITE信令,做个类比

4、假如找到了端口,过滤器中用“udp.port== 查到的端口”,过滤到以下的包

 

 任意选一个udp包,右键→decode as,当前那里选择RTP,然后这些UDP包就解码为RTP了,接下来进行RTP分析

 

 

 

 

 

 5、电话→RTP→流分析,英文版是找对应位置吧

 

 6、这个界面可以看到包的信息,如丢包率等。这里的丢包率是62%,太大了,等下导出的视频可能无法播放或者很不理想,仅做个步骤示范

 

 点“save”保存为音视频,我重命名为test.mp4,用VLC播放即可,这里的包丢包太大,视频根本无法播放

 

7、常用相关命令备忘

tcpdump -i eth0 host 192.168.1.100 -w ddgg.cap    //抓取网卡名为:eht0,IP地址为:192.168.1.100 的包,并保存为ddgg.cap在当前目录

 

wireshark 包过滤

ip.addr==192.168.1.50   过滤IP

udp.port=30000   过滤端口

 

相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示