当前位置: 首页 > news >正文

记一次Gb28181视频流异常的排查

        我司在对接HW大厂的国标28181平台时发现,回放录像时,其中某些通道的回放视频时只能播放5秒左右,视频流就停止了,很是奇怪,客户要求排查。

        翻看我们软件后台的日志发现,在接收视频流时出现了问题。我们在取流时使用的是rtp over tcp的方式,这种方式是一包rtp的前面有2个字节表示rtp数据包的大小。

        在接收一段时间后,日志显示接收到的rtp头的version字段不对,接收流程报错退出,停止收流。很显然是接收流不对,不是严格按照2字节头+rtp包的格式来发流。

        为了更有效的向客户说明情况,最好是通过抓包,并分析抓包结果向客户解释。因为我们是要分析视频流数据,所以抓包就需要抓下级平台国标sip协议和流数据的所有数据,不能只抓协议数据。

        拿到运维提供的抓包数据,就要开始一步一步剥离流数据并分析。

        使用wireshark将抓包数据打开。

        第一步,要明确出问题的通道的国标id是多少。

        在过滤器里通过“sip”关键字,让数据列表只显示sip数据,找到对应id的invite数据,比如下图,我们需要找的是19068510451318107156的invite数据。

我们通过查看invite和回复数据得到如下对话信息

callid 937788855
下级sip服务 10.11.146.110
上级sip服务 10.0.66.28
ssrc 1200006959 
发送 3504  接受7001 tcp
流发送ip 10.11.146.124

        这里我提一嘴,下级平台l流发送ip是10.11.146.124,不是sip服务 10.11.146.110,可见这个平台流和sip服务时不同的主机,应该是个不小的平台项目了,实际客户也是接入了1800路视频。不过这个不是我们这里关注点。

        第二部就是改寻找对应的视频流了。

       我们用 tcp.port == 3504 and ip.src==10.11.146.124再过滤一下数据。就过滤出了出错的流数据。然后通过 追踪流-》tcp将数据导出。

这样,我们就得到了rtp over tcp的数据流文件。

        第三步,分析得到的rtp数据,看看出错点在哪里

        这里我用了自己写的rtp ps数据分析工具分析了一下,发现了错误点。

可见最后打印出的rtp包数据头部数据显然和上面的数据包不一样。解析第一个version字段就不对了。所以我们怀疑是上一包的数据长度不够引起了错位

        第4步,在wireshark里找出错的包。

        上一包数据的开头是05 6e 80 60 cc 34 d9 87 d8 98 47 86 a7 2f 36,我们通过对这段数据的搜索(使用ctrl+f出现搜索界面)。在wireshark里找到对应的tcp帧。

如下图所见在编号13973的数据包,该包的长度为774

在该包接近结尾画红线的地方,此处为新的一包rtp数据的起始,值为:

05 6e 80 60 cc 34 d9 87 d8 98 47 86 a7 2f 36

其中05 6e 代表的意义是该包长度为:0x056e=1390。表明其后应有1390长的数据。

此处距编号13973的数据包结束还有265字节,那么在接下来的13974的数据包应有1390-256=1125字节

接下来看编号13974的数据包,该包的开头为:

05 6e 80 60 cc 9a d9 87

这个数据也是新的一包rtp数据起始。不是上面的包需要的1125字节

由此判断,上一个数据包发送发生错误,导致数据错乱

http://www.dtcms.com/a/549871.html

相关文章:

  • JavaScript 03 【基础语法学习】
  • Java项目2——拼图小游戏(上)
  • 深圳住房和建设局网站 申请大连工程信息招标网
  • uni-app VOD 与 COS 选型、开发笔记
  • Spring WebSocket实战:实时通信全解析
  • 网站建设及推广方案ppt模板互联网时代的营销
  • 身份证三要素实名核验API:基于OCR与可信身份认证的技术解析
  • OCR-图片内容识别
  • wordpress 网址导航页面济南seo网站关键词排名
  • VM虚拟机共享宿主机代理(Ubuntu24.04)
  • 高端网站建设收费为何比较贵网站名称写什么
  • C++容器string
  • [人工智能-大模型-110]:用通俗易懂的语言,阐述梯度下降的本质和数学原理:就是“摸着坡度下山”——哪边最陡,就往反方向走一步,反复走,直到走到谷底。
  • 龙华做棋牌网站建设哪家好哪个平台可以免费推广
  • 网站负责人可以备案怎么看网站域名
  • AIoT项目芯片选型指南:在性能、功耗与成本的十字路口
  • Vue 3 插槽(Slot)详解
  • 刘涛做的网站网络营销的优势包括
  • Spring Boot数据访问篇:整合MyBatis操作数据库
  • 丰都网站建设报价现代示范校建设专题网站
  • Flink Keyed State 详解之七
  • 中国建设银行贵州分行网站宁波建设银行管方网站
  • NVIDIA驱动更新“翻车”?解决RTX 2060在Bilibili客户端无法加载4K视频的终极指南*
  • 贵德县建设局网站校园兼职网站开发用例图
  • JavaSE知识分享——类和对象(下)
  • 企业级K8s部署:Helm+Kustomize混合策略实现零配置漂移与10分钟多环境发布
  • 上海人才中心昆明网站词排名优化
  • jQuery Growl - 实用且易于集成的通知插件
  • Manage Provisioning Access 功能详解
  • 龙岗在线网站建设网络销售网站外包