1. 程式人生 > 實用技巧 >手撕RTSP協議系列(1)——Rtsp基本流程

手撕RTSP協議系列(1)——Rtsp基本流程

哈嘍,久違的小夥伴們!之前開了一個專輯手撕了rtmp協議!對於流媒體協議,rtsp協議也是很常見的,接下來我們繼續手撕,手撕rtsp協議!本篇我們首先來簡單瞭解一下rtsp協議並對其連線過程做一個概覽!

1rtsp協議簡介

rtsp,英文全稱 Real Time Streaming Protocol,RFC2326,實時流傳輸協議,是TCP/IP協議體系中的一個應用層協議!協議主要規定定了一對多應用程式如何有效地通過IP網路傳送多媒體資料。RTSP體系結位於RTP和RTCP之上(RTCP用於控制傳輸,RTP用於資料傳輸),使用TCP或UDP完成資料傳輸!

2rtsp基本互動過程

假設我們現在要向一個RTSP的sever傳送請求獲取資料,基本流程如下:

OPTIONS

C--->S

客戶端向伺服器端發現OPTIONS,請求可用的方法。

S--->C

伺服器端回覆客戶端,訊息中包含當前可用的方法。

DESCRIBE

C--->S

客戶端向伺服器請求媒體描述檔案,一般通過rtsp開頭的url來發起請求,格式為sdp。

S--->C

伺服器回覆客戶端sdp檔案,該檔案告訴客戶端伺服器有哪些音視訊流,有什麼屬性,如編解碼器資訊,幀率等。

SETUP

C--->S

客戶端向伺服器端發起建立連線請求,請求建立會話連線,準備開始接收音視訊資料,請求資訊描述了期望音視訊資料包基於UDP還是TCP傳輸,指定了RTP,RTCP埠,以及是單播還是組播等資訊!

S--->C

伺服器端收到客戶端請求後,根據客戶端請求的埠號確定傳送控制資料的埠以及音視訊資料的埠!

PLAY

C--->S

客戶端向服務端請求播放媒體。

S--->C

伺服器回覆客戶端200 OK! 之後開始通過SETUP中指定的埠開始傳送資料!

TEARDOWN

C---->S

結束播放的時候,客戶端向伺服器端發起結束請求

S--->C

服務端收到訊息後,向客戶端傳送200 OK,之後斷開連線

上述的流程基本涵蓋了RTSP的流程,當然,RTSP除此之外,還有PAUSE,SCALE,GET_PARAMETER,SET_PARAMETER等引數。

3Rtsp抓包示例

最後,老規矩,協議的分析和學習少不了抓包,抓包少不了Wireshark!貼一張RTSP抓包的圖,來個直觀的感受!

本篇文章就到這裡了,本文之後我們對RTSP有了一個大概的瞭解,之後我們的文章將詳細介紹!下面的文章我們首先介紹一下RTSP的訊息格式以及SDP的格式,然後針對每一條訊息我們做詳細的解釋和介紹!歡迎持續關注!

掃碼關注瞭解更多