青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴(yán)以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

rtsp協(xié)議詳解

轉(zhuǎn)載自:http://www.mikewootc.com/wiki/net/protocol/rtsp.html

目錄:

概述

RTSP簡(jiǎn)介

RTSP(Real Time Streaming Protocol), 實(shí)時(shí)流傳輸協(xié)議, 是TCP/IP協(xié)議體系中的一個(gè)應(yīng)用層協(xié)議, 由哥倫比亞大學(xué), 網(wǎng)景和RealNetworks公司提交的IETF RFC標(biāo)準(zhǔn). 該協(xié)議定義了一對(duì)多應(yīng)用程序如何有效地通過(guò)IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù). RTSP在體系結(jié)構(gòu)上位于RTP和RTCP之上, 它使用TCP或RTP完成數(shù)據(jù)傳輸.

流媒體服務(wù)協(xié)議棧

流媒體服務(wù)協(xié)議棧

RTSP提供了一個(gè)可擴(kuò)展框架, 使實(shí)時(shí)數(shù)據(jù), 如音頻與視頻的受控點(diǎn)播成為可能. 數(shù)據(jù)源包括現(xiàn)場(chǎng)數(shù)據(jù)與存儲(chǔ)在剪輯中數(shù)據(jù). 該協(xié)議目的在于控制多個(gè)數(shù)據(jù)發(fā)送連接, 為選擇發(fā)送通道, 如UDP, 組播UDP與TCP, 提供途徑, 并為選擇基于RTP上發(fā)送機(jī)制提供方法.

它的語(yǔ)法和運(yùn)作跟HTTP 1.1類(lèi)似, 但并不特別強(qiáng)調(diào)時(shí)間同步, 所以比較能容忍網(wǎng)絡(luò)延遲.

HTTP與RTSP相比, * HTTP傳送HTML. HTTP請(qǐng)求由客戶機(jī)發(fā)出, 服務(wù)器作出響應(yīng) * RTSP傳送的是多媒體數(shù)據(jù). 使用RTSP時(shí), 客戶機(jī)和服務(wù)器都可以發(fā)出請(qǐng)求, 即RTSP可以是雙向的.

RTSP是用來(lái)控制聲音或影像的多媒體串流協(xié)議, 并允許同時(shí)多個(gè)串流需求控制, 傳輸時(shí)所用的網(wǎng)絡(luò)通訊協(xié)議并不在其定義的范圍內(nèi), 服務(wù)器端可以自行選擇使用TCP或UDP來(lái)傳送串流內(nèi)容.

而前面提到的允許同時(shí)多個(gè)串流需求控制(Multicast), 除了可以降低服務(wù)器端的網(wǎng)絡(luò)用量, 更進(jìn)而支持多方視訊會(huì)議(Video Conference). 因?yàn)榕cHTTP1.1的運(yùn)作方式相似, 所以代理服務(wù)器〈Proxy〉的快取功能〈Cache〉也同樣適用于RTSP, 并因RTSP具有重新導(dǎo)向功能, 可視實(shí)際負(fù)載情況來(lái)轉(zhuǎn)換提供服務(wù)的服務(wù)器, 以避免過(guò)大的負(fù)載集中于同一服務(wù)器而造成延遲.

該協(xié)議用于C/S模型, 是一個(gè)基于文本的協(xié)議, 用于在客戶端和服務(wù)器端建立和協(xié)商實(shí)時(shí)流會(huì)話.

實(shí)時(shí)流協(xié)議(RTSP)建立并控制一個(gè)或幾個(gè)時(shí)間同步的連續(xù)流媒體. 盡管連續(xù)媒體流與控制流交換是可能的, 通常它本身并不發(fā)送連續(xù)流. 換言之, RTSP充當(dāng)多媒體服務(wù)器的網(wǎng)絡(luò)遠(yuǎn)程控制. RTSP連接沒(méi)有綁定到傳輸層連接, 如TCP. 在RTSP連接期間, RTSP用戶可打開(kāi)或關(guān)閉多個(gè)對(duì)服務(wù)器的可傳輸連接以發(fā)出RTSP請(qǐng)求. 此外, 可使用無(wú)連接傳輸協(xié)議, 如UDP. RTSP流控制的流可能用到RTP, 但RTSP操作并不依賴用于攜帶連續(xù)媒體的傳輸機(jī)制.

協(xié)議支持的操作如下: (1)從媒體服務(wù)器上檢索媒體: 用戶可通過(guò)HTTP或其它方法提交一個(gè)演示描述. 如演示是組播, 演示式就包含用于連續(xù)媒體的的組播地址和端口. 如演示僅通過(guò)單播發(fā)送給用戶, 用戶為了安全應(yīng)提供目的地址. (2)媒體服務(wù)器邀請(qǐng)進(jìn)入會(huì)議: 媒體服務(wù)器可被邀請(qǐng)參加正進(jìn)行的會(huì)議, 或回放媒體, 或記錄其中一部分, 或全部. 這種模式在分布式教育應(yīng)用上很有用, 會(huì)議中幾方可輪流按遠(yuǎn)程控制按鈕. (3)將媒體加到現(xiàn)成講座中: 如服務(wù)器告訴用戶可獲得附加媒體內(nèi)容, 對(duì)現(xiàn)場(chǎng)講座顯得尤其有用. 如HTTP/1.1中類(lèi)似, RTSP請(qǐng)求可由代理, 通道與緩存處理.

