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负载数据方法 的相关文章

  • UDP 数据报中发送的消息未经过净化?

    我的代码如下 一切都按照我想要的方式进行 但是当我的消息收到时 它们的末尾有很多框 有点像这样 消息 你好 如何才能让接收和打印的内容仅为 Message hello 我非常感谢任何帮助 import java io import java
  • 使用 Winsock 通过单个 UDP 服务器处理 10 个客户端

    我已经使用 UDP 套接字建立了一个服务器 客户端应用程序 但我的服务器无法一次处理多个客户端 现在我想修改我的应用程序 让 10 个客户端分别运行在不同的计算机上 而我的服务器运行在单独的计算机上 我希望我的服务器能够与 10 个不同机器
  • GCDAsyncUDPSocket源地址返回null

    谷歌代码问题镜像 https groups google com forum topic cocoaasyncsocket grhjZSMLr3U https groups google com forum topic cocoaasync
  • Android 无法通过互联网从 PC 服务器接收 UDP 数据

    我目前正在探索用Java 进行UDP 数据包传输 以在Android 上创建多人游戏 我使用通常的 127 0 0 1 成功地在 Nexus 4 内交换数据包 并且还成功地在本地网络中的 PC 服务器和 Android 客户端之间交换数据包
  • UDP 服务器套接字缓冲区溢出

    我正在 Linux 上编写 C 应用程序 我的应用程序有一个 UDP 服务器 它在某些事件上向客户端发送数据 UDP 服务器还接收来自客户端的一些反馈 确认 为了实现这个应用程序 我使用了一个 UDP 套接字 例如int fdSocket
  • Java UDP中如何获取实际数据包大小`byte[]`数组

    这是我上一个问题的后续问题 Java UDP发送 接收数据包一一接收 https stackoverflow com questions 21866382 java udp send receive packet one by one 正如
  • 为什么我的 UDP 广播失败?

    我正在尝试发送 UDP 广播 但wireshark 没有报告任何流量 这是执行发送的代码片段 void SendBroadcast String ip 255 255 255 255 int port 30718 String messag
  • 错误的 UDP 校验和没有效果:为什么?

    我正在尝试测试 UDP 程序 如果它接收到 UDP 校验和错误的数据 会发生什么情况 奇怪的是 它似乎没有任何效果 并且有效负载被成功接收 至少在 OS X 上是通过环回接口成功接收的 下面是一个示例 其中使用以下方式发送数据SOCK RA
  • 如果客户端在服务器之后启动,则 GStreamer v1.0 UDP 多播流无法正确解码

    我正在尝试使用 GStreamer 进行 UDP 多播屏幕流传输 我的投屏服务器应该在 Windows 上运行 and my 客户端应在 Linux 上运行 如果我在服务器之前启动客户端 一切都很好 问题是当我启动客户端并且服务器已经启动时
  • NodeJS UDP 多播如何

    我正在尝试将 UDP 多播数据包发送到 230 185 192 108 以便每个订阅的人都会收到 有点卡住了 我相信它的广播正确 但似乎无法从任何客户端获取任何信息 Server var news Borussia Dortmund win
  • 用于接收 UDP 数据包的可变大小缓冲区

    我有一个 UDP 套接字 它将接收一些可能不同大小的数据包 并且我异步处理它 socket async receive from boost asio buffer buffer 65536 senderEndpoint handler 这
  • 当网络上的所有计算机都具有相同的公共IP地址时,如何向特定计算机发送UDP数据包? [关闭]

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

    如何在 C 中创建客户端 UDP 套接字 以便它可以侦听另一个应用程序正在侦听的端口 换句话说 如何在 C 中应用端口复用 我只想监听一个端口 您可以使用嗅探器来做到这一点 只需忽略来自不同端口的数据包即可 我可能需要阻止它发送一些特定的数
  • 对等网络应用程序的网络发现

    我希望有两个类 一个服务器类和一个客户端类 服务器类应该接收每个新客户端的 IP 地址和端口号并将它们存储在列表中 它应该为每个客户端提供已连接客户端及其 IP 地址的列表 然后 客户端可以使用 TCP 连接相互通信 问题是客户端不知道服务
  • 为什么我们可以将 sockaddr 转换为 sockaddr_in

    我明白为什么强制转换很有用sockaddr to sockaddr in 但我不明白这怎么可能 据我所知 它们的大小相同sockaddr in添加了sin zero使其大小相同 我想知道编译器如何知道从哪里获取信息sockaddr in如果
  • 在 PowerShell 中通过 UDP 发送和接收数据

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

    我在程序中使用 recvfrom 从我在 src addr 中指定的服务器获取 DGRAM 数据 但是 我不确定为什么需要初始化并传入addrlen 我读了手册页 但不太明白它的意思 如果src addr不为NULL 并且底层协议提供了源地
  • Node.js 可读流_read用法

    我了解如何在 Node 的 new 中使用可写流Streams2库 但我不明白如何使用可读流 举个例子 一个流包装器围绕dgram module var dgram require dgram var thumbs twiddle func
  • 如何使用 Nmap 检索 TCP 和 UDP 端口? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我需要在使用 Nmap 的同一扫描中以尽可能最快的方式检索 TCP 和 UDP 端口 我会尽力解释得更好 如果我使用最常用的命令 nmap 192 1
  • 从不同进程通过套接字 (UDP) 回复客户端

    我有一个服务器而不是 命令处理程序 进程 它通过 UDP 接收消息 并通过其发布的 API 无论该进程采用何种 IPC 机制 与该进程进行通信 从而将要做的工作委托给不同的进程 我们的系统有多个协作进程 然后 该 API 调用的结果会从命令

随机推荐

  • 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流文