RTSP流媒體數據傳輸的兩種方式(TCP和UDP)


通常情況下rtsp協議中數據傳輸的實現是UDP,因工作需要,想讓rtsp的數據傳輸部分用TCP實現。DarwinStreamingServer服務器能自適應客戶端發起的數據傳輸請求是用TCP方式,還是用UDP方式,這里唯一需要解決的是客戶端協議的發起問題,而vlc支持RTSP over TCP的方式。

剩下的問題就好辦了,讓vlcTCP的方式發起連接即可。

DSS的安裝配置我就不介紹了,不懂的朋友網上查下。

方式一:TCP傳輸媒體數據

我之前的文章(http://www.cnblogs.com/MikeZhang/archive/2012/09/09/vlcStreamingServer20120909.html )中提到過用vlc的命令行方式操作,而且還實現了用基於UDP媒體數據傳輸的RTSP協議。其實今天的這個需求只需要在vlc的命令行參數里面加入以下選項即可:

--rtsp-tcp

即用TCP方式訪問服務器應該用如下命令:

vlc rtsp://172.16.1.1/test --rtsp-tcp

這是其中的一個RTP數據包:

我們可以看到,通過這種方式的RTP數據包是基於TCP實現的。

方式二:UDP傳輸媒體數據

雖然在和DSS的交互中vlc默認是用UDP進行媒體數據的傳輸的,但我們也要考慮如果換成其它流媒體服務的情況,所以可以加上如下參數進行限制:

--no-rtsp-tcp

即用UDP方式訪問服務器應該用如下命令:

vlc rtsp://172.16.1.1/test –-no-rtsp-tcp

其中的一個數據包RTP包如下:

從圖上可以看到,這里的RTP是基於UDP實現的。

好,就這些了,希望對你有幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM