RTSP協定(16)——示例
原文第十四章
以下示例涉及非标準的流描述格式,例如RTSL。以下示例不作為這些格式的參考。
1.媒體點播(單點傳播)
用戶端C從媒體伺服器a(audio.example.com)和V(video.example.com)請求電影。媒體描述存儲在web伺服器W上。媒體描述包含示範文稿及其所有流的描述,包括可用的編解碼器、動态RTP有效負載類型、協定堆棧以及内容資訊(如語言或版權限制)。它也可能給出電影的時間表的訓示。
在這個例子中,客戶隻對電影的最後一部分感興趣。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-8cTRT7kN-1622021513781)(https://z3.ax1x.com/2021/05/26/291LHe.png)]
即使音頻和視訊磁道位于兩個不同的伺服器上,并且可能在稍有不同的時間開始,并且可能彼此漂移,用戶端也可以使用标準RTP方法,特别是RTCP發送方報告中包含的時間尺度來同步這兩個。
2.容器檔案流
在本示例中,容器檔案是一個存儲實體,其中存在與同一最終使用者表示相關的多個連續媒體類型。實際上,容器檔案表示一個RTSP表示,它的每個元件都是RTSP流。容器檔案是存儲此類示範文稿的一種廣泛使用的方法。當元件作為獨立流傳輸時,希望在伺服器端維護這些流的公共上下文。
這使伺服器能夠輕松地保持單個存儲句柄處于打開狀态。它還允許在伺服器對流進行任何優先級排序的情況下平等地對待所有流。
也有可能呈現作者希望阻止客戶選擇性地檢索流,以便儲存組合媒體呈現的藝術效果。類似地,在這種緊密綁定的表示中,希望能夠通過使用聚合URL的單個控制消息來控制所有流。
下面是使用單個RTSP會話控制多個流的示例。它還示範了聚合URL的使用。
客戶機C從媒體伺服器M請求示範。電影存儲在一個容器檔案中。用戶端已獲得容器檔案的RTSP URL。
在第一個失敗執行個體中,客戶機嘗試暫停示範的一個流(在本例中是視訊)。伺服器不允許對該示範文稿執行此操作。在第二個執行個體中,聚合URL可能不用于設定,并且每個流需要一個控制消息來設定傳輸參數。
這使傳輸頭的文法保持簡單,并允許防火牆輕松解析傳輸資訊。
3.單流容器檔案
有些RTSP伺服器可能會将所有檔案視為“容器檔案”,但其他伺服器可能不支援這種概念。是以,用戶端應該使用會話描述中規定的規則來處理請求URL,而不是假設始終可以使用一緻的URL。下面是一個多流伺服器如何期望單個流檔案被服務的示例:
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-UCckhhLD-1622021513784)(https://z3.ax1x.com/2021/05/26/298dWn.png)]
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-zrO8xBGj-1622021513784)(https://z3.ax1x.com/2021/05/26/2986wF.png)]
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-4uxxeUBw-1622021513785)(https://z3.ax1x.com/2021/05/26/298jSI.png)]
注意SETUP指令中的不同URL,然後切換回PLAY指令中的聚合URL。當存在多個具有聚合控制的流時,這是完全有意義的,但是在流的數量為一的特殊情況下,這不是直覺的。
在這種特殊情況下,建議伺服器原諒發送以下内容的實作:
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-KWfwTolX-1622021513785)(https://z3.ax1x.com/2021/05/26/29G1h9.png)]
在最壞的情況下,伺服器應該發回:
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-Br3aW15h-1622021513786)(https://z3.ax1x.com/2021/05/26/29GwAe.png)]
我們還希望伺服器實作也能原諒以下情況:
因為這個檔案中隻有一個流,是以這意味着什麼并不含糊。
4.使用多點傳播的實時媒體示範
媒體伺服器M選擇多點傳播位址和端口。這裡,我們假設web伺服器隻包含指向完整描述的指針,而媒體伺服器M維護完整描述。
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-am5vtwJD-1622021513787)(https://z3.ax1x.com/2021/05/26/29YHTU.png)]
5.在現有會話中播放媒體
會議參與者C希望媒體伺服器M将示範錄音帶回放到現有會議中。C向媒體伺服器訓示會議已經給出了網絡位址和加密密鑰,是以伺服器不應選擇這些位址和加密密鑰。該示例省略了簡單的ACK響應。
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-CsPfFYYR-1622021513787)(https://z3.ax1x.com/2021/05/26/29Yjp9.png)]
6.記錄
會議參與者用戶端C要求媒體伺服器M記錄會議的音頻和視訊部分。用戶端使用annound方法向伺服器提供有關記錄會話的中繼資料。
[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-jiWWfOf4-1622021513788)(https://z3.ax1x.com/2021/05/26/29tFte.png)]