1. 實時流協議RTSP
RTSP[3]協議以客戶服務器方式工作,它是一個多媒體播放控制協議,用來使用戶在播放從因特網下載的實時數據時能夠進行控制,如:暫停/繼續、后退、前進等。因此 RTSP 又稱為“因特網錄像機遙控協議”。
1.1. RTSP協議簡介
要實現 RTSP 的控制功能,不僅要有協議,而且要有專門的媒體播放器(media player)和媒體服務器(media server)。媒體服務器與媒體播放器的關系是服務器與客戶的關系。
媒體服務器與普通的萬維網服務器的最大區別就是媒體服務器支持流式音頻和視頻的傳送,因而在客戶端的媒體播放器可以邊下載邊播放(需要先緩存一小段時間的節目)。但從普通萬維網服務器下載多媒體節目時,是先將整個文件下載完畢,然后再進行播放。

圖1 RTSP與RTP和RTCP的關系
RTSP 僅僅是使媒體播放器能控制多媒體流的傳送。因此,RTSP 又稱為帶外協議,而多媒體流是使用 RTP 在帶內傳送的。
1.2. RTSP的報文結構
RTSP有兩類報文:請求報文和響應報文。請求報文是指從客戶向服務器發送請求報文,響應報文是指從服務器到客戶的回答。
由于 RTSP 是面向正文的(text-oriented),因此在報文中的每一個字段都是一些 ASCII 碼串,因而每個字段的長度都是不確定的。
RTSP報文由三部分組成,即開始行、首部行和實體主體。在請求報文中,開始行就是請求行,RTSP請求報文的結構如圖2所示。

圖2 RTSP請求報文的結構
RTSP請求報文的方法包括:OPTIONS、DESCRIBE、SETUP、TEARDOWN、PLAY、PAUSE、GET_PARAMETER和SET_PARAMETER。RTSP請求報文的常用方法及作用如表1所示。
表1 RTSP請求報文的常用方法及作用
方法 | 作用 |
OPTIONS | 獲得服務器提供的可用方法 |
DESCRIBE | 得到會話描述信息 |
SETUP | 客戶端提醒服務器建立會話,并確定傳輸模式 |
TEARDOWN | 客戶端發起關閉請求 |
PLAY | 客戶端發送播放請求 |
響應報文的開始行是狀態行,RTSP響應報文的結構如圖3所示。
圖3 RTSP響應報文的結構
1.3. RTSP交互過程
C表示RTSP客戶端,S表示RTSP服務端
① C->S: OPTION request //詢問S有哪些方法可用
S->C: OPTION response //S回應信息中包括提供的所有可用方法
② C->S: DESCRIBE request //要求得到S提供的媒體初始化描述信息
S->C: DESCRIBE response //S回應媒體初始化描述信息,主要是sdp
③ C->S: SETUP request //設置會話屬性,以及傳輸模式,提醒S建立會話
S->C: SETUP response //S建立會話,返回會話標識符及會話相關信息
④ C->S: PLAY request //C請求播放
S->C: PLAY response //S回應請求信息
S->C: 發送流媒體數據
⑤ C->S: TEARDOWN request //C請求關閉會話
S->C: TEARDOWN response //S回應請求
上述的過程是標準的RTSP流程,其中第3步和第4步是必需的。