用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侦听并转发(二)的更多相关文章

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

    http://blog.csdn.net/fm0517/article/details/38110633 http://blog.csdn.net/fm0517/article/details/381 ...

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

    用VLC读取摄像头产生RTSP流,DSS主动取流转发(一) 摄像机地址是192.1.101.51,VLC运行在192.1.101.77上,DSS服务器架设在192.1.101.30上. Step1:V ...

  3. 使用vlc播放器播放rtsp流视频

    可参考: 使用vlc播放器做rtsp服务器 web网页中使用vlc插件播放相机rtsp流视频 使用vlc进行二次开发做自己的播放器 首先需要安装vlc播放器,下载及安装步骤略 使用vlc播放器播放rt ...

  4. web网页中使用vlc插件播放相机rtsp流视频

    可参考: 使用vlc播放器做rtsp服务器 使用vlc播放器播放rtsp视频 使用vlc进行二次开发做自己的播放器 vlc功能还是很强大的,有很多的现成的二次开发接口,不需配置太多即可轻松做客户端播放 ...

  5. FFmpeg RTSP流通过UDP传输问题

    我自己在使用SRS服务的Ingest功能时发现在读取一个网络摄像头的RTSP流时一直不成功, 具体分析后发现SRS在调用FFmpeg时出了问题: /usr/local/ffmpeg/bin/ffmpe ...

  6. 使用vlc播放器做rtsp流媒体服务器

    可参考: 使用vlc播放器播放rtsp视频 web网页中使用vlc插件播放相机rtsp流视频 使用vlc进行二次开发做自己的播放器 首先需要安装vlc播放器,下载及安装步骤略 使用vlc播放器做rts ...

  7. centos下用ffmpeg推流宇视科技摄像头rtsp流到前端播放(无flash)

    严禁垃圾中文技术网站复制粘贴 流程:安装SRS服务接收ffmpeg的推流,SRS会提供一个flv的播放地址,前端通过fls.js播放即可,无需flash. 1.安装ffmpeg 提供两个版本,都能推流 ...

  8. 用vlc SDK创建一个播放视频文件和RTSP流视频的Demo

    #include <stdio.h> #include <tchar.h> #include <time.h> #include <windows.h> ...

  9. opencv读取摄像头实时流代码

    opencv读取摄像头实时流代码: #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; ...

随机推荐

  1. Struts2入门2

    五.Struts2的工作原理及文件结构 Struts2过滤与自己相关的请求,比如.action后缀的请求,Struts2会进行过滤和处理,但如果是.html或者.jsp,Struts2不会对其进行处理 ...

  2. appium+python 【Mac】UI自动化测试封装框架流程简介 <一>

    为了多人之间更方便的协作,那么框架本身的结构和编写方式将变得很重要,因此每个团队都有适合自己的框架.如下本人对APP的UI自动化测试的框架进行进行了简单的汇总.主要目的是为了让团队中的其余人员接手写脚 ...

  3. python协程初步--gevent库使用以及解释什么是猴子补丁monkey_patch

    协程工作的特点是遇到阻塞或耗时的任务时就切换,协程的生存依赖于线程,线程依赖于进程 一个似乎有点问题的例子 import gevent,time def kisscpc(num): for i in ...

  4. 洛谷P2114 起床困难综合症【位运算】【贪心】

    题目:https://www.luogu.org/problemnew/show/P2114 题意:有n个操作,每个可以是与.或.异或 一个数. 初始值是0~m之间的一个数,问经过n个运算之后,可以得 ...

  5. 分页控件Webdiyer.MvcPager

    MVC 1.安装控件 install-package Webdiyer.MvcPager 2.Cotroller using System; using System.Collections.Gene ...

  6. SVN安装与汉化

    官网地址:http://tortoisesvn.net/downloads.html 如地址过期可自行百度官网,下载安装包安装64/32位 如果需要汉化的同学,同样在下载页面,往下拉Language ...

  7. 用pyinstaller打包python程序、打包pyqt程序

    将.py脚本拷贝到一个文件夹中: 然后shift+右键,打开Powershell窗口: -F:设置打包为一个.exe文件.(缺点打开速度慢,不加-F则不打包为一个.exe,优点简洁方便) -w:设置不 ...

  8. Vue Parent Send Ajax Data to Child Component

    Vue 父组件ajax异步更新数据,子组件props获取不到 2018年06月26日 09:25:06 哎哟嘿 阅读数 3585   当父组件  axjos  获取数据,子组件使用  props  接 ...

  9. How to connect oracle databse

    1. 下載客戶端Oracle Developer Tools for Visual Studio_32bit 安裝后通過配置tnsnames.ora指定連接 C:\app\user name\prod ...

  10. 牛客练习赛53 (C 富豪凯匹配串) bitset

    没想到直接拿 bitset 能过 $10^8$~ code: #include <bits/stdc++.h> #define N 1004 #define setIO(s) freope ...