協(xié)議特點(diǎn)

  • 可擴(kuò)展性: 新方法和參數(shù)很容易加入RTSP.
  • 易解析: RTSP可由標(biāo)準(zhǔn)HTTP或MIME解析器解析.
  • 安全: RTSP使用網(wǎng)頁(yè)安全機(jī)制.
  • 獨(dú)立于傳輸: RTSP可使用不可靠數(shù)據(jù)報(bào)協(xié)議(EDP), 可靠數(shù)據(jù)報(bào)協(xié)議(RDP); 如要實(shí)現(xiàn)應(yīng)用級(jí)可靠, 可使用可靠流協(xié)議.
  • 多服務(wù)器支持: 每個(gè)流可放在不同服務(wù)器上, 用戶端自動(dòng)與不同服務(wù)器建立幾個(gè)并發(fā)控制連接, 媒體同步在傳輸層執(zhí)行.
  • 記錄設(shè)備控制: 協(xié)議可控制記錄和回放設(shè)備.
  • 流控與會(huì)議開(kāi)始分離: 僅要求會(huì)議初始化協(xié)議提供, 或可用來(lái)創(chuàng)建惟一會(huì)議標(biāo)識(shí)號(hào). 特殊情況下, 可用SIP或H.323來(lái)邀請(qǐng)服務(wù)器入會(huì).
  • 適合專(zhuān)業(yè)應(yīng)用: 通過(guò)SMPTE時(shí)標(biāo), RTSP支持幀級(jí)精度, 允許遠(yuǎn)程數(shù)字編輯.
  • 演示描述中立: 協(xié)議沒(méi)強(qiáng)加特殊演示或元文件, 可傳送所用格式類(lèi)型; 然而, 演示描述至少必須包括一個(gè)RTSP URL.
  • 代理與防火墻友好: 協(xié)議可由應(yīng)用和傳輸層防火墻處理. 防火墻需要理解SETUP方法, 為UDP媒體流打開(kāi)一個(gè)“缺口”.
  • HTTP友好: 此處, RTSP明智地采用HTTP觀念, 使現(xiàn)在結(jié)構(gòu)都可重用. 結(jié)構(gòu)包括Internet內(nèi)容選擇平臺(tái)(PICS). 由于在大多數(shù)情況下控制連續(xù)媒體需要服務(wù)器狀態(tài), RTSP不僅僅向HTFP添加方法.
  • 適當(dāng)?shù)姆?wù)器控制: 如用戶啟動(dòng)一個(gè)流, 必須也可以停止一個(gè)流.
  • 傳輸協(xié)調(diào): 實(shí)際處理連續(xù)媒體流前, 用戶可協(xié)調(diào)傳輸方法.
  • 性能協(xié)調(diào): 如基本特征無(wú)效, 必須有一些清理機(jī)制讓用戶決定哪種方法沒(méi)生效. 這允許用戶提出適合的用戶界面.

協(xié)議細(xì)節(jié)

典型的rtsp交互過(guò)程

C表示rtsp客戶端, S表示rtsp服務(wù)端
1. C->S:OPTION request //詢問(wèn)S有哪些方法可用
1. S->C:OPTION response //S回應(yīng)信息中包括提供的所有可用方法
2. C->S:DESCRIBE request //要求得到S提供的媒體初始化描述信息
2. S->C:DESCRIBE response //S回應(yīng)媒體初始化描述信息, 主要是sdp
3. C->S:SETUP request //設(shè)置會(huì)話的屬性, 以及傳輸模式, 提醒S建立會(huì)話
3. S->C:SETUP response //S建立會(huì)話, 返回會(huì)話標(biāo)識(shí)符, 以及會(huì)話相關(guān)信息
4. C->S:PLAY request //C請(qǐng)求播放
4. S->C:PLAY response //S回應(yīng)該請(qǐng)求的信息
S->C:發(fā)送流媒體數(shù)據(jù)
5. C->S:TEARDOWN request //C請(qǐng)求關(guān)閉會(huì)話
5. S->C:TEARDOWN response //S回應(yīng)該請(qǐng)求

上述的過(guò)程是標(biāo)準(zhǔn)的, 友好的rtsp流程, 但實(shí)際的需求中并不一定按部就班來(lái). 其中第3和4步是必需的!

第一步, 只要服務(wù)器客戶端約定好, 有哪些方法可用, 則option請(qǐng)求可以不要.

第二步, 如果我們有其他途徑得到媒體初始化描述信息(比如http請(qǐng)求等等), 則我們也不需要通過(guò)rtsp中的describe請(qǐng)求來(lái)完成.

第五步, 可以根據(jù)系統(tǒng)需求的設(shè)計(jì)來(lái)決定是否需要.

RTSP消息格式

RTSP的消息有兩大類(lèi): 請(qǐng)求消息(request), 回應(yīng)消息(response).

請(qǐng)求消息
方法 URI RTSP版本 CR LF
消息頭 CR LF
CR LF
消息體 CR LF

其中方法包括OPTION回應(yīng)中所有的命令,URI是接受方的地址,例如:rtsp://192.168.20.136. RTSP版本一般都是 RTSP/1.0. 每行后面的CR LF表示回車(chē)換行, 需要接受端有相應(yīng)的解析, 最后一個(gè)消息頭需要有兩個(gè)CR LF(即空行)

回應(yīng)消息
RTSP版本 狀態(tài)碼 解釋 CR LF
消息頭 CR LF
CR LF
消息體 CR LF

其中RTSP版本一般都是RTSP/1.0, 狀態(tài)碼是一個(gè)數(shù)值, 200表示成功, 解釋是與狀態(tài)碼對(duì)應(yīng)的文本解釋.

方法定義

方法記號(hào)表示資源上執(zhí)行的方法, 它區(qū)分大小寫(xiě). 新方法可在將來(lái)定義, 但不能以$開(kāi)頭. 已定義方法如下表所示:

(注: P----演示, S----流, C----用戶端, S----服務(wù)器端)

