用VLC读取摄像头产生RTSP流,DSS侦听并转发

Posted Jason Kwok

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用VLC读取摄像头产生RTSP流,DSS侦听并转发相关的知识,希望对你有一定的参考价值。

用VLC读取摄像头产生RTSP流,DSS侦听并转发(二)

 

 

之前介绍过《用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侦听并转发的主要内容,如果未能解决你的问题,请参考以下文章

VLC-DSS搭建直播系统中链路断开影响测试

怎么使用rtsp协议访问海康IP摄像头

基于FFmpeg+rtsp读取摄像头实时图像

流媒体服务海康摄像头RTSP视频推流转码拉流直播综合应用:VLC+FFMPEG+Nginx实现RTSP到RTMP网页直播

如何通过live555 linux流Udp组播,然后打开VLC读取的rtsp网络流

在 VLC 播放器中播放 RTSP 流