wireshark提取视频数据之RTP包中提取H264和H265

news2025/7/27 21:44:43

wireshark提取视频数据之RTP包中提取H264和H265

文章目录

  • wireshark提取视频数据之RTP包中提取H264和H265
    • 1 背景
    • 2 提取前工作
    • 3 H264视频从RTP包中提取步骤
    • 4 H265视频从RTP包中提取步骤
    • 5 后记

1 背景

在流媒体相关问题分析时,抓包分析是非常重要的手段,比如播放有码流无图像、流媒体协议对接问题、码流花屏卡顿等问题,很多问题都可以通过抓包然后分析包数据来定位出问题,抓包最常用的工具是wireshark,其能从数据链路层、IP层、传输层、应用层等各层进行分析,支持多种协议,具体用法可百度。本文主要介绍抓包分析的一种场景,怎么通过wireshark从rtp包中把视频的原始数据提取出来,通过对原始视频流的分析可以知道视频流编码是否存在问题是否有丢帧等问题。

2 提取前工作

准备工作如下:

  • 下载wireshark并安装:可百度下载并安装
  • 抓取RTP包:可通过ffmpeg模拟rtsp服务器,通过vlc申请视频,并通过wireshark抓取rtp视频流包,也可关注公众号壹零仓,发送视频流分析的消息,获取已经抓好的数据包(视频流分析->wireshark数据包:h264_rtsp_over_udp.pcapng和h265_rtsp_over_udp.pcapng)
  • 下载wireshark插件:可关注公众号壹零仓,发送视频流分析的消息,获取(视频流分析工具->wiresharkplugins.zip)

本文主要描述如何从rtp打包的H264或者H265中提取H264或H265裸流,rtp传输方式为UDP,后续文章会介绍如何从传输方式为TCP的rtp中提取视频数据。

3 H264视频从RTP包中提取步骤

H264视频流提取步骤如下:

  • 下载并安装wireshark,可下载最新版本,
    下载地址

  • 解压wiresharkplugins.zip压缩包,把压缩包中的两个插件放到wireshark安装目录下的plugins目录下,如果已打开wireshark,需要重启wireshark,路径如下所示:
    插件

  • 使用wireshark打开h264_rtsp_over_udp.pcapng的抓包文件,也可使自己抓的视频流的包文件,打开后选择要提取的视频流rtp包,右键->follow->UDP stream,关闭当前流详情页面,过滤掉其他的无关包,只选取此路视频的包。
    在这里插入图片描述

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

  • 选择菜单Edit->Preferences,打开首选项,左侧菜单列表选择Protocols->H.264,这里抓包的视频编码是H.264,fu-a编码的方式,根据上一步骤获取的PT为96,H.264 dynamic payload types 填写96,然后点击OK,这里wireshark应该会把rtp解析成H.264格式,如果以前已经配置了96,但是协议还是没有变成H.264的格式,可通过先配置成其他值,然后再改成96来触发FU-A的解码,这可能是wireshark的一个bug。
    在这里插入图片描述

  • 当Protocol变成H264,Info中FU-A时,即可通过插件进行提取,选择菜单Tools->Video->Export H264弹出导出弹窗,点击Export All,即可导出H264裸流,点击Browse可打开导出文件夹,点击Play 1可直接播放裸流。
    i
    v

  • 裸流导出后,可通过vlc直接播放,看是否正常,也可通过Elecard StreamEye Tools分析编码信息及流信息。

4 H265视频从RTP包中提取步骤