| 方法 | 方向 | 對(duì)象 | 要求 | 含義 |
|---------------|-----------|------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| DESCRIBE | C->S | P,S | 推薦 | 檢查演示或媒體對(duì)象的描述, 也允許使用接收頭指定用戶理解的描述格式. DESCRIBE的答復(fù)-響應(yīng)組成媒體RTSP初始階段 |
| ANNOUNCE | C->S S->C | P,S | 可選 | 當(dāng)從用戶發(fā)往服務(wù)器時(shí), ANNOUNCE將請(qǐng)求URL識(shí)別的演示或媒體對(duì)象描述發(fā)送給服務(wù)器; 反之, ANNOUNCE實(shí)時(shí)更新連接描述. 如新媒體流加入演示, 整個(gè)演示描述再次發(fā)送, 而不僅僅是附加組件, 使組件能被刪除 |
| `GET_PARAMETER` | C->S S->C | P,S | 可選 | `GET_PARAMETER`請(qǐng)求檢查RUL指定的演示與媒體的參數(shù)值. 沒(méi)有實(shí)體體時(shí), `GET_PARAMETER`也許能用來(lái)測(cè)試用戶與服務(wù)器的連通情況 |
| OPTIONS | C->S S->C | P,S | 要求 | 可在任意時(shí)刻發(fā)出OPTIONS請(qǐng)求, 如用戶打算嘗試非標(biāo)準(zhǔn)請(qǐng)求, 并不影響服務(wù)器狀態(tài) |
| PAUSE | C->S | P,S | 推薦 | PAUSE請(qǐng)求引起流發(fā)送臨時(shí)中斷. 如請(qǐng)求URL命名一個(gè)流, 僅回放和記錄被停止; 如請(qǐng)求URL命名一個(gè)演示或流組, 演示或組中所有當(dāng)前活動(dòng)的流發(fā)送都停止. 恢復(fù)回放或記錄后, 必須維持同步. 在SETUP消息中連接頭超時(shí)參數(shù)所指定時(shí)段期間被暫停后, 盡管服務(wù)器可能關(guān)閉連接并釋放資源, 但服務(wù)器資源會(huì)被預(yù)訂 |
| PLAY | C->S | P,S | 要求 | PLAY告訴服務(wù)器以SETUP指定的機(jī)制開(kāi)始發(fā)送數(shù)據(jù); 直到一些SETUP請(qǐng)求被成功響應(yīng), 客戶端才可發(fā)布PLAY請(qǐng)求. PLAY請(qǐng)求將正常播放時(shí)間設(shè)置在所指定范圍的起始處, 發(fā)送流數(shù)據(jù)直到范圍的結(jié)束處. PLAY請(qǐng)求可排成隊(duì)列, 服務(wù)器將PLAY請(qǐng)求排成隊(duì)列, 順序執(zhí)行 |
| RECORD | C->S | P,S | 可選 | 該方法根據(jù)演示描述初始化媒體數(shù)據(jù)記錄范圍, 時(shí)標(biāo)反映開(kāi)始和結(jié)束時(shí)間; 如沒(méi)有給出時(shí)間范圍, 使用演示描述提供的開(kāi)始和結(jié)束時(shí)間. 如連接已經(jīng)啟動(dòng), 立即開(kāi)始記錄, 服務(wù)器數(shù)據(jù)請(qǐng)求URL或其他URL決定是否存儲(chǔ)記錄的數(shù)據(jù); 如服務(wù)器沒(méi)有使用URL請(qǐng)求, 響應(yīng)應(yīng)為201(創(chuàng)建), 并包含描述請(qǐng)求狀態(tài)和參考新資源的實(shí)體與位置頭. 支持現(xiàn)場(chǎng)演示記錄的媒體服務(wù)器必須支持時(shí)鐘范圍格式, smpte格式?jīng)]有意義 |
| REDIRECT | S->C | P,S | 可選 | 重定向請(qǐng)求通知客戶端連接到另一服務(wù)器地址. 它包含強(qiáng)制頭地址, 指示客戶端發(fā)布URL請(qǐng)求; 也可能包括參數(shù)范圍, 以指明重定向何時(shí)生效. 若客戶端要繼續(xù)發(fā)送或接收URL媒體, 客戶端必須對(duì)當(dāng)前連接發(fā)送TEARDOWN請(qǐng)求, 而對(duì)指定主執(zhí)新連接發(fā)送SETUP請(qǐng)求 |
| SETUP | C->S | S | 要求 | 對(duì)URL的SETUP請(qǐng)求指定用于流媒體的傳輸機(jī)制. 客戶端對(duì)正播放的流發(fā)布一個(gè)SETUP請(qǐng)求, 以改變服務(wù)器允許的傳輸參數(shù). 如不允許這樣做, 響應(yīng)錯(cuò)誤為"455 Method Not Valid In This State”. 為了透過(guò)防火墻, 客戶端必須指明傳輸參數(shù), 即使對(duì)這些參數(shù)沒(méi)有影響 |
| `SET_PARAMETER` | C->S S->C | P,S | 可選 | 這個(gè)方法請(qǐng)求設(shè)置演示或URL指定流的參數(shù)值. 請(qǐng)求僅應(yīng)包含單個(gè)參數(shù), 允許客戶端決定某個(gè)特殊請(qǐng)求為何失敗. 如請(qǐng)求包含多個(gè)參數(shù), 所有參數(shù)可成功設(shè)置, 服務(wù)器必須只對(duì)該請(qǐng)求起作用. 服務(wù)器必須允許參數(shù)可重復(fù)設(shè)置成同一值, 但不讓改變參數(shù)值. 注意: 媒體流傳輸參數(shù)必須用SETUP命令設(shè)置. 將設(shè)置傳輸參數(shù)限制為SETUP有利于防火墻. 將參數(shù)劃分成規(guī)則排列形式, 結(jié)果有更多有意義的錯(cuò)誤指示 |
| TEARDOWN | C->S | P,S | 要求 | TEARDOWN請(qǐng)求停止給定URL流發(fā)送, 釋放相關(guān)資源. 如URL是此演示URL, 任何RTSP連接標(biāo)識(shí)不再有效. 除非全部傳輸參數(shù)是連接描述定義的, SETUP請(qǐng)求必須在連接可再次播放前發(fā)布 |

