http://blog.csdn.net/fm0517/article/details/38110633
http://blog.csdn.net/fm0517/article/details/38119363
攝像機地址是192.1.101.51,VLC運行在192.1.101.77上,DSS服務器架設在192.1.101.30上。
Step1:VLC從攝像機取流,產生RTSP流
vlc -vvv rtsp://192.1.101.51 --sout #rtp{dst=192.1.101.77,sdp=rtsp://192.1.101.77/live_vlc.sdp}
此時已經可以從77上觀看視頻。

Step2:在DSS服務器上配置轉發

Step3:查看結果,從DSS服務器30上觀看視頻,注意與上一個截屏存在月10秒的時差。

之前介紹過《用VLC讀取攝像頭產生RTSP流,DSS主動取流轉發(一)》本文介紹另一種方法。
攝像機地址是192.1.101.51,VLC運行在192.1.101.77上,DSS服務器架設在192.1.101.30上,二級DSS服務器(可選)架設在192.1.101.78上。
Step1:VLC從攝像機取流,產生RTSP流
vlc -vvv rtsp://192.1.101.51 :sout=#rtp{dst=192.1.101.30,sdp=file:///k:/channel_vlc.sdp,ttl=255,port-video=12000}
此時VLC已經開始轉發流數據(參見底圖左圖)。
注意命令行中與上一篇文章不同之處在於IP地址不是本機(77),而是DSS服務器(30)。同時在本地(77)生成sdp文件channel_vlc.sdp。
將channel_vlc.sdp文件拷貝到DSS服務器(30)的Movies目錄下。
此時已經可以通過地址 rtsp://192.1.101.30/channel_vlc.sdp 觀看視頻了。(參見底圖中圖)
Step2:在二級DSS服務器(78)上配置二級轉發,如下圖:

此時已經可以通過地址 rtsp://192.1.101.78/channel_vlc.sdp 觀看視頻了。(參見底圖右圖)

【后續】
經過后續的抓包分析,終於知道了原理:
vlc的命令行(vlc -vvv rtsp://192.1.101.51 :sout=#rtp{dst=192.1.101.30,sdp=file:///k:/channel_vlc.sdp,ttl=255,port-video=12000})中指定了向目標地址(dst=192.1.101.30)的某個特定端口(port-video=12000)發送UDP數據包。不管對方是否有程序在監聽該端口並接收數據,發送均一直在進行。這樣就能夠解釋文章《VLC-DSS搭建直播系統中鏈路斷開影響測試》中VLC或者DSS重啟都不影響客戶端重新訪問資源。
