2015-05-06 52 views
0

我想了解RTSP如何工作訪問媒體對象內的演示文稿流。我已經下載了openRTSP,以瞭解YouTube(我能想到的最簡單的流媒體網站)如何與RTSP一起將視頻流式傳輸到移動設備。我測試了這個視頻的RTSP流:http://www.youtube.com/v/U4M5rO1Kd04?version=3&f=videos&app=youtube_gdataSDP a = control:trackID = 2可能從客戶端訪問控制URL?

相關的RTSP鏈接是:RTSP://r5---sn-p5qlsu7r.c.youtube.com/CiILENy73wIaGQlOd0rtrDmDUxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video .3GP

如果我做的命令openRTSP RTSP://r5---sn-p5qlsu7r.c.youtube.m/CiILENy73wIaGQlOd0rtrDmDUxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp然後它給了我這樣的:

發送請求:SETUP rtsp://r5---sn-p5qlsu7r.c.youtube.com/CiILENy73wIaGQlOd0rtrDmDUxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp/trackID=2 RTSP/1.0 CSeq:4 User-Agent: openRTSP(LIVE555流媒體v2015.04.22) 交通:RTP/AVP;單播; CLIENT_PORT = 49838-49839

等等..

我不知道如何/如果我能爲RTSP鏈接訪問控制地址的SDP報告回我。我可以看到安裝程序直接請求rtsp:// ..../trackID = 2,但是如果我嘗試連接到相同的URL,則會收到錯誤的請求。

基本上,我知道媒體對象在其中有兩個表示流 - 一個用於音頻,另一個用於視頻 - 因爲我可以清楚地看到openRTSP爲這兩個流請求獲取媒體對象的兩個方面,但是我似乎無法手動請求個人演示文稿流。我怎麼可能JUST請求a = control:媒體部分的方面而不是會話a = control :(這是基本的URL)?我剛剛請求rtsp://r5---sn-p5qlsu7r.c.youtube.com/CiILENy73wIaGQlOd0rtrDmDUxMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp/trackID=2,因此無法訪問特定的控制網址來自客戶?或者我沒有得到正確的要求?

+0

這篇文章確實難以解決。 – gsamaras

+0

你可以做手工,但你必須遵循RTSP協議(RFC 2326),就像整個命令序列:形容,SETUP,PLAY,然後準備拿到過RTP流,併發送RTCP包 –

回答

0

您似乎已將URL概念翻轉過來。一個URL命名一個資源。不同的URL可以命名不同的事物,並且可能需要以不同的方式訪問。

在這種情況下,基本URL恰好指向兩個流。它用於RTSP DESCRIBE。這個SDP描述是你如何知道有兩個流,以及他們的URL是什麼。

使用DESCRIBE的控件URL的想法不太可行。服務器將不得不返回一個特殊的SDP文檔,只描述一個流,併爲該流提供一個空的相對URL(因爲您將該相對URL附加到已經是控件的URL)。

考慮一個簡單但有效的RTSP安全攝像機。由於它只有實時音頻和視頻,因此它可以有一個靜態的SDP文件,用於響應您的請求。該文件可以匹配到單個硬編碼的SDP URL。您需要必須DESCRIBE請求中使用該確切的URL。

當然,您完全只能使用一個SETUP請求。沒有要求您設置來自DESCRIBE響應的所有流。

相關問題