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所示。
用戶端提醒伺服器建立會話,並確定傳輸模式
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回應請求資訊
圖2 RTSP請求報文的結構
RTSP請求報文的方法包括:OPTIONS、DESCRIBE、SETUP、TEARDOWN、PLAY、PAUSE、GET_PARAMETER和SET_PARAMETER。RTSP請求報文的常用方法及作用如表1所示。
表1 RTSP請求報文的常用方法及作用
方法
作用
OPTIONS
獲得伺服器提供的可用方法
DESCRIBE
得到會話描述資訊
SETUP
S->C: 發送流媒體資料
⑤ C->S: TEARDOWN request //C請求關閉會話
S->C: TEARDOWN response //S回應請求
上述的過程是標準的RTSP流程,其中第3步和第4步是必需的。