初學RTSP協議
對于RTSP協議不知道大家是否了解。這個協議的使用還是非常重要的。所以今天我們就對這個協議來進行一下細致的介紹。首先讓我們看一下這個協議的規范概念。實時流協議(RTSP)建立并控制一個或幾個時間同步的連續流媒體,如音頻和視頻。盡管連續媒體流與控制流交叉是可能的,RTSP本身并不發送連續流。換言之,RTSP充當多媒體服務器的網絡遠程控制。RTSP協議提供了一個可擴展框架,實現實時數據(如音頻與視頻)的受控、按需傳送。數據源包括實況數據與存儲的剪輯。RTSP用于控制多個數據發送會話,提供了選擇發送通道(如 UDP、組播 UDP 與 TCP 等)的方式,并提供了選擇基于RTP的發送機制的方法。
目前還沒有 RTSP連接的概念;服務器維護由識別符標識的會話。RTSP會話不會綁定到傳輸層連接,如 TCP。在 RTSP會話期間,RTSP客戶端可打開或關閉多個對服務器的可靠傳輸連接以發出 RTSP請求。它也可選擇使用無連接傳輸協議,如 UDP。
RTSP控制的流可能用到 RTP,但 RTSP操作并不依賴用于傳輸連續媒體的傳輸機制。RTSP在語法和操作上與 HTTP/1.1 類似,因此 HTTP 的擴展機制在多數情況下可加入 RTSP。然而,在很多重要方面 RTSP仍不同于 HTTP :
RTSP引入了大量新方法并具有一個不同的協議標識符:
在大多數情況下,RTSP服務器需要保持缺省狀態,與 HTTP 的無狀態相對;
RTSP中客戶端和服務器都可以發出請求;
在多數情況下,數據由不同的協議傳輸;
RTSP協議使用 ISO 10646 (UTF-8)而并非 ISO 8859-1,與當前的國際標準 HTML 相一致;
URI 請求總是包含絕對 URI。為了與過去的錯誤相互兼容,HTTP/1.1 只在請求過程中傳送絕對路徑并將主機名置于另外的頭字段。
該協議支持如下操作:
從媒體服務器上檢索媒體:用戶可通過 HTTP 或其它方法提交一個演示描述請求;
媒體服務器邀請進入會議: 媒體服務器可被邀請參加正進行的會議,或回放媒體,或記錄部分或全部演示;
將新媒體加到現有演示中:如服務器能告訴客戶端接下來可用的媒體內容,對現場直播顯得尤其有用。
協議結構
RTSP協議是一種文本協議,采用 UTF-8 編 碼中的 ISO 10646 字符集。一行可通過 CRLF 終止,但接收端需要做好解釋 CR 和 LF 作為一行終止符 的準備。關于頭字段概述如下:
| Header | Type | Support | Methods |
| Accept | R | opt. | entity |
| Accept-Encoding | R | opt. | entity |
| Accept-Language | R | opt. | all |
| Allow | R | opt. | all |
| Authorization | R | opt. | all |
| Bandwidth | R | opt. | all |
| Blocksize | R | opt. | All but OPTIONS, TEARDOWN |
| Cache-Control | G | opt. | SETUP |
| Conference | R | opt. | SETUP |
| Connection | G | req. | all |
| Content-Base | E | opt. | entity |
| Content-Encoding | E | req. | SET_PARAMETER |
| Content-Encoding | E | req. | DESCRIBE, ANNOUNCE |
| Content-Language | E | req. | DESCRIBE, ANNOUNCE |
| Content-Length | E | req. | SET_PARAMETER, ANNOUNCE |
| Content-Length | E | req. | entity |
| Content-Location | E | opt. | entity |
| Content-Type | E | req. | SET_PARAMETER, ANNOUNCE |
| Content-Type | R | req. | entity |
| CSeq | G | req. | all |
| Date | G | opt. | all |
| Expires | E | opt. | DESCRIBE, ANNOUNCE |
| From | R | opt. | all |
| If-Modified-Since | R | opt. | DESCRIBE, SETUP |
| Last-Modified | E | opt. | entity |
| Proxy-Authenticate | |||
| Proxy-Require | R | req. | all |
| Public | R | opt. | all |
| Range | R | opt. | PLAY, PAUSE, RECORD |
| Range | R | opt. | PLAY, PAUSE, RECORD |
| Referer | R | opt. | all |
| Require | R | req. | all |
| Retry-After | R | opt. | all |
| RTP-Info | R | req. | PLAY |
| Scale | Rr | opt. | PLAY, RECORD |
| Session | Rr | req. | All but SETUP, OPTIONS |
| Server | R | opt. | all |
| Speed | Rr | opt. | PLAY |
| Transport | Rr | req. | SETUP |
| Unsupported | R | req. | all |
| User-Agent | R | opt. | all |
| Via | G | opt. | all |
| WWW-Authenticate | R | opt. | all |





















