wireshark抓包数据提取TCP/UDP/RTP负载数据方法

2023-11-11

1 、背景

在视频抓包分析过程中,有时候需要从TCP、UDP、RTP中直接提取payload数据,比如较老的摄像机,有一些直接通过TCP/UDP传输视频裸流,或者PS打包的视频流,通过提取TCP和UDP的负载数据就可以直接组成裸流或者PS流文件,通过视频分析工具(Elecard StreamEye Tools,可关注公众号壹零仓,发送视频流分析 来获取分析工具)分析视频流数据是否正常。GB28181视频传输时通过RTP携带PS流的方式传输,因此通过提取RTP负载数据,形成的文件即是PS流文件,可通过分析工具直接分析PS流。

2、 TCP和UDP负载提取方式

TCP和UDP提取其负载数据比较简单,他们提取方法很相似,如下:

  • UDP负载数据提取方法:在UDP包数据列表中右键->Follow->UDP Stream,打开Udp Stream对话框,对话框中集合了所有你选择的数据包的四元组上的通讯数据,默认显示为ASCII,右下角show data as 选择raw,点击save as 保存成二进制文件,文件中数据即为UDP负载数据

  • TCP负载数据提取方法:与UDP方式类似,在TCP包数据列表中右键->Follow->TCP Stream,打开TCP Stream对话框,对话框中集合了所有你选择的数据包TCP连接上所有的通讯数据,默认显示为ASCII,右下角show data as 选择raw,点击save as 保存成二进制文件,文件中数据即为TCP负载数据。

3 、RTP负载提取方式

现在的视频采集终端基本不会直接通过TCP或者UDP传输裸流,比较常用的是通过RTP方式来传输裸流或者PS流,RTP方式传输H264或者H265裸流的提取方式可以通过关注公众号壹零仓,发送wiresahrk的消息,获取提取方式,这里详细介绍直接提取RTP负载,不做任何组包操作,这里以PS over rtp流的包为例,从此包中提取RTP流的方式。

【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发

【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

  • 打开样例的抓包文件gb28181_h264_rtp_udp.pcapng,可自己抓一个PS over RTP的包,也可关注公众号壹零仓,发送视频流分析,获取。

  • 在数据包列表中,最新版应该会自动识别,如果传输的PS流未解码成RTP协议,可以选择PS流数据包右键->decode as...,在current属性列表中选择rtp,解码成rtp包,如果未视频成rtp可通过此步骤解码,此时包的协议类型wei2rtp,可以看到其payload type。

  • 选择菜单栏Telephony->RTP->RTP Player,打开RTP Player

  • 选择RTP的视频链路,选择export->payload,保存rtp负载,这里保存文件名为111.raw

  • 保存的RTP负载文件,为PS流二进制文件,可通过Elecard StreamEye Tools进行分析,如下:

原文链接:wireshark抓包数据提取TCP/UDP/RTP负载数据方法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wireshark抓包数据提取TCP/UDP/RTP负载数据方法 的相关文章

  • memcached 使用 Django 监听 UDP

    Question 我无法获得memcached正在听UDP 上班 get set delete 与姜戈 我只让 memcached 监听UDP 11211 正如我在上一个问题 https stackoverflow com question
  • 如何设置Winsock UDP套接字?

    我想创建一个仅向客户端发送数据的 Winsock UDP 套接字 我希望内核为我选择一个可用的端口 另一方面 我想指出要使用哪个本地 IP 因为我正在运行一些网卡 我尝试过梳理迷宫般的套接字选项 以及将套接字地址中的端口绑定设置为 0 但均
  • Python-UDP客户端

    我目前正在阅读Pythonbook https www nostarch com blackhatpython并遇到了以下示例 import socket target host 127 0 0 1 target port 80 creat
  • UdpClient 在广播地址上接收

    在 c 中 我使用 UdpClient Receive 函数 public void StartUdpListener Object state try udpServer new UdpClient new IPEndPoint IPAd
  • 用于接收 UDP 数据包的可变大小缓冲区

    我有一个 UDP 套接字 它将接收一些可能不同大小的数据包 并且我异步处理它 socket async receive from boost asio buffer buffer 65536 senderEndpoint handler 这
  • 通过 Internet 发送 UDP 数据包

    我正在尝试了解 P2P 去中心化网络的一些细节 我的问题如下 假设我有两台名为 comp1 和 comp2 的机器 现在 comp1 设置在我的家庭网络中的路由器后面 comp2 位于我的办公室中 也位于路由器后面 我是否可以像这样在 In
  • 更改Windows下的默认套接字缓冲区大小[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我无法更改的应用程序正在丢弃一些传入的 UDP 数据包 我怀疑接收缓冲区溢出 是否有注册表设置可以使默认缓冲区大于 8KB From th
  • 当网络上的所有计算机都具有相同的公共IP地址时,如何向特定计算机发送UDP数据包? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 这就是问题 它非常简单 理解 我家里有 2 台电脑 它们都有相同的公共 IP 地址 例如 1 2 3 4 我在咖啡馆有一台计算机 不同的网络 因此它具
  • 搜索所有网络上的设备

    我想实现一个代码 通过它我可以列出网络上连接的 upnp 兼容媒体渲染器设备 我用谷歌搜索了这个并找到了以下代码扭曲的网站 https twistedmatrix com documents current core howto udp h
  • 如何在QT中发送和接收UDP数据包

    我正在 QT 中编写一个小型应用程序 它通过本地网络发送广播 UDP 数据包 并等待来自网络上的一个或多个设备的 UDP 响应数据包 创建套接字并发送广播数据包 udpSocketSend new QUdpSocket this udpSo
  • 为什么通过UdpClient发送会导致后续接收失败?

    我正在尝试创建一个 UDP 服务器 它可以向所有向其发送消息的客户端发送消息 真实情况要复杂一些 但最简单的方法是将其想象为一个聊天服务器 之前发送过消息的每个人都会收到其他客户端发送的所有消息 所有这一切都是通过UdpClient 在单独
  • 自 2012 年以来,WinSock 注册 IO 性能是否有所下降?

    我最近使用 MS 为该 API 提供的稍微可接受的文档编写了基于 WinSock Registered IO RIO 的 UDP 接收 最终的性能非常令人失望 单套接字性能有些稳定 约为每秒 180k 数据包 使用多个 RSS 队列 即多个
  • 提高UDP可靠性

    我正在构建一个基于 UDP 的小型服务器 服务器基于 Net并使用它自己的Socket类 我通过 ReceiveMessageFromAsync 和异步发送使用完成端口 我的问题是我失去了大约 5 10 的流量 现在我明白这是正常的 但是有
  • 在 PowerShell 中通过 UDP 发送和接收数据

    我正在尝试编写一个脚本来使用 PowerShell 进行测试和应用 测试应包括通过 UDP 向远程服务器发送字符串 然后读取该服务器的响应并对结果执行某些操作 我需要的唯一帮助是脚本的中间两个步骤 发送字符串 然后 接收响应 在端口 UDP
  • Node.js 可读流_read用法

    我了解如何在 Node 的 new 中使用可写流Streams2库 但我不明白如何使用可读流 举个例子 一个流包装器围绕dgram module var dgram require dgram var thumbs twiddle func
  • 为什么 Kademlia 使用 UDP?

    为什么Kademlia 分布式哈希表 http en wikipedia org wiki Kademlia使用 UDP 作为其网络传输协议 即使它不可靠 主要原因是您快速查询了许多以前从未建立过联系并且可能在查找过程中永远不会再看到的节点
  • 使用多个 NIC 广播 UDP 数据包

    我正在 Linux 中为相机控制器构建嵌入式系统 非实时 我在让网络做我想做的事情时遇到问题 该系统有 3 个 NIC 1 个 100base T 和 2 个千兆端口 我将较慢的连接到相机 这就是它支持的全部 而较快的连接是与其他机器的点对
  • 跨 NAT 的 UDP 客户端无法从服务器接收数据

    我正在尝试在服务器 在公共 IP 上 和客户端 跨 NAT 之间使用 UDP 进行双向通信 我的逻辑是 如果服务器将一些数据发送到 IP 和它接收数据包的端口 客户端仍然应该收到它 因为 NAT 将具有最终将数据包发送到客户端的映射 客户端
  • boost 是否有可移植的方式来使用 ntohl/htonl/ntohs/htons 类型函数?

    我正在使用 UDP 特别是 boost asio ip udp socket 套接字 如果有帮助的话 头文件是什么 我需要哪些标头 类来处理 UDP 提升下的网络字节排序 刚刚发现就足够了 include
  • 使用 Twisted Python 的 UDP 客户端和服务器

    我想创建一个服务器和客户端 使用 Twisted 从网络发送和接收 UDP 数据包 我已经用 Python 中的套接字编写了此代码 但想利用 Twisted 的回调和线程功能 然而 我需要 Twisted 设计方面的帮助 我想接收多种类型的

随机推荐

  • Qt 在主界面程序中,调用子界面(另一个界面)的控件

    问题 在主界面程序mainwindow cpp中 想调用子界面 另一个界面 上的控件 已经在 pro工程中添加好了一个设计师界面类作为子界面 这里我在工程中添加的是show netlist dialog cpp h ui 解决步骤 1 在子
  • MYSQL查询一对多的数据表关联,产生重复数据怎么处理

    在 MySQL 中 当进行一对多的数据表关联查询时 有时会导致结果中出现重复数据的情况 这是由于多个关联的子表记录与主表记录进行了笛卡尔积 从而产生了重复的结果 为了处理这种情况 可以使用以下方法之一 使用DISTINCT关键字 可以在查询
  • micropython Esp32 外接LED使用Thonny ValueError: pin can only be input解决办法

    micropython Esp32 外接LED使用Thonny ValueError pin can only be input解决办法 1 连接方式如下图 注意一定要加电阻 2 通过输入以下代码 报错 ValueError pin can
  • 关于vscode调试php

    1 PHP 5 4 0起 CLI SAPI 提供了一个内置的Web服务器 URI请求会被发送到PHP所在的的工作目录 Working Directory 进行处理 除非你使用了 t参数来自定义不同的目录 如果请求未指定执行哪个PHP文件 则
  • 【查询代码提交数】

    后端 shell git log all since 2021 10 01 until 2021 12 31 format aN sort u while read name do echo en name t git log all si
  • draw.io基础使用

    转自 Draw io 一款强大且支持在线编辑和到处的画图软件 转自 https blog csdn net feeltouch article details 105476275
  • Buildroot笔记

    CSDN仅用于增加百度收录权重 排版未优化 日常不维护 请访问 www hceng cn 查看 评论 本博文对应地址 https hceng cn 2019 09 05 Buildroot E7 AC 94 E8 AE B0 more 整理
  • 三菱系统四轴正反转参数_三菱M70四轴调试

    三菱M70四轴安装 放大器 MDS D SVJ3 10 马达型号 HF104 1 放大器的旋钮开关 SW1 X 0 Y 1 Z 2 4轴 3 主轴 4 注 3合一的放大器 4轴 4 2 参数设置 先输入参数修改密码 MPARA 1 基本规格
  • cookie 封装

    npm i universal cookie npm i vueuse integrations 1 新建 utils storage js import useCookies from vueuse integrations useCoo
  • 若依框架——使用自定义用户表登录系统

    修改数据库配置 修改登录用户表 原JavaBean package com ruoyi common core domain entity import java util Date import java util List import
  • 很有道理的十句话

    第一句如果我们之间有1000 步的距离 你只要跨出第1 步我就会朝你的方向走其余的 999步 第二句 通常愿意留下来跟你争吵的人 才是真正爱你的人 第三句付出真心 才会得到真心 却也可能伤得彻底保持距离 就能保护自己 却也注定永远寂寞 第四
  • antd上传组件使用fileList属性展示图片,onchage事件只会执行一次的问题

    在工作中使用到了antd的照片墙组件时 遇到了官方文档上提出的一个问题 然而官方的解答是回退版本 看了github上网友留言 加上自己测试 找到一种解决方式 一定要在判断 等于 uploading状态的时候进行一次setState 之后在d
  • 通过华为杯竞赛、高教社杯和数学建模国赛实现逆袭;助力名利双收

    文章目录 赛事介绍 参赛好处 辅导比赛 写在最后 赛事介绍 华为杯全国研究生数学建模竞赛是由华为公司主办的一项面向全国研究生的数学建模竞赛 该竞赛旨在通过实际问题的建模和解决 培养研究生的创新能力和团队合作精神 推动科技创新和应用 华为杯竞
  • python:类

    类与对象 Python从设计之初就已经是一门面向对象的语言 面向对象编程OOP是一种程序设计思想 它把对象作为程序的基本单元 一个对象包含了数据和操作数据的函数 面向过程的程序设计把计算机程序视为一系列的命令集合 即一组函数的顺序执行 为了
  • Ubuntu20.04系统使用笔记

    笔者安装的ubuntu版本是20 04 双系统安装 参考教程 link 用于深度学习 总共给ubuntu的空间为200GB 交换区分l8GB 16GB内存 EFI系统分区1GB 剩余181GB全给根目录 操作记录 使用命令sudo ubun
  • python + selenium

    selenium是一个模拟浏览器的类库 经常用来做自动化测试 python 可以直接使用安装目录下的Scripts pip工具安装 以windows7 python3 4为例 运行cmd cd C Python34 Scripts pip
  • 【LTspice】005 伯德图绘制

    目录 1 伯德图介绍 2 LTspice 截止频率验证 3 LTspice中如何添加光标 4 LTspice中如何将 幅频 和 相频曲线分开 1 伯德图介绍 Bode图由对数幅频特性和对数相频特性两张图组成 伯德图 百度百科 1 对数幅频特
  • 学习vue之node的安装

    关于node 简单的说 Node js 就是运行在服务端的 JavaScript Node js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 Node js 使用了一个事件驱动 非阻塞式 I O 的模型 使其轻量
  • Java 学习路线一条龙版

    Java 学习路线一条龙版 Java 学习路线一条龙版 by 程序员鱼皮 学习路线来源于 程序员鱼皮 大家可以去b站看看他的视频 视频导读 https www bilibili com video BV1Qf4y1K7ff 大纲 路线特点
  • wireshark抓包数据提取TCP/UDP/RTP负载数据方法

    1 背景 在视频抓包分析过程中 有时候需要从TCP UDP RTP中直接提取payload数据 比如较老的摄像机 有一些直接通过TCP UDP传输视频裸流 或者PS打包的视频流 通过提取TCP和UDP的负载数据就可以直接组成裸流或者PS流文