某些防火墻設(shè)計(jì)與其他環(huán)境可能要求服務(wù)器插入RTSP方法和流數(shù)據(jù). 由于插入將使客戶端和服務(wù)器操作復(fù)雜, 并增加附加開(kāi)銷(xiāo), 除非有必要, 應(yīng)避免這樣做. 插入二進(jìn)制數(shù)據(jù)僅在RTSP通過(guò)TCP傳輸時(shí)才可使用. 流數(shù)據(jù)(如RTP包)用一個(gè)ASCII字符'?, 個(gè)節(jié)標(biāo)識(shí), 進(jìn)數(shù)據(jù)長(zhǎng), 節(jié)數(shù). 數(shù)據(jù), 沒(méi)CRLF, 協(xié). 個(gè)塊包含一個(gè)高層協(xié)議數(shù)據(jù)單元.

當(dāng)傳輸選擇為RTP, RTCP信息也被服務(wù)器通過(guò)TCP連接插入. 缺省情況下, RTCP包在比RTP通道高的第一個(gè)可用通道上發(fā)送. 客戶端可能在另一通道顯式請(qǐng)求RTCP包, 這可通過(guò)指定傳輸頭插入?yún)?shù)中的兩個(gè)通道來(lái)做到. 當(dāng)兩個(gè)或更多流交叉時(shí), 為取得同步, 需要RTCP. 而且, 這為當(dāng)網(wǎng)絡(luò)設(shè)置需要通過(guò)TCP控制連接透過(guò)RTP/RTCP提供了一條方便的途徑, 可能時(shí), 在UDP上進(jìn)行傳輸.

消息頭定義

消息頭的定義如下表. 表格說(shuō)明:

  • Type:
    • 類(lèi)型 "g" 表示請(qǐng)求和響應(yīng)中的通用請(qǐng)求頭;
    • 類(lèi)型 "R" 表示請(qǐng)求頭;
    • 類(lèi)型 "r" 表示響應(yīng)頭;
    • 類(lèi)型 "e" 表示實(shí)體頭字段.
  • Support:
    • "req." 表示必須由接收者以特殊的方法實(shí)現(xiàn); 注意, 不是所有 "req." 字段在該類(lèi)型的每個(gè)請(qǐng)求中都會(huì)被發(fā)送. "req." 只表示客戶機(jī)(支持響應(yīng)頭)和服務(wù)器(支持請(qǐng)求頭)必須執(zhí)行該字段.
    • "opt." 表示是可選的.
  • 最后一欄列出了關(guān)于頭字段產(chǎn)生作用的方法; 其中 "entity" 針對(duì)于返回一個(gè)信息主體的所有方法. )
| 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 |

常用頭解析:

| Header | Description |
|-------------------------|---------------------------------------------------------------------------------------|
| CSeq | 命令的序列號(hào), 逐1增加 |
| Content-Length | 這個(gè)標(biāo)記的存在說(shuō)明后面有實(shí)體數(shù)據(jù), 而且給出了這個(gè)數(shù)據(jù)塊的大小, 單位是byte |
| X-Playlist-Gen-Id | 用來(lái)檢查播放列表是否有效. 這個(gè)標(biāo)記最初在客戶端發(fā)送DESCRIBE命令后使用. 客戶端在發(fā)送“SETUP”命令給服務(wù)器時(shí)必須回應(yīng)一樣的值 |
| X-Playlist-Seek-Id | 值必須和X-Playlist-Gen-Id 域的值相同, 在PLAY請(qǐng)求命令中使用. |
| Blocksize | 媒體包的總長(zhǎng)度,單位是byte |
| Session | Session ID是用作客戶端和服務(wù)器之間是否是正確的連接。在客戶端發(fā)送SETUP命令后,服務(wù)器會(huì)在應(yīng)答消息頭里面發(fā)送一個(gè)session值給客戶端。這算建立的一個(gè)會(huì)話. |
| X-Accept-Authentication | 允許的authentication 方法. NTLM, Digest 和 Basic 是標(biāo)準(zhǔn)的 |
| X-Broadcast-Id | 是否是實(shí)況或者是先期錄制的流。0 表示先期錄制,其他的值表示是實(shí)況。 |
| Range | 暫無(wú)中文釋義 |
| Speed | 用來(lái)調(diào)整傳輸?shù)娇蛻舳说牧鞯盟俣取<偃缒愕膸捒梢越邮芨咚俚臄?shù)據(jù)傳送,這個(gè)域的值可以設(shè)置大于1來(lái)加速下載數(shù)據(jù). i.e. x1 rate |
| Server | 服務(wù)器類(lèi)型和軟件版本 |
| EOF | 文件結(jié)束標(biāo)記,也是流的結(jié)束標(biāo)記 |
| Date | 日期時(shí)間,下面舉個(gè)例子:Tue, 18 Nov 2003 15:57:07 GMT |
| Bandwidth | 流需要的最大帶寬,bits/秒 |
| Transport | 使用什么協(xié)議來(lái)傳輸數(shù)據(jù),比如TCP或者UDP等 |
| Etag | 實(shí)體標(biāo)記Entity tag,是一個(gè)分配給會(huì)話的值,就像”23180160″ |
| Supported | 支持的COM modules , 有的是可選的. |
| Content-Type | 此域用來(lái)表示命令或者應(yīng)答的用意. 下面是常用的幾種類(lèi)型 |
| \/ | application/x-wms-Logconnectstats 這個(gè)在SET_PARAMETER命令中用到,表示將客戶端的信息登記到服務(wù)器上。 |
| \/ | application/sdp 這個(gè)表示接下來(lái)數(shù)據(jù)包里面的是sdp數(shù)據(jù),它是在服務(wù)器對(duì)DESCRIBE命令的應(yīng)答包中。 |
| \/ | application/x-wms-contentdesc 表示緊跟的數(shù)據(jù)是一個(gè)內(nèi)容描述對(duì)象,它設(shè)置the layout of the dialog. |
| \/ | application/vnd.ms.wms-hdr.asfv1 表示跟著一個(gè)流媒體頭信息(ASF header),可以用BASIC 或者DIGEST來(lái)解碼。 |
| \/ | application/x-rtsp-packetpair 它被用來(lái)確定連接的可用帶寬。 |

