调试rtsp收发流时,经常会需要抓包以确认是网络问题还是程序问题还是其它问题。通过tcpdump或者wireshark抓到的包通常是rtp流,保存为.pcap格式文件后中,可通过wireshark进行解析,得出h264裸流,并保存为文件。

我这里有一段rtp流文件,作为演示使用(这个文件有点不标准,一般一个nal打一个mark,但这里是一帧打一个mark)

网盘地址 链接:https://pan.baidu.com/s/1s0aitAmaSED_prvWRVRIYQ 提取码:r1cp

安装lua工具

这个工具是百度搜索来的,因为使用过程不清楚,于是我将在这里演示一遍,工具文件rtp_h264_extractor.lua也放在了上面的网盘中。——基本可参考:https://www.cnblogs.com/liushui-sky/p/13671360.html

  1. 工具文件rtp_h264_extractor.lua放在 Wireshark 安装目录中。

    右键wireshark图标 --> 属性 --> 打开文件所在位置,即可进入到wireshark安装目录,将工具文件放到此目录中。

  2. 编辑目录中的 init.lua 文件,在末尾添加 "dofile(DATA_DIR.."rtp_h264_extractor.lua")" 以加载工具文件

  3. 打开wirshark后,可 菜单栏 “工具” 项中看到 “Extract h264 stream from RTP” 一项

Wireshark将流解析为RTP H264流

抓到的包如果不是单纯的某个端口的 udp rtp 264流,则需要先进行过滤解析,

  1. 过滤端口

  2. 解析为RTP流

    选中某一个包,右键 --> 解码为 --> 选择 RTP类型

  3. 解析为 H264的RTP包

    先查看rtp包中的video的负载类型,如下,这里的值是96

    菜单栏 编辑 --> 首选项 --> Protocols --> H264,填写96



    使用工具,提取264流并保存为文件

    菜单栏 工具 --> 选中Extract h264 stream from RTP工具



待底部进度走完,即可在pcap文件同目录中生成了dump.264文件,可使用 Elecard StreamEye 等工具播放

转自:https://blog.csdn.net/lovehaihong5401/article/details/88085329

还可参考:https://blog.csdn.net/weixin_44022219/article/details/106670184

