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

  • 选择菜单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可直接播放裸流。

  • 裸流导出后,可通过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的解码。
  • 选择菜单Tools->Video->Export H265弹出导出弹窗,点击Export All,即可导出H265裸流,点击Browse可打开导出文件夹,点击Play 1可直接播放裸流。
  • 裸流导出后,可通过vlc直接播放,看是否正常,也可通过Elecard-HEVC-Analyzer分析编码信息及流信息

5 后记

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

wireshark提取视频数据之RTP包中提取H264和H265相关推荐

  1. Wireshark提取RTP包中的H264码流

    最近对之前用到的东西做整理发现一些有用的东西,在此做下记录,本文参考  http://blog.sina.com.cn/s/blog_3e3601200101e4lp.html 抓取一个包含H.2 ...

  2. python处理pdf提取指定数据_python从PDF中提取数据的示例

    01 前言 数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据.然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都 ...

  3. 从bag包中提取图片和点云数据为pcd格式点云文件

    从bag包中提取图片和点云数据为pcd格式点云文件 1 开始提取bag包之前的准备工作 2 从bag包中提取图片和点云数据 首先说明一下我运行的系统环境: python2 Ubuntu18.04 RO ...

  4. Java做rtp解包封包_基于RTP的H视频数据打包解包类DoubleLi博客园.pdf

    基于RTP的H视频数据打包解包类DoubleLi博客园 15- 10-30 基于RTP的H264视频数据打包解包类 - DoubleLi - 博客园 DoubleLi 博客园 :: 首页 :: 博问 ...

  5. 从RTP包中分析OPUS码流

    https://blog.csdn.net/hclbeloved/article/details/115528990 1 OPUS是啥 略,一搜一大把,官网地址可以看看,具体如下: https://o ...

  6. unity 从apk包中提取资源

    unity 从apk包中提取资源 前提:使用本方法来提取资源有个前提就是资源没有被加密 (1)打开apk包 首先,将你的apk包重命名为zip或者rar类型的文件,然后进行解压缩,获取下面的文件 各个 ...

  7. 提取html string,c#从html中提取文本

    虽然之前也写过gensim库的word2vec的教程,但是对于文本分析的特征提取并不太理解.最近看了几篇scikit的外文教程,对机器学习中文本的特征提取有了一些了解. 一:背景相信有很多朋友在遇到应 ...

  8. 【FFMPEG】基于RTP的H264视频数据打包解包类

    最近考虑使用RTP替换原有的高清视频传输协议,遂上网查找有关H264视频RTP打包.解包的文档和代码.功夫不负有心人,找到不少有价值的文档和代码.参考这些资料,写了H264 RTP打包类.解包类,实现 ...

  9. mysql src.rpm_从.src.rpm包中提取出完整的源码的方法

    1 什么是完整的源码 就是说,最初始的源码加上打了所有的patch后的源码,即最新的源码. 2 过程 2.1 从.src.rpm中提取完整的rpm工程文件 2.1.1 rpm to cpio rpm2 ...

最新文章

  1. 【Qt】QtCreator中关于Style Plugin Example没有效果的修改方法
  2. 从脑电图(EEG)中提取稳定的模式进行识别
  3. double 直接舍去 保留两位小数
  4. phpstudy(小皮面板)Deepin安装脚本
  5. go errgroup 用法示例
  6. kopernio显示无效程序_daz 无法渲染/没有渲染/渲染不显示/渲染无效?
  7. ios 安装OpenFire
  8. 生活情景英语:英语国家生存英语精选
  9. 资产管理系统测试用例
  10. vs中生成xml注释
  11. 关于x86、x86_64、x64、amd64和arm64、aarch64
  12. 微信新表情真的太骚了!!
  13. 使用git push没有报错,但是远程仓库没有更新的问题
  14. 鸿蒙系统比苹果系统还快,任正非揭秘!华为鸿蒙系统,比安卓、苹果系统快,为物联网而生...
  15. 苹果浏览器之简单应用
  16. java 实现 手机接收短信验证码功能
  17. Linux上下文切换[转]
  18. 算力和硬件的关系_硬件与软件:躯体与灵魂
  19. 数据埋点、公司SOP流程
  20. 什么是BSD开源协议

热门文章

  1. 信息安全-五:隐通道
  2. matlab等高图采用对数坐标,用matlab画对数坐标图形
  3. 基于云平台服务器的数据处理方法及系统,基于云平台的有毒有害气体监测系统解决方案...
  4. matplotlib绘图库
  5. Windows 10系统下安装Go语言环境
  6. 常用优化与测试系统软件,推荐几款常用的cpu硬件检测软件以及cpu优化软件
  7. 长沙北大青鸟java 学费_长沙北大青鸟学校好不好 长沙北大青鸟实力学费一览表:Java代码编写规范(二)...
  8. 管理者的第一堂必修课
  9. 1993年的台湾工厂SOP解读,依旧经典!
  10. 诺基亚被中国联通选中驱动该公司在北京的4G和5G网络