狀態(tài)碼

標(biāo)準(zhǔn)RTSP 消息的狀態(tài)碼(在應(yīng)答消息的第一行表示)

| value | meaning |
|-------|-------------------------------------|
| ”100” | Continue (all 100 range) |
| “200” | OK |
| ”201” | Created |
| ”250” | Low on Storage Space |
| ”300” | Multiple Choices |
| ”301” | Moved Permanently |
| ”302” | Moved Temporarily |
| ”303” | See Other |
| ”304” | Not Modified |
| ”305” | Use Proxy |
| ”350” | Going Away |
| ”351” | Load Balancing |
| ”400” | Bad Request |
| ”401” | Unauthorized |
| ”402” | Payment Required |
| ”403” | Forbidden |
| ”404” | Not Found |
| ”405” | Method Not Allowed |
| ”406” | Not Acceptable |
| ”407” | Proxy Authentication Required |
| ”408” | Request Time-out |
| ”410” | Gone |
| ”411” | Length Required |
| ”412” | Precondition Failed |
| ”413” | Request Entity Too Large |
| ”414” | Request-URI Too Large |
| ”415” | Unsupported Media Type |
| ”451” | Parameter Not Understood |
| ”452” | reserved |
| ”453” | Not Enough Bandwidth |
| ”454” | Session Not Found |
| ”455” | Method Not Valid in This State |
| ”456” | Header Field Not Valid for Resource |
| ”457” | Invalid Range |
| ”458” | Parameter Is Read-Only |
| ”459” | Aggregate operation not allowed |
| ”460” | Only aggregate operation allowed |
| ”461” | Unsupported transport |
| ”462” | Destination unreachable |
| ”500” | Internal Server Error |
| ”501” | Not Implemented |
| ”502” | Bad Gateway |
| ”503” | Service Unavailable |
| ”504” | Gateway Time-out |
| ”505” | RTSP Version not supported |
| ”551” | Option not supported |

rtsp中常用方法舉例

本節(jié)針對(duì)上面所述的典型交互過(guò)程進(jìn)行說(shuō)明

OPTION

目的是得到服務(wù)器提供的可用方法:
OPTIONS rtsp://192.168.20.136:5000/xxx666 RTSP/1.0
CSeq: 1 //每個(gè)消息都有序號(hào)來(lái)標(biāo)記, 第一個(gè)包通常是option請(qǐng)求消息
User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
服務(wù)器的回應(yīng)信息包括提供的一些方法,例如:
RTSP/1.0 200 OK
Server: UServer 0.9.7_rc1
Cseq: 1 //每個(gè)回應(yīng)消息的cseq數(shù)值和請(qǐng)求消息的cseq相對(duì)應(yīng)
Public: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, SCALE,GET_PARAMETER //服務(wù)器提供的可用的方法

DESCRIBE

C向S發(fā)起DESCRIBE請(qǐng)求,為了得到會(huì)話描述信息(SDP):
DESCRIBE rtsp://192.168.20.136:5000/xxx666 RTSP/1.0
CSeq: 2
token:
Accept: application/sdp
User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
服務(wù)器回應(yīng)一些對(duì)此會(huì)話的描述信息(sdp):
RTSP/1.0 200 OK
Server: UServer 0.9.7_rc1
Cseq: 2
x-prev-url: rtsp://192.168.20.136:5000
x-next-url: rtsp://192.168.20.136:5000
x-Accept-Retransmit: our-retransmit
x-Accept-Dynamic-Rate: 1
Cache-Control: must-revalidate
Last-Modified: Fri, 10 Nov 2006 12:34:38 GMT
Date: Fri, 10 Nov 2006 12:34:38 GMT
Expires: Fri, 10 Nov 2006 12:34:38 GMT
Content-Base: rtsp://192.168.20.136:5000/xxx666/
Content-Length: 344
Content-Type: application/sdp
v=0 //以下都是sdp信息
o=OnewaveUServerNG 1451516402 1025358037 IN IP4 192.168.20.136
s=/xxx666
u=http:///
e=admin@
c=IN IP4 0.0.0.0
t=0 0
a=isma-compliance:1,1.0,1
a=range:npt=0-
m=video 0 RTP/AVP 96 //m表示媒體描述, 下面是對(duì)會(huì)話中視頻通道的媒體描述
a=rtpmap:96 MP4V-ES/90000
a=fmtp:96 profile-level-id=245;config=000001B0F5000001B509000001000000012000C888B0E0E0FA62D089028307 a=control:trackID=0 //trackID=0表示視頻流用的是通道0

SETUP

