RTSP協議(Real Time Streaming Protocol)
偷懶了,好久沒更新了,
近日,在做一些視頻推流方面的作業,大致的內容,就是利用ffmpeg拉取rtsp流,推送至nginx服務器,由nginx實作rtmp的視頻流點播功能,遇到了一些問題是關于RTSP協議的,下面就對協議結合資料包做一些分析和總結;
下面跟著我的思路一起學習和理解RTSP協議吧,
文章目錄
- RTSP協議(Real Time Streaming Protocol)
- 前言
- 一、什么是RTSP協議,與RTP\RTCP什么關系?
- 二、RTSP協議如何分析?
- 1.常規手段-抓包(本次抓包為RTSP over tcp)
- 2.結合資料包分析
- 總結
前言
提示:以下是本篇文章正文內容,下面案例可供參考,截圖等均是真實可能出現的情況;
一、什么是RTSP協議,與RTP\RTCP什么關系?
下面是我個人做的小結對比圖,有一個初步的了解,

協議族展示(取自網路):

二、RTSP協議如何分析?
1.常規手段-抓包(本次抓包為RTSP over tcp)
使用wireshark抓取一段RTSP協議包資料,得到下面的資料;

2.結合資料包分析
-
過濾RTSP資料,

得到如下圖所示的資料,即所有的RTSP資料包,并使用“rtsp”過濾條件,得到下面的資料包:

-
過濾RTSP資料,協議型別顯示為rtsp的為rtsp的先行控制請求;
rtsp中定義的方法有:OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, SCALE, GET_PARAMETER ,SET_PARAMETER ,這些命令可以通過其他網路資源獲取,大致如字面所示比較簡單,這里不多做闡述;
- rtsp包資料分析:
- rtsp各個欄位的含義;

Magic: 魔數,0x24用于表示Interleaved Frame的開始,1個位元組固定;
Channel: 1個位元組,表明協議的型別,0x00表示Video RTP; 0x01表示Video RTCP; 0x02表示AUdio RTP;0x03表示Audio RTCP;
Length: 2個位元組,表示Data區域的長度;
**從上面的資料包來看,是Video RTP的資料包,長度為1472;
- rtsp 基于TCP or UDP;
本次抓包的資料均是rtsp 基于TCP資料;
總結
本文只是初步對協議和抓包資料做一些理解,幫助第一次接觸的人員,歡迎大家提出疑問;
以下分享抓包檔案以及rtsp相關的說明書:查看我的資源下載目錄;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/301377.html
標籤:其他