H265视频提取与H264提取类似,用wireshark打开h265_rtsp_over_udp.pcapng,选择rtp的一路视频后通过右键->follow->UDP stream,过滤掉其他包数据,然后通过右键->decode as…解码成RTP,此时获取到rtp的 payload type,这里也是96,之后步骤略有不同,如下:

  • 选择菜单Edit->Preferences,打开首选项,左侧菜单列表选择Protocols->H.265,根据上一步骤获取的PT为96,H.265 dynamic payload types 填写96,然后点击OK,这里wireshark应该会把rtp解析成H265格式,如果以前已经配置了96,但是协议还是没有变成H265的格式,可通过先配置成其他值,然后再改成96来触发FU-A的解码。
    i
  • 选择菜单Tools->Video->Export H265弹出导出弹窗,点击Export All,即可导出H265裸流,点击Browse可打开导出文件夹,点击Play 1可直接播放裸流。
    v
  • 裸流导出后,可通过vlc直接播放,看是否正常,也可通过Elecard-HEVC-Analyzer分析编码信息及流信息

5 后记

后续文章会介绍下如何从rtp流中提取PS流,如何从RTP over TCP中提取H264/H265裸流
相关文章、RTP相关知识、工具及抓包,可注公众号壹零仓,发送视频流分析rtp等消息获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16598.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

容器入门:一文了解容器的发展历史、技术和术语

学习目标 本文为Amazon容器入门课程笔记,内容是容器化背后的发展历史和概念,介绍容器生态系统中使用的特定技术,并讨论容器在微服务架构中的重要性。 本篇文章仅做前两个小结的梳理和总结。看完这篇文章之后应该掌握容器背后的发展历史、技…

webpack使用详解

什么是webpack 官方定义:从本质上来说,webpack是一个现代的JavaScript的静态模块打包工具。 webpack是前端工程化的一个解决方案。 主要功能: 提供了前端模块化功能支持,模块混淆,代码压缩,处理浏览器JS兼…

腾格尔发新歌《遥远的地方》,成都邓秀菊自发红包朋友圈寻歌词

随着卡特尔世界杯拉开帷幕,著名音乐人腾格尔,再一次走进大家的视野当中,不过这次却不是因为唱歌。腾格尔是一个音乐人,他更是一个出色的球迷,为了表达对世界杯的喜爱,他还专门拍摄了段子上传网络。 说起音乐…

C++ :Symbol:符号

1:符号的概念 符号(symbol)是在 ELF格式中会遇到的概念,也就是在写汇编代码时候会遇到的,而在更高级语言(C或者C)中不会直接遇到这个概念,我们把讨论的范围限制在 Linux上的ELF格式…

python多分支选择结构实例讲解

多分支选择结构的语法格式如下: if 条件表达式 1 : 语句 1/语句块 1 elif 条件表达式 2: 语句 2/语句块 2 elif 条件表达式 n : 语句 n/语句块 n [else: 语句 n1/语句块 n1 ] 【注】计算机行业,描述语法格式时,使用中…

Word处理控件Aspose.Words功能演示:使用 C# 在 Word 文档中创建条形码

条形码是具有编码数据/信息的平行线、点或矩形形式的图像。行业专业人士使用条形码嵌入和访问产品信息、跟踪产品移动并跟上库存。在某些情况下,我们可能需要在 MS Word 文档中生成和添加条形码。MS Word 是最流行和广泛使用的图形文字处理程序。它用于创建带有文本…

总结:从实模式到保护模式的流程和相关寄存器,相关数据结构之间的联系

总结:从实模式到保护模式的相关寄存器和相关数据结构之间的联系 1.怎么进入保护模式 段描述符 段描述符: 实模式下的用户可以破坏存储代码的内存区域 ,用段描述符来对某一段进行描述内存段类型属性来阻止这种行为。8个字节大小 全局描述…

[附源码]java毕业设计朋辈帮扶系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

HTML基础

文章目录一、HTML结构1、认识HTML标签2、HTML文件基本结构3、标签层次结构二、HTML常见标签1、注释标签2、标题标签3、段落标签4、换行标签5、格式化标签6、图片标签7、超链接标签8、表格标签9、列表标签10、表单标签12、 div & span一、HTML结构 1、认识HTML标签 HTML 代…

光点高校数据中台,助力高校信息化迎来发展新格局_光点科技