客戶端提醒服務(wù)器建立會(huì)話,并確定傳輸模式:
SETUP rtsp://192.168.20.136:5000/xxx666/trackID=0 RTSP/1.0
CSeq: 3
Transport: RTP/AVP/TCP;unicast;interleaved=0-1
User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
//uri中 帶有trackID=0, 表示對(duì)該通道進(jìn)行設(shè)置. Transport參數(shù)設(shè)置了傳輸模式, 包的結(jié)構(gòu). 接下來(lái)的數(shù)據(jù)包頭部第二個(gè)字節(jié)位置就是 interleaved, 它的值是每個(gè)通道都不同的, trackID=0的interleaved值有兩個(gè)0或1, 0表示rtp包, 1表示rtcp包, 接 受端根據(jù)interleaved的值來(lái)區(qū)別是哪種數(shù)據(jù)包.
服務(wù)器回應(yīng)信息:
RTSP/1.0 200 OK
Server: UServer 0.9.7_rc1
Cseq: 3
Session: 6310936469860791894 //服務(wù)器回應(yīng)的會(huì)話標(biāo)識(shí)符
Cache-Control: no-cache
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=6B8B4567

PLAY

客戶端發(fā)送播放請(qǐng)求:
PLAY rtsp://192.168.20.136:5000/xxx666 RTSP/1.0
CSeq: 4
Session: 6310936469860791894
Range: npt=0.000- //設(shè)置播放時(shí)間的范圍
User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
服務(wù)器回應(yīng)信息:
RTSP/1.0 200 OK
Server: UServer 0.9.7_rc1
Cseq: 4
Session: 6310936469860791894
Range: npt=0.000000-
RTP-Info: url=trackID=0;seq=17040;rtptime=1467265309
//seq和rtptime都是rtp包中的信息

TEARDOWN

客戶端發(fā)起關(guān)閉請(qǐng)求:
TEARDOWN rtsp://192.168.20.136:5000/xxx666 RTSP/1.0
CSeq: 5
Session: 6310936469860791894
User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10)
服務(wù)器回應(yīng):
RTSP/1.0 200 OK
Server: UServer 0.9.7_rc1
Cseq: 5
Session: 6310936469860791894
Connection: Close

以上方法都是交互過(guò)程中最為常用的, 其它還有一些重要的方法如get/set_parameter,pause,redirect等等

SDP協(xié)議概述

簡(jiǎn)介

SDP 完全是一種會(huì)話描述格式, 它不屬于傳輸協(xié)議.

它使用不同的適當(dāng)?shù)膫鬏攨f(xié)議,包括會(huì)話通知協(xié)議(SAP)、會(huì)話初始協(xié)議(SIP)、 實(shí)時(shí)流協(xié)議(RTSP)、MIME 擴(kuò)展協(xié)議的電子郵件以及超文本傳輸協(xié)議(HTTP)。

SDP協(xié)議是也是基于文本的協(xié)議,這樣就能保證協(xié)議的可擴(kuò)展性比較強(qiáng), 這樣就使其具有廣泛的應(yīng)用范圍。SDP 不支持會(huì)話內(nèi)容或媒體編碼的協(xié)商, 所以在流媒體中只用來(lái)描述媒體信息。媒體協(xié)商這一塊要用RTSP來(lái)實(shí)現(xiàn).

SDP協(xié)議格式

SDP描述由許多文本行組成,文本行的格式為<類(lèi)型>=<值>,<類(lèi)型>是一個(gè)字母,<值>是結(jié)構(gòu)化的文本串,其格式依<類(lèi)型>而定。

<type>=<value>[CRLF]

sdp的格式:


v=<version>
o=<username> <session id> <version> <network type> <address type> <address>
s=<session name>
i=<session description>
u=<URI>
e=<email address>
p=<phone number>
c=<network type> <address type> <connection address>
b=<modifier>:<bandwidth-value>
t=<start time> <stop time>
r=<repeat interval> <active duration> <list of offsets from start-time>
z=<adjustment time> <offset> <adjustment time> <offset> ....
k=<method>
k=<method>:<encryption key>
a=<attribute>
a=<attribute>:<value>
m=<media> <port> <transport> <fmt list>
v = (協(xié)議版本)
o = (所有者/創(chuàng)建者和會(huì)話標(biāo)識(shí)符)
s = (會(huì)話名稱)
i = * (會(huì)話信息)
u = * (URI 描述)
e = * (Email 地址)
p = * (電話號(hào)碼)
c = * (連接信息)
b = * (帶寬信息)
z = * (時(shí)間區(qū)域調(diào)整)
k = * (加密密鑰)
a = * (0 個(gè)或多個(gè)會(huì)話屬性行)
時(shí)間描述:
t = (會(huì)話活動(dòng)時(shí)間)
r = * (0或多次重復(fù)次數(shù))
媒體描述:
m = (媒體名稱和傳輸?shù)刂?
i = * (媒體標(biāo)題)
c = * (連接信息 — 如果包含在會(huì)話層則該字段可選)
b = * (帶寬信息)
k = * (加密密鑰)
a = * (0 個(gè)或多個(gè)媒體屬性行)

SDP協(xié)議舉例說(shuō)明

SDP(Session Description Protocol)是一個(gè)用來(lái)描述多媒體會(huì)話的應(yīng)用層控制協(xié)議,它是一個(gè)基于文本的協(xié)議,用于會(huì)話建立過(guò)程中的媒體類(lèi)型和編碼方案的協(xié)商等。

消息正文格式:

v=0 //該行指示協(xié)議的版本

o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4 //o行中包含與會(huì)話所有者有關(guān)的參數(shù)

  • 第一個(gè)參數(shù)表明會(huì)話發(fā)起者的名稱,該參數(shù)可不填寫(xiě),如填寫(xiě)和SIP消息中,from消息頭的內(nèi)容一致。
  • 第二個(gè)參數(shù)為主叫方的會(huì)話標(biāo)識(shí)符。
  • 第三個(gè)參數(shù)為主叫方會(huì)話的版本,會(huì)話數(shù)據(jù)有改變時(shí),版本號(hào)遞增。
  • 第四個(gè)參數(shù)定義了網(wǎng)絡(luò)類(lèi)型,IN表示Internet網(wǎng)絡(luò)類(lèi)型,目前僅定義該網(wǎng)絡(luò)類(lèi)型。
  • 第五個(gè)參數(shù)為地址類(lèi)型,目前支持IPV4和IPV6兩種地址類(lèi)型。
  • 第六個(gè)參數(shù)為地址:表明會(huì)話發(fā)起者的IP地址,該地址為信令面的IP地址,信令PDP激活時(shí)為手機(jī)分配。

