用VLC读取摄像头产生RTSP流,DSS主动取流转发(一)(二) 【转】

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重启都不影响客户端重新访问资源。

你可能感兴趣的:(用VLC读取摄像头产生RTSP流,DSS主动取流转发(一)(二) 【转】)