zoukankan      html  css  js  c++  java
  • 用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重启都不影响客户端重新访问资源。

  • 相关阅读:
    【面积并】 Atlantis
    【动态前k大 贪心】 Gone Fishing
    【复杂枚举】 library
    【双端队列bfs 网格图建图】拯救大兵瑞恩
    【奇偶传递关系 边带权】 奇偶游戏
    【权值并查集】 supermarket
    CF w4d3 A. Pythagorean Theorem II
    CF w4d2 C. Purification
    CF w4d2 B. Road Construction
    CF w4d2 A. Cakeminator
  • 原文地址:https://www.cnblogs.com/mazhenyu/p/8259247.html
Copyright © 2011-2022 走看看