s=SDP Seminar //表明本次會(huì)話的標(biāo)題,或會(huì)話的名稱

i=A Seminar on the session description protocol //會(huì)話的描述

u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps //會(huì)話的URI,通過(guò)該地址可以查閱到會(huì)話的更多內(nèi)容

e=mjh@isi.edu (Mark Handley) //會(huì)話責(zé)任人的EMIAL地址

c=IN IP4 224.2.17.12/127 //C行包含為多媒體會(huì)話而建立的連接的信息,其中指出了真正的媒體流使用的IP地址

  • 第一個(gè)參數(shù)為網(wǎng)絡(luò)類(lèi)型,目前僅定義INTERNET網(wǎng)絡(luò)類(lèi)型。用“IN”表示。
  • 第二個(gè)參數(shù)為地址類(lèi)型,目前支持兩種地址類(lèi)型:IPV4和IPV6。
  • 第三個(gè)參數(shù)為地址,該地址為多媒體流使用的IP地址。

t=2873397496 2873404696 //表示會(huì)話的開(kāi)始時(shí)間和結(jié)束時(shí)間

  • 第一個(gè)參數(shù)表明會(huì)話的開(kāi)始時(shí)間,數(shù)字表明從1900年1月1日00:00以來(lái)所經(jīng)過(guò)的秒數(shù)。
  • 第二個(gè)參數(shù)表明會(huì)話的結(jié)束時(shí)間,數(shù)字表明從1900年1月1日00:00以來(lái)所經(jīng)過(guò)的秒數(shù)。

m=audio 3458 RTP/AVP 0 96 97 // m行又稱媒體行,描述了發(fā)送方所支持的媒體類(lèi)型等信息

  • 第一個(gè)參數(shù)為媒體名稱:表明支持音頻類(lèi)型。
  • 第二個(gè)參數(shù)為端口號(hào),表明UE在本地端口為3458上發(fā)送音頻流。
  • 第三個(gè)參數(shù)為傳輸協(xié)議,一般為RTP/AVP協(xié)議。
  • 第四~七參數(shù)為所支持的四種凈荷類(lèi)型編號(hào)

a=rtpmap:0 PCMU //a行為媒體的屬性行,以屬性的名稱:屬性值的方式表示。
a=rtpmap:96 G726-32/8000
a=rtpmap:97 AMR-WB

格式為:a=rtpmap:<凈荷類(lèi)型><編碼名稱> * 凈荷類(lèi)型0固定分配給了PCMU, * 凈荷類(lèi)型96對(duì)應(yīng)的編碼方案為G.726,為動(dòng)態(tài)分配的。 * 凈荷類(lèi)型97對(duì)應(yīng)的編碼方式為自適應(yīng)多速率寬帶編碼(AMR-WB),為動(dòng)態(tài)分配的。

m=video 3400 RTP/AVP 98 99 //m行又稱媒體行,描述了發(fā)送方所支持的媒體類(lèi)型等信息

  • 第一個(gè)參數(shù)為媒體名稱:表明支持視頻類(lèi)型。
  • 第二個(gè)參數(shù)為端口號(hào),表明UE在本地端口為3400上發(fā)送視頻流。
  • 第三個(gè)參數(shù)為傳輸協(xié)議,一般為RTP/AVP協(xié)議。
  • 四、五參數(shù)給出了兩種凈荷類(lèi)型編號(hào)

a=rtpmap:98 MPV
a=rtpmap:99 H.261

格式為:a=rtpmap:<凈荷類(lèi)型><編碼名稱> * 凈荷類(lèi)型98對(duì)應(yīng)的編碼方案為MPV,為動(dòng)態(tài)分配的。 * 凈荷類(lèi)型97對(duì)應(yīng)的編碼方式為H.261,為動(dòng)態(tài)分配的。

posted on 2013-09-13 16:00 楊粼波 閱讀(20313) 評(píng)論(3)  編輯 收藏 引用

評(píng)論

# re: rtsp協(xié)議詳解 2015-06-02 16:29 sugar

status: RTSP/1.0 453 Not Enough Bandwidt  回復(fù)  更多評(píng)論   

# re: rtsp協(xié)議詳解 2015-09-29 14:45 last

the color of font is too bad so that make read is hard  回復(fù)  更多評(píng)論   

# re: rtsp協(xié)議詳解 2015-10-01 18:08 楊粼波

