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

这篇具有很好参考价值的文章主要介绍了wireshark提取视频数据之RTP包中提取H264和H265。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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,常用记录,流媒体,rtp,wireshark,rtp提取视频流,RTP抓包提取H264,RTP包提取H265

  • 使用wireshark打开h264_rtsp_over_udp.pcapng的抓包文件,也可使自己抓的视频流的包文件,打开后选择要提取的视频流rtp包,右键->follow->UDP stream,关闭当前流详情页面,过滤掉其他的无关包,只选取此路视频的包。
    wireshark h264,常用记录,流媒体,rtp,wireshark,rtp提取视频流,RTP抓包提取H264,RTP包提取H265

  • 在包数据上右键->decode as…,在current属性列表中选择rtp,解码成rtp包,最新版应该会自动识别,如果未视频成rtp可通过此步骤解码,此时包的协议类型未rtp,可以看到其payload type为96
    wireshark h264,常用记录,流媒体,rtp,wireshark,rtp提取视频流,RTP抓包提取H264,RTP包提取H265

  • 选择菜单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。
    wireshark h264,常用记录,流媒体,rtp,wireshark,rtp提取视频流,RTP抓包提取H264,RTP包提取H265

  • 当Protocol变成H264,Info中FU-A时,即可通过插件进行提取,选择菜单Tools->Video->Export H264弹出导出弹窗,点击Export All,即可导出H264裸流,点击Browse可打开导出文件夹,点击Play 1可直接播放裸流。
    wireshark h264,常用记录,流媒体,rtp,wireshark,rtp提取视频流,RTP抓包提取H264,RTP包提取H265
    wireshark h264,常用记录,流媒体,rtp,wireshark,rtp提取视频流,RTP抓包提取H264,RTP包提取H265

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

5 后记

后续文章会介绍下如何从rtp流中提取PS流,如何从RTP over TCP中提取H264/H265裸流
相关文章、RTP相关知识、工具及抓包,可注公众号壹零仓,发送视频流分析rtp等消息获取文章来源地址https://www.toymoban.com/news/detail-787605.html

到了这里,关于wireshark提取视频数据之RTP包中提取H264和H265的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序支持h5实现webrtc h264 h265低延迟传输渲染

    微信小程序自成体系,自身也带了很强的rtc音视频能力,但是他捆绑了他自己的服务,开发也相对受限于他的api。基于以前的了解可以采webview的方式内嵌h5网址来实现自定义的webrtc.但实践起来并不轻松,主要是小程序的严格限制,各平台的兼容,不得不使出吃奶的力气来实现

    2024年02月04日
    浏览(37)
  • FFmpeg在 Windows 环境编译(64位)支持h264,h265,和Intel QSV,Nvidia Cuda,AMD amf 硬件加速

    目录 目录 前言 一. 源码包下载 1. FFmpeg源码下载 2. MSYS2安装   2.1 执行下面命令配置环境   2.2 安装完成后将MSYS2安装路径下的mingw64/bin配置到windows环境变量中   2.3 安装其他工具( 默认全部安装 ): 3. 安装CMake工具   3.1 将CMake加入环境变量 4. 下载x264,x265   4.1 x264源码下载:

    2024年02月11日
    浏览(59)
  • H264码流进行RTP包封装

    一.H264基本概念 H.264从框架结构上分为 视频编码层(VCL)和网络抽象层(NAL) , VCL功能是进行视频编解码,包括运动补偿预测,变换编码和熵编码等功能;NAL用于采用适当的格式对VCL视频数据进行封装打包。 VCL数据即被压缩编码后的视频数据序列,在VCL数据封装到NAL单元中

    2024年01月22日
    浏览(43)
  • 【H.264】RTP h264 码流 实例解析分析 3 : webrtc

    【srs】SRS检测IBMF还是annexb 【H.264】RTP h264 码流 实例解析分析 2 : mediasoup收包 mediasoup 并没完整解析rtp包的内容,可能与mediasoup 只需要转发,不需要解码有关系。 webrtc 本身都是全的。 m98代码,先说关键: 第一:对RTPVideoTypeHeader 构造,可用于后续解析nalu 第二: 可用与组装为

    2024年02月05日
    浏览(66)
  • webrtc源码阅读之h264 RTP打包

    本文来分析webrtc打包h264 rtp包的代码,版本 m98 实时传输协议(RTP)是一个网络协议,它允许在网络上进行实时的音频和视频数据传输。RTP协议主要用于解决多媒体数据的实时传输问题,特别是对延迟和数据丢失敏感的应用。 RTP协议包括两个紧密相关的部分:RTP数据协议和R

    2024年02月12日
    浏览(50)
  • wireshark导出H264裸流

    下载抓包工具:首先,您需要下载并安装一个网络抓包工具,例如Wireshark(https://www.wireshark.org)或tcpdump(https://www.tcpdump.org)。这些工具可用于捕获网络流量并保存为pcap或pcapng文件。在这里插入代码片 打开抓包工具:打开所选择的抓包工具,并启动网络监控。 下载rtp_h264

    2024年02月15日
    浏览(41)
  • FFmpeg命令行进行UDP、RTP推流(H264、TS),使用ffplay\VLC接收验证

            使用行FFmpeg命令进行UDP、RTP推流(H264、TS),ffplay接收我们在开发网络程序时经常用到UDP或RTP来发送和接收流媒体,而开发程序完毕需要搭建一个环境测试,这时候可能你需要一个推流端或接收端。对于推流端,我们可以借助FFmpeg工具轻松完成该功能,只需要敲一

    2024年02月05日
    浏览(45)
  • 视频编码流程 YUV数据编码为H264数据

    视频编码时,设置编码器上下文参数有:码率,宽,高,格式,帧率等 frame设置:宽,高,格式 然后计算一帧的数据:宽 * 高 * 格式占用字节数 通常使用av_image_get_buffer_size来计算 av_opt_set就是用来设置参数的 preset preset参数是一个权衡编码速度和压缩率的参数,编码速度越慢,压缩率越高 参数

    2024年02月13日
    浏览(45)
  • H265视频硬解

    硬解,使用非CPU进行编码,如显卡GPU、专用的DSP、FPGA、ASIC芯片等。目前的主流GPU加速平台:INTEL、AMD、NVIDIA。 一、软编码和硬编码比较 软编码:实现直接、简单,参数调整方便,升级易,但CPU负载重,性能较硬编码低,低码率下质量通常比硬编码要好一点。 硬编码:性能高

    2024年02月10日
    浏览(49)
  • chrome浏览器解码H265视频方法

    1、问题缘由: 项目系统的视频分析模块用户电脑无法使用浏览器打开。 用户电脑配置: 2、排查过程 使用了在站内及百度查询的方法 3、解决方案: gitlib中找到对应的chrome浏览器内核chromium 链接: https://github.com/StaZhu/enable-chromium-hevc-hardware-decoding/releases 点进链接下滑找到10

    2024年01月25日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包