RTSP 沒有連線的概念,而是在伺服器維護 ID 以識別對話 (session),RTSP 也沒有限制底下傳輸層的通訊協定,你可以用 TCP 或 UDP 來傳送 RTSP 訊息,一個用戶端可以建立多個連線傳送一個 RTSP 對話。RTSP 控制多個傳送之間的對話,包含選擇傳送通道的方式,以及資料傳送的機制。
媒體來源用URL識別,例如 rtsp://example.com/live.sdp 或 rtspu://example.com/live.sdp,rtsp是以TCP傳輸,而rtspu則是以UDP傳輸,沒有指定埠號的話,RTSP 預設是用 port 554。
RTSP 與 HTTP 有些相似,通訊協定的觀念上八九不離十,如果你知道 HTTP ,那麼認識 RTSP 會更容易一些。不過,RTSP 與 HTTP 差異的地方如下:
- RTSP 增加許多新的方法 (method),還有不同的識別ID。
- RTSP 伺服器需要維護狀態,但 HTTP 本質上就是無狀態 (stateless)。
(所以開發一個 RTSP伺服器會比 HTTP 伺服器還要複雜...) - RTSP 中,伺服端和用戶端都可以發出請求 ( request)。
- RTSP 的資料是載於不同協定上 (通常使用 RTP 通訊協定),但 HTTP 是在 HTTP 協定本身的 Message Body中。
- RTSP 的訊息是用 UTF-8 編碼,而 HTTP 是用 ISO-8859-1 編碼。
- RTSP 的請求總是包含絕對的 URI,而 HTTP 請求則是絕對路徑和主機位置分開在 Header 中。
- 都是以文字為基礎 (text-based) 的通訊協定,易於擴充。也都是以 CR LF 結尾。
- 都是用 Message 的方式請求和回應,信息包含 Header 和 Body 兩個部分。
- 都定義 5 大類的狀態碼 (Status Code),分類也相同:
- 1xx: 資訊 (Informational)
- 2xx: 成功 (Success)
- 3xx: 轉向 (Redirection)
- 4xx: 用戶端錯誤 (Client Error)
- 5xx: 伺服端錯誤 (Server Error)
- 媒體串流 (Media stream)
或稱串流,是單一的媒體實體。當串流使用的是 RTP 通訊協定時,串流則是指由 RTP 和 RTCP 封包建立的媒體。 - 呈現 (Presentation)
由一個或多個串流所組成,在用戶端足以構成完整的媒體。 - 呈現描述 (Presentation description)
定義一個呈現中串流的資訊,包含編碼方式、網路位置和內容資訊。通常是用 SDP (Session Description Protocol) 規範所定義的資訊。 - 聚集控制 (Aggregate control)
在伺服器上使用單一時間軸控制多個串流,意思是用戶端送出單一個播放訊息就可以同時控制音訊和視訊兩種串流的輸出。
###
沒有留言:
張貼留言