使用Wireshark在RTP流中提取中264数据(针对udp)(转)的更多相关文章

  1. FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法。。

    [原创] RFC3984是H.264的baseline码流在RTP方式下传输的规范,这里只讨论FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法. 1.单个NAL包单元 12字节 ...

  2. 从Wireshark监听的数据中提取需要的数据

    最近,需要将wireshark监听的数据进行提取,分两步:首先,应该得出wireshark的数据包吧,在图形化界面中可以非常直观的将监听数据进行存储,但是这样需要手动操作非常麻烦,而且容易出错(随着处 ...

  3. 如何从mysql备份中提取单张表数据

    1.先提取备份数据中的前50行出来,查看一下备份数据格式    head -50 bakdb.sql > head50.txt        类似下面的数据是我们所需要提取的:        / ...

  4. wireshark解析rtp协议,流媒体中的AMR/H263/H264包的方法

    抓到完整的流媒体包之后,用wireshark打开,其中的包可能不会自动映射成RTP+AMR/H263/H264的包,做如下修改操作即可:1.  把UDP 包解析成RTP/RTCP包.选中UDP包,右键 ...

  5. python:字符串中提取特定的数据

    在日志文件中有一大堆,格式相同的文本,需要提取出接口耗时的时间 >>> 运单号:71742507538566,快递100接口耗时:8,返回结果:[{"lengthPre&q ...

  6. 从es中提取全量数据的shell脚本

    [root@hadoop3 xiaole_chk_url]# sh looh.es.res.sh 100 200 1 % Total % Received % Xferd Average Speed ...

  7. 【视频编解码·学习笔记】4. H.264的码流封装格式 & 提取NAL有效数据

    一.码流封装格式简单介绍: H.264的语法元素进行编码后,生成的输出数据都封装为NAL Unit进行传递,多个NAL Unit的数据组合在一起形成总的输出码流.对于不同的应用场景,NAL规定了一种通 ...

  8. [转]【流媒體】H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流

    [流媒體]H264—MP4格式及在MP4文件中提取H264的SPS.PPS及码流 SkySeraph Apr 1st 2012  Email:skyseraph00@163.com 一.MP4格式基本 ...

  9. 从pcap文件中提取pcma音频

    操作系统 :Windows10_x64 .CentOS 7.6.1810_x64 wireshark版本:3.6.12 Python 版本  :  3.9.12 一.背景描述 工作中有时候会遇到需要从 ...

  10. H.264从SPS中提取视频宽高

    H.264有两种封装模式: (1)annexb模式:传统模式,使用start code来分隔NAL, SPS和PPS是在ES流的头部: (2)mp4模式:没有start code,使用NALU长度(固 ...

随机推荐

  1. WebAssembly核心编程[3]: Module 与 Instance

    WebAssembly程序总是以模块来组织,模块是基本的部署.加载和编译单元.在JavaScript编程接口中,模块通过WebAssembly.Module类型表示.WebAssembly.Modul ...

  2. <semaphore.h> 和 <sys/sem.h> 的区别

    <sys/sem.h>为 XSI(最初是 Unix System V)信号量提供接口. 这些不是基本 POSIX 标准的一部分(它们在 XSI 选项中,主要是为了传统的 Unix 兼容性) ...

  3. JDK + Tomcat 安装 + 制作自定义镜像【第 2.1 篇 Tomcat 日志满问题】

    更好的方法,跨平台(不依赖平台,比如阿里云的后台)的方法是:spring boot 定时任务,直接在程序里写定时清除日志的任务:以后再说: ============================== ...

  4. .NET Core开发实战(第31课:APIController:定义API的最佳实践)--学习笔记

    31 | APIController:定义API的最佳实践 首先看一个传统意义上三层架构定义的 Controller [HttpPost] public Task<long> Create ...

  5. 迟来的HIT2024和realworld2024体验赛WP

    目录 前言碎语 2024.2.14 中午 rwctf2024 体验赛 vision 哈工大青训营2024 结营赛 计算器 小技巧 神奇玩意 gdb! 再也不用苦哈哈往回翻 跟踪fork 赛后复现rw ...

  6. JS axios cancelToken 是如何实现取消请求?稍有啰嗦但超有耐心的 axios 源码分析

    壹 ❀ 引 axios,一个基于promise且对ajax进行了二次封装的http库,在提供了与promise类似的API便捷写法同时,它还有一大特点,便是支持取消http请求.当然取消请求并不是ax ...

  7. NC19158 失衡天平

    题目链接 题目 题目描述 终于Alice走出了大魔王的陷阱,可是现在傻傻的她忘了带武器了,这可如何是好???这个时候,一个神秘老人走到她面前答应无偿给她武器,但老人有个条件,需要将所选武器分别放在天平 ...

  8. 详解网络知识:iptables规则

    本文分享自华为云社区<[理解云容器网络]1-基础篇-iptables介绍>,作者: 可以交个朋友. iptables规则 下图为数据包到达linux主机网卡后,内核如何处理数据包的大致流程 ...

  9. 解决unable to find valid certification path to requested target

    问题描述 最近java程序去调用远程服务器接口时报错了: I/O error on POST request for "https://XXX.xyz/create": sun.s ...

  10. 解决:EXP-00003: 未找到段 (0,0) 的存储定义报错

    问题说明 DB服务器oracle版本:11.2.0.4.0 最近在客户端用exp命令导出部分表时报错,如题.搜索了一下,找到以下解决方案: 问题原因 Oracle 11g 有一个参数deferred_ ...