一般狀況下rtsp協議中數據傳輸的實現是UDP,因工做須要,想讓rtsp的數據傳輸部分用TCP實現。DarwinStreamingServer服務器能自適應客戶端發起的數據傳輸請求是用TCP方式,仍是用UDP方式,這裏惟一須要解決的是客戶端協議的發起問題,而vlc支持RTSP over TCP的方式。 html
剩下的問題就好辦了,讓vlc以TCP的方式發起鏈接便可。 服務器
DSS的安裝配置我就不介紹了,不懂的朋友網上查下。 tcp
我以前的文章(http://www.cnblogs.com/MikeZhang/archive/2012/09/09/vlcStreamingServer20120909.html )中提到過用vlc的命令行方式操做,並且還實現了用基於UDP媒體數據傳輸的RTSP協議。其實今天的這個需求只須要在vlc的命令行參數裏面加入如下選項便可: spa
--rtsp-tcp 命令行
即用TCP方式訪問服務器應該用以下命令: htm
vlc rtsp://172.16.1.1/test --rtsp-tcp blog
這是其中的一個RTP數據包: get
咱們能夠看到,經過這種方式的RTP數據包是基於TCP實現的。 test
雖然在和DSS的交互中vlc默認是用UDP進行媒體數據的傳輸的,但咱們也要考慮若是換成其它流媒體服務的狀況,因此能夠加上以下參數進行限制: 配置
--no-rtsp-tcp
即用UDP方式訪問服務器應該用以下命令:
vlc rtsp://172.16.1.1/test –-no-rtsp-tcp
其中的一個數據包RTP包以下:
從圖上能夠看到,這裏的RTP是基於UDP實現的。