通過vlc搭建rtsp流媒體服務器,vlc支持RTSP over TCP的方式,數據流傳輸時只支持RTP over UDP。而DarwinStreamingServer(簡稱dss)服務器能自適應客戶端發起的數據傳輸請求是用TCP方式,還是用UDP方式,如果是UDP方式,交互命令是RTSP over TCP,數據傳輸是RTP over UDP,如果是TCP方式,交互命令是RTSP over TCP,數據傳輸是RTP over TCP。
一、dss服務器,vlc客戶端播放視頻。
通過命令參數指定TCP或udp傳輸媒體數據。
1:TCP傳輸媒體數據
在vlc的命令行參數裡面加入以下選項即可:
--rtsp-tcp
即用TCP方式訪問服務器應該用如下命令:
vlc rtsp://192.168.1.198/test --rtsp-tcp
這是其中的一個RTP數據包:
我們可以看到,通過這種方式的RTP數據包是基於TCP實現的。因為dds服務默認端口是80,所以上面地址不用輸入端口。如果不是默認端口,就需要指定端口。比如:vlc
rtsp://192.168.1.198:8554/test --rtsp-tcp
2:UDP傳輸媒體數據
雖然在和DSS的交互中vlc默認是用UDP進行媒體數據的傳輸的,但我們也要考慮如果換成其它流媒體服務的情況,所以可以加上如下參數進行限制:
--no-rtsp-tcp
即用UDP方式訪問服務器應該用如下命令:
vlc rtsp://192.168.1.198 /test --no-rtsp-tcp
二、vlc服務器,vlc客戶端播放視頻。
通過命令參數指定TCP或udp傳輸媒體數據。
無論是vlc
rtsp://192.168.1.198:8554/test --rtsp-tcp 或
rtsp://192.168.1.198:8554/test --rtsp-tcp命令,vlc服務器實際上走的是RTSP over TCP的方式,數據流傳輸時只支持RTP over UDP。