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

时间: 2024-08-14 19:52:53

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

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

摄像机地址是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上观看视频,注意与上一个

利用vlc插件将IP摄像头嵌入网页和网页播放RTSP流

1. 描述 最近有一个项目需要将IP摄像机的画面嵌入到web网页中,考虑到减少开发成本,使用vlc插件播放摄像头提供的RTSP流.在videolan wiki的官网详细介绍了关于vlc web plugin的使用方法. 有一点需要注意的是,vlc2.2.0以前的版本,wiki上提供的方法却不再适用.原因是vlc的last一个版本中没有axvlc.cab文件了,最新的的一个在0.9.2版本对应的目录中.而且在IE中还回应为这个cab文件没有签名而无法安装此插件. 2. 解决办法 使用2.2.0以后

嵌入页面的VLC播放rtsp流卡顿

目前正在开发开源软件VLC嵌入到页面中播放rtsp数据流,但是发现嵌入页面的VLC(页面启动时,安装VLC的插件)播放rtsp流相比较VLC的播放器而言,会有卡顿的现象,请问有没有朋友遇到类似的问题,如果有请帮忙解答下,不甚感激.

网页中加入VLC的播放RTSP流的控件

代码例子,加入就能在网页中播放RTSP流. <p align="center"> <OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab" width="800" height=&quo

ffmpeg强制使用TCP方式读取rtsp流

ffmpeg强制使用TCP方式处理rtsp流,参考网上资料,得知可以使用如下命令: “ffmpeg -rtsp_transport tcp -i rtsp://admin.......” 可以是使用抓包工具进行验证一下是否强制使用了TCP方式. 参考: https://freshventure.wordpress.com/?s=ffmpeg ----------------------------------------------------------- https://freshventu

搭建USB摄像头转RTSP服务器的多种方法

大致流程为:通过ffmpeg将usb摄像头数据推送到ffserver服务器,终端设备通过rtsp地址访问,达到远程访问的效果 2.2 安装方法 很简单,只需要一句指令即可 sudo apt install ffmpeg libx264-dev 2.3 修改配置文件 在终端中打开配置文件 sudo gedit /etc/ffserver.conf 然后修改为以下内容 HTTPPort 8090 #绑定端口号 HTTPBindAddress 0.0.0.0 #绑定IP MaxHTTPConnecti

nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器

本文概要: nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择.本文介绍了一种简易方法快速搭建rtmp流媒体服务器,也叫rtsp转播,数据源不是读取文件,而是采用获取rtspNal流后使用ffmpeg转播.csdn固本培元:[email protected] 开发环境:centos6.4 (主流的linux服务器选择,30%以上的市场占有率) 需要这几个包. 版本号:nginx 1.7.3  openssl 1.0.2   rtmp-module(版本未知)

ffmpeg接收rtsp流问题

项目使用mingw环境g++5.3,C++调用ffmpeg接收rtsp流,再通过C#显示.结构上是C#调用C++的so文件,读取得到的视频帧(RGB888格式),通过图片控件显示. 一开始是使用opencv打开视频源,本地文件和rtsp的源使用一样的接口,方便使用.但是通过opencv打开rtsp源的时候,发现720p2Mbit的视频能够正常打开,但1080p的视频打开后出马赛克,卡顿比较多. 而同样的视频源,使用VLC就能流畅的打开,不过延时很高,大约1s. 后来又发现,使用i3低电压版CPU

最简单的基于FFmpeg的AVDevice例子(读取摄像头)

FFmpeg中有一个和多媒体设备交互的类库:Libavdevice.使用这个库可以读取电脑(或者其他设备上)的多媒体设备的数据,或者输出数据到指定的多媒体设备上.Libavdevice支持以下设备作为输入端: alsaavfoundationbktrdshowdv1394fbdevgdigrabiec61883jacklavfilibcdiolibdc1394openalosspulseqtkitsndiovideo4linux2, v4l2vfwcapx11grabdecklink Libav