数据是教育信息化改革创新过程中的核心资产。从大数据的角度构建高校数据治理体系,支持高校管理信息向智能化服务和教育数字化转型,已成为必然趋势。 然而,高校拥有更大的数据规模、更复杂的数据类型、更密集的数据交换和对数据治理的需求。因…

从各大论坛收集整理的八股文手册,肝完横躺95%的Java面试岗位

今年的秋招很多小伙伴收获不错,拿到了心仪的offer。也有很多小伙伴屡屡碰壁,选择待在舒适区,不过没关系,错过了今年的金九银十,来年的春招再战呗! 最近在各大论坛和社区里看见不少小伙伴慷慨地分享了常见的…

JS正则表达式

文章目录1、创建正则表达式的方式1.1、字面量形式1.2、对象2、正则方法2.1、exec()2.2、test()2.3、可以用于正则的string方法2.3.1、match()2.3.2、replace()补充:$在正则替换中的使用2.3.3、search()2.3.4、split()2.3.5、matchAll()3、边界量词4、模式修饰符5、原…

拷贝构造函数详解

拷贝构造函数详解1.概念与特征2.浅拷贝3.深拷贝4.拷贝构造函数典型调用场景:如果一个类中什么成员都没有,那么该类简称为空类。而空类中其实并不是真的什么都没有,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。构造…

对GROUP BY的增强

使用ROLLUP操作产生求和值使用CUBE操作产生使用GROUPING函数确定该行值是由ROLLUP或者CUBE创建的使用GROUPING SETS生成一个简单的结果集[oracleoracle-db-19c ~]$ [oracleoracle-db-19c ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Fri Nov 18 10:…

idea2022.2.3版本下载安装配置(包含运行第一个java程序教程)详细步骤

目录 一、下载idea 1.去浏览器搜索idea官网,找到官网 2.选择Download 3.点击左边的Download下载就好了 4.在本地磁盘建一个文件夹,专门用来存放idea软件的 二、安装idea 5.在本地磁盘中的下载里面找到下载的idea并双击打开 6.选择Next ​编辑 7…

【无标题】PCIe收发卡设计资料原理图:611-基于VU9P的2路4Gsps AD 2路5G DA PCIe收发卡

基于VU9P的2路4Gsps AD 2路5G DA PCIe收发卡一、板卡概述 基于XCVU9P的5Gsps AD DA收发PCIe板卡。北京太速科技该板卡要求符合PCIe 3.0标准,包含一片XCVU9P-2FLGA2014I、2组64-bit/8GB DDR4、2路高速AD, 2路高速DA,支持外触发&#xff…

基于单片机的学生视力保护仪

目录 摘 要 1 ABSTRACT 2 第一章 绪论 4 1.1课题的选题背景 4 1.2国内外发展现状 5 1.3本论文主要研究内容 6 1.3.1主要内容 6 1.3.2基本要求 7 第二章 学生视力保护仪总系统设计 8 2.1系统总框图 8 2.2单片机的选择 8 2.3传感器的选择 9 2.4编程语言的选择 9 第三章 系统硬件…

CentOS 7 源码制作ngnx-1.22.1-ipv6 rpm —— 筑梦之路

源码包:http://nginx.org/packages/centos/7/SRPMS/nginx-1.22.1-1.el7.ngx.src.rpm # 安装依赖包yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/pcre2-devel-10.23-2.el7.x86_64.rpm# 安装源码包 初始化项目rpm -ivh nginx-1.22.1-1.el7.ngx…

5G无线技术基础自学系列 | 物理下行控制信道

素材来源:《5G无线网络优化实践》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 2.4.1 PDCCH位置定义 在LTE中&#xff0…

ESP32的AP模式使用

WifiClient 和WebServe有啥区别? (14 封私信 / 1 条消息) httpclient 和webservice有啥区别? - 知乎 (zhihu.com) 1.Webservice两大核心:soap(理解为要传输的数据)、wsdl(理解为传输数据xml的说明) soap xml ht…