wireshark提取RTSP over TCP中的视频流

wireshark提取RTSP over TCP中的视频流

1 背景

前面文章中介绍了rtp中提取H264或者H265视频的方式,其适用于基于RTP over UDP的方式,因为UDP方式,视频流RTP、RTCP是通过不同的UDP连接来传输的,因此抓包只需要根据端口的不同,即可区分RTP和RTCP,此种方式,wireshark脚本可以做很好的提取。但是如果是RTSP OVER TCP的方式,其RTP/RTCP/RTSP协议,都是在一个TCP链路中传输的,需要通过TCP HEADER来区分,前文所提供的脚本不能很好的支持(部分能够支持提取,部分支持不了),因此本文介绍一个小工具来专门从TCP复合链路中提取视频流的方式。
如果要了解如何通过插件提取视频流,可关注公众号壹零仓,发送wireshark的消息,获取相关文章。
有关rtsp over tcp的相关知识,可关注公众号壹零仓,发送rtsp的消息,获取相关文章。

2 提取前准备

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

3 H264提取步骤

  • 下载并安装wireshark,我安装的版本号是3.6.8

  • 用wireshark打开rtsp over tcp的视频流抓包,这里以h264_rtsp_over_tcp.pcapng为例
    在这里插入图片描述

  • 在抓包列表中选择视频流包右键->follow->TCP stream
    在这里插入图片描述

  • 打开的对话框中,show data as 选择raw,然后save as,选择保存文件名,这里命名为111,下载tcp负载的原始二进制数据。
    在这里插入图片描述

  • 打开小工具,直接双机rtpovertcpto264.exe打开,选择刚刚保存的tcp负载原始二进制文件,选择tcp header中视频流的streamid,样例中streamid=0,点击转换,即可提取出H264原始码流。
    在这里插入图片描述

  • 用vlc播放原始的H264码流,验证码流是否正常
    在这里插入图片描述

4 后记

H265提取步骤和H264一样,另补充说明,通过验证,最新的wireshark抓包插件,能够从rtsp over tcp的连接中提取视频流,因此次小工具及使用方式,只作为备用使用即可。

猜你喜欢

转载自blog.csdn.net/water1209/article/details/128289400