音视频学习二之 RTSP 请求捕捉和分析

一、搭建环境

    WIN7 + VLC + Wireshark

二、捕捉网络数据

    1)打开 Wireshark

     2)直接这么捕捉而得到的数据对于我们来说其实是没有什么意义的,一般都是捕捉某一时刻的数据。而我们需要捕捉 RTSP 客户端请求服务器的信息就应该是在服务器运行后,客户端运行前开始捕捉,之后我们运行客户端进行请求,这样就可以得到请求信息了。以下总结一下操作步骤:

                           A)搭建并且运行RTSP 服务器等待客户端请求

                           B)运行 Wireshark ,开始捕捉

                           C)搭建并且运行RTSP 客户端进行请求

                           D)停止捕捉

       注意:步骤B 和 步骤C 之间时间间隔最好短一些,时间长会捕捉太多冗余信息,这样不利于我们查找分析。 

三、分析 RTSP 请求

    1)什么是 RTSP 协议

         RTSP(Real Time Streaming Protocol),也就是实时流传输协议,是TCP/IP协议体系中的一个应用层协议。该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。类似 HTTP 协议的流控制协议。它们都是使用纯文本来发送消息,而且 RTSP 协议的语法也和 HTTP 协议类似,和 HTTP 协议相比 RTSP 协议所不同的地方是,RTSP 洗衣是有状态的协议,而 HTTP 是无状态的协议。 RTSP 通过维护一个 session 来维护其状态的转换。RTSP 协议的默认端口是 554,默认的承载协议为 TCP。其实这些理论概念,说多了也没什么意思,最主要还是需要自己多看多查。有兴趣的可以参考 https://blog.csdn.net/cuijian12921/article/details/77543311 学习。

    2)开始请求

        根据上述步骤进行请求服务器数据,然后使用 Wireshark 捕捉请求信息,具体如下图所示,也可以从链接 https://pan.baidu.com/s/1NUkHF6Q3qqEWNfomc1-ohw 提取码:eyls 中下载查看。

        上图中蓝色部分就是客户端发出的请求信息,其中有 OPTIONS DESCRTBE SETUP PLAY 等方法,这些都是 RTSP 中的一些方法。但是单独这么查看,也看不出什么信息,要想了解哪一行具体信息,直接双击即可弹出相应信息,当前以 OPTIONS 那一行为例,如下图所示:

         这样一个一个点开比较麻烦,那么可以点击 分析---》追踪流 ---》TCP流 ,就可以查看所有通过 TCP 发送的方法信息,具体如下图所示:

    a) OPTIONS 方法

    b) DESCRIBE 

    c) SETUP 方法

     d) PLAY 方法

    主要几个方法就分析到这,还有一些方法可以参考上文提到的链接学习即可。 

四、客户端接收服务器视频流数据分析

    下图是捕捉的服务器发给客户端的数据信息。

     以上图示说明服务器是使用 UDP 方式把数据发送给客户端的 ,但是发送的数据却是使用了 RTP 协议进行封装打包,那么客户端使用 UDP socket 接收之后就需要按照 RTP 协议进行解包之后才能拿到具体的音视频数据。

五、总结

    1)本文重点分析捕捉 RTSP 请求信息。

    2)RTSP协议操作 和 HTTP 协议操作差不多,可以参考学习。

    3)RTSP 方法还有很多,不好全部讲完,多查即可。

    4)自己实现 RTSP 的请求比较麻烦,可以采用 FFmpeg 中的接口实现。

猜你喜欢

转载自blog.csdn.net/qq_32588939/article/details/106228316
今日推荐