@last
I am so sorry,let me fix it.  回復(fù)  更多評(píng)論   


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久九九国产| 国产精品卡一卡二卡三| 亚洲精品视频在线观看网站| 美女尤物久久精品| 欧美aⅴ99久久黑人专区| 欧美jizz19hd性欧美| 免费不卡在线观看av| 欧美电影资源| 亚洲日本免费| 99在线精品免费视频九九视| aa级大片欧美三级| 欧美一区二区三区视频在线| 久久天天躁夜夜躁狠狠躁2022 | 亚洲天堂黄色| 亚洲欧美中文日韩在线| 久久蜜桃资源一区二区老牛| 欧美激情亚洲国产| 国产欧美日韩精品a在线观看| 狠狠久久亚洲欧美专区| 日韩视频在线观看免费| 午夜精品电影| 亚洲国产成人在线视频| 亚洲欧美精品suv| 可以免费看不卡的av网站| 欧美日韩一区在线播放| 国产亚洲欧美一级| 中国成人黄色视屏| 欧美波霸影院| 亚洲欧美国产精品桃花| 老妇喷水一区二区三区| 国产精品扒开腿爽爽爽视频 | 午夜精品亚洲一区二区三区嫩草| 久久久精品日韩欧美| 欧美午夜精品久久久久久浪潮| 国产在线拍偷自揄拍精品| 99精品国产在热久久婷婷| 久久午夜av| 亚洲一区二区三区视频播放| 鲁大师影院一区二区三区| 国产精品综合| 亚洲欧美国产精品桃花| 亚洲人精品午夜| 久久亚洲欧美| 国产一区二区毛片| 欧美一区二区高清| 在线视频精品一区| 欧美另类变人与禽xxxxx| 激情欧美一区| 久久午夜电影| 久久久久国产免费免费| 亚洲国产一区在线| 亚洲欧洲综合| 免费久久99精品国产自| 亚洲成人在线视频播放| 久久综合狠狠综合久久综合88| 亚洲在线国产日韩欧美| 欧美三级不卡| 一区二区高清在线| 亚洲国产欧美久久| 欧美高清在线观看| 日韩视频一区二区三区在线播放免费观看| 美女黄网久久| 米奇777在线欧美播放| 最新国产拍偷乱拍精品| 亚洲狠狠丁香婷婷综合久久久| 免费成人黄色av| 亚洲精品欧美在线| 亚洲精品欧美激情| 欧美日韩精品欧美日韩精品| 一本久久a久久免费精品不卡| 亚洲黄色精品| 欧美日韩少妇| 亚洲欧美视频一区二区三区| 一本色道久久综合狠狠躁的推荐| 欧美日韩免费观看一区三区| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 国产自产精品| 蜜桃视频一区| 欧美日韩亚洲国产精品| 亚洲欧美清纯在线制服| 欧美亚洲一级| 亚洲精品男同| 亚洲在线电影| 在线免费观看视频一区| 亚洲国产综合视频在线观看| 欧美少妇一区二区| 久久国产欧美日韩精品| 久久久久久网址| 一本大道久久a久久精品综合| 亚洲小说欧美另类社区| 一区二区在线观看av| 亚洲精品中文在线| 国内一区二区三区| 9久草视频在线视频精品| 国内精品国产成人| 亚洲免费成人av电影| 国产亚洲一区二区三区在线观看| 欧美成人69| 国产精品毛片大码女人| 欧美 日韩 国产精品免费观看| 欧美高清成人| 久久女同互慰一区二区三区| 欧美日韩精品免费观看视频完整| 久久全国免费视频| 国产精品久久久久久户外露出 | 亚洲欧美日韩天堂| 久久欧美肥婆一二区| 亚洲国产精品尤物yw在线观看| 亚洲另类自拍| 在线精品视频一区二区| 亚洲一区二区三区四区五区黄| 亚洲国产成人精品女人久久久 | 欧美一区二区三区久久精品茉莉花| 久久久久九九九九| 性欧美办公室18xxxxhd| 欧美国产三区| 久久久另类综合| 国产精品久久久久久模特 | 欧美日韩中字| 欧美电影在线播放| 激情成人在线视频| 亚洲无毛电影| 亚洲午夜三级在线| 欧美黄色日本| 欧美/亚洲一区| 狠狠色丁香久久婷婷综合_中| 亚洲尤物影院| 欧美一级理论片| 国产精品一区二区三区观看| 亚洲精品一区久久久久久| 在线免费不卡视频| 久久www成人_看片免费不卡| 午夜精品福利一区二区三区av | 激情小说另类小说亚洲欧美| 午夜精品福利一区二区三区av| 欧美国产免费| 亚洲成色999久久网站| 欧美一区2区三区4区公司二百| 久久综合伊人77777麻豆| 久久精品一区二区三区四区 | 亚洲精品午夜| 噜噜噜在线观看免费视频日韩| 久久日韩粉嫩一区二区三区| 国产一区二区黄色| 欧美在线视频a| 久久九九久精品国产免费直播| 久久激情综合| 榴莲视频成人在线观看| 激情成人亚洲| 美乳少妇欧美精品| 亚洲三级免费观看| 亚洲午夜久久久久久久久电影院| 亚洲一区区二区| 欧美亚洲一级| 黄色成人在线观看| 免费影视亚洲| 亚洲精品一区二区三区99| 亚洲美女福利视频网站| 欧美高清你懂得| 亚洲深夜福利网站| 国产日韩欧美日韩| 久久精品91| 欧美亚洲在线播放| 国产一区二区三区久久久| 久久久久久一区| 欧美暴力喷水在线| 亚洲一区二区精品视频| 国产一区二区视频在线观看| 久久综合影视| 在线亚洲一区二区| 裸体女人亚洲精品一区| 日韩亚洲精品在线| 国产伪娘ts一区| 欧美激情第二页| 欧美亚洲免费| 亚洲欧洲精品一区二区| 欧美在线观看一区| 最新成人av网站| 国产日产欧产精品推荐色 | 亚洲电影欧美电影有声小说| 欧美人成在线视频| 欧美主播一区二区三区| 99国产一区| 欧美刺激午夜性久久久久久久| 亚洲欧美成人综合| 亚洲精品免费一区二区三区| 国产欧美精品在线观看| 欧美极品aⅴ影院| 久久精品人人做人人综合| 99re热这里只有精品视频| 免费av成人在线| 久久精品99国产精品| 一区二区三区 在线观看视| 国内精品美女在线观看| 国产精品美女999| 欧美激情第4页| 久久一区中文字幕| 久久成人综合视频| 欧美亚洲一区三区| 夜夜精品视频|