标签 小雉视频系统 下的文章

本文原地址: http://www.feitianzhi.com/boke/index.php/archives/35/

转载请注明出处,有疑问或错误请发邮件到xiaozhi@fslib.org 或加QQ群:869598376


介绍

      一般视频系统由流媒体服务器和信令服务器组成,信令服务器一般负责客户端请求(如客户端要看a视频需要先通知信令服务器分配合适的流媒体去准备a的流,之后客户端才能通过流媒体看a的流)和控制流媒体服务器;本文所述的“去中心管理”就是去掉信令服务器;


中心管理的缺陷

  1. 调试不方便

在对标准流媒体协议进行调试时,如可使用vlc调试rtsp流,但vlc无法同信令服务器通信,使得调试麻烦;

  1. 级联难度高

各级可能使用不同的流协议,如rtsp同rtmp可认为有一定的相似度,但rtsp同gb28181的相似度几乎为0,两种不同协议的信令服务器对接难度非常高;

  1. 不能满足项目定制的需求

信令服务器往往同流媒体相关,在流媒体开发时已对信令服务器提出多项要求,导致信令服务器的一些特性与实际项目相悖;


小雉视频系统之去中心管理

      再合理的设计也是规则,也是束缚,小雉视频系统直接去掉了信令服务器,把信令服务器成为一张白纸,任君在项目中随意书写,以下为小雉视频系统不同协议级联的体验说明
小雉视频系统-级联

  1. 从相机直接拉取rtsp到“小雉视频1_1”

    rtsp地址: rtsp://mym9.com/rtsp_pull
    rtmp地址: rtmp://mym9.com/rtsp_pull
    hls地址: http://mym9.com:16880/rtsp_pull

  2. 相机使用gb28181推流到“小雉视频1_2”

    rtsp地址: rtsp://mym9.com/gb28181_push
    rtmp地址: rtmp://mym9.com/gb28181_push
    hls地址: http://mym9.com:16880/gb28181_push

  3. 从相机直接拉取rtsp到“小雉视频1_1”,
    “小雉视频1_1”再使用GB28181推流到“小雉视频2_1”,
    “小雉视频3_1”使用rtsp从“小雉视频2_1”拉取

    rtsp地址: rtsp://mym9.com/rtsp_pull_gb28181_push_rtsp_pull
    rtmp地址: rtmp://mym9.com/rtsp_pull_gb28181_push_rtsp_pull
    hls地址: http://mym9.com:16880/rtsp_pull_gb28181_push_rtsp_pull

  4. 从相机直接拉取rtsp到“小雉视频1_1”,
    “小雉视频1_1”再使用rtmp推流到“小雉视频2_2”,
    “小雉视频2_2”再使用rtsp推流到“小雉视频3_2”,

    rtsp地址: rtsp://mym9.com/rtsp_pull_rtmp_push_rtsp_push
    rtmp地址: rtmp://mym9.com/rtsp_pull_rtmp_push_rtsp_push
    hls地址: http://mym9.com:16880/rtsp_pull_rtmp_push_rtsp_push

  5. 从相机直接拉取rtsp到“小雉视频1_1”,
    “小雉视频1_1”再使用rtsp推流到“小雉视频2_3”,
    “小雉视频3_3”使用rtmp从“小雉视频2_3”拉取

    rtsp地址: rtsp://mym9.com/rtsp_pull_push_rtmp_pull
    rtmp地址: rtmp://mym9.com/rtsp_pull_push_rtmp_pull
    hls地址: http://mym9.com:16880/rtsp_pull_push_rtmp_pull

本文原地址: http://www.feitianzhi.com/boke/index.php/archives/28/

转载请注明出处,有疑问或错误请发邮件到xiaozhi@fslib.org 或加QQ群:869598376


概述

      本文的"小雉视频系统"负载均衡是指单机负载均衡,多机请参看本站的其他文章介绍;


使用场景--服务器无公网IP,通过端口映射提供服务

      此类情况常见于云服务商,云服务器使用的是内网ip,通过端口映射提供服务,对于这样的网络环境,如要使GB28181正常工作,云服务商支持ALG是最简单的实现方案,但并不是所有的网络环境都能支持ALG,且有些服务商提供的ALG功能并不完善,存在一定的BUG;
      "小雉视频系统"的GB28181负载均衡提供无需ALG支持跨普通NAT的解决办法,本处以以下情况为例:

  • 服务器内网IP:192.168.1.101,掩码:255.255.255.0
  • 服务器内网IP:192.168.0.2,掩码:255.255.255.0
  • 服务器外网IP:1.1.1.1,服务商:电信
  • 服务器外网IP:1.1.1.2,服务商:电信
  • 服务器外网IP:1.1.1.3,服务商:电信
  • 服务器外网IP:2.2.2.1,服务商:移动
  • 服务器外网IP:2.2.2.2,服务商:移动
  • 服务器外网IP:3.3.3.1,服务商:联通
  • 服务器外网IP:3.3.3.2,服务商:联通

      按下图配置实现部分相机通过外网映射获取GB28181视频流

      上图配置实现了把除192.168.0.0/16网段的视频源通过公网IP映射获取其视频流;


使用场景--多线负载均衡

      对于单服务器如流量过大,可能一条带宽无法满足,可使用多线负载均衡;
      "小雉视频系统"的GB28181负载均衡提供多线负载均衡的支持,本处以以下情况为例:

  • 服务器内网IP:192.168.1.101,掩码:255.255.255.0
  • 服务器内网IP:192.168.0.2,掩码:255.255.255.0
  • 服务器外网IP:1.1.1.1,服务商:电信
  • 服务器外网IP:1.1.1.2,服务商:电信
  • 服务器外网IP:1.1.1.3,服务商:电信
  • 服务器外网IP:2.2.2.1,服务商:移动
  • 服务器外网IP:2.2.2.2,服务商:移动
  • 服务器外网IP:3.3.3.1,服务商:联通
  • 服务器外网IP:3.3.3.2,服务商:联通

      按下图配置实现部分相机的多线负载均衡

      上图配置实现了111.0.0.0/8,112.0.0.0/8,113.0.0.0/8网段的视频源分别按一定的权重进行负载均衡;


使用场景--策略路由

      对于单服务器如流量过大,可能一条带宽无法满足,可使用多线负载均衡,其中使用的多线可能分属各个运营商,视频源也可以分属于多个运营商,此时最优的方案是让电信的视频源走电信流量,联通视频源走联通流量,移动视频源走移动流量;
      "小雉视频系统"的GB28181负载均衡提供策略路由的支持,本处以以下情况为例:

  • 服务器内网IP:192.168.1.101,掩码:255.255.255.0
  • 服务器内网IP:192.168.0.2,掩码:255.255.255.0
  • 服务器外网IP:1.1.1.1,服务商:电信
  • 服务器外网IP:1.1.1.2,服务商:电信
  • 服务器外网IP:1.1.1.3,服务商:电信
  • 服务器外网IP:2.2.2.1,服务商:移动
  • 服务器外网IP:2.2.2.2,服务商:移动
  • 服务器外网IP:3.3.3.1,服务商:联通
  • 服务器外网IP:3.3.3.2,服务商:联通

      按下图配置实现部分相机的策略路由

      上图配置实现了111.0.0.0/8,112.0.0.0/8,113.0.0.0/8网段的视频源分别按一定的权重进行负载均衡,如111.0.0.0/8属于电信,112.0.0.0/8属于移动,113.0.0.0/8属于联通,则上配置也实现了按运营商分类的策略路由;

猜您可能喜欢

小雉系统安装:http://www.feitianzhi.com/boke/index.php/archives/11/
小雉系统网络配置:http://www.feitianzhi.com/boke/index.php/archives/15/
小雉系统硬盘配置:http://www.feitianzhi.com/boke/index.php/archives/16/
小雉系统远程升级:http://www.feitianzhi.com/boke/index.php/archives/14/

本文原地址: http://www.feitianzhi.com/boke/index.php/archives/15/

转载请注明出处,有疑问或错误请发邮件到xiaozhi@fslib.org 或加QQ群:869598376


概述

"小雉系统"采用双系统设计,基于centos定制,对centos系统的网络配置作出了修改,标准的centos系统的网络配置方法在"小雉系统"中不能保存,重启后无效.

准备

下载小雉系统工具,见http://www.feitianzhi.com/boke/index.php/ziyuanxiazai.html页面;
解压升级工具,如解压到D:小雉系统工具-20190419中

使用ifconfig 配置临时IP

本地登录系统(用户名:root,密码:12345);
使用 ifconfig -a 查看所有接口;
使用 ifconfig eth0 192.168.10.254/24 对eth0配置ip;
使用 route add default gw 192.168.10.1 添加默认路由;
使用ifconfig 配置小雉系统临时IP

使用小雉系统工具配置永久IP

如下图配置永久IP
使用小雉系统工具配置永久IP
注:不执行第11步的保存动作,所有的修改都只是在"小雉系统工具"内部,不会影响远程的主机;

猜您可能喜欢

小雉系统安装:http://www.feitianzhi.com/boke/index.php/archives/11/
小雉系统硬盘配置:http://www.feitianzhi.com/boke/index.php/archives/16/
小雉系统远程升级:http://www.feitianzhi.com/boke/index.php/archives/14/
使用Google Authenticator为小雉系统增加动态密码功能:http://www.feitianzhi.com/boke/index.php/archives/17/

本文原地址: http://www.feitianzhi.com/boke/index.php/archives/4/

转载请注明出处,有疑问或错误请发邮件到xiaozhi@fslib.org 或加QQ群:869598376


常见问题

  1. "小雉视频系统"是什么?

"小雉视频系统"是使用"面向过程对象"框架开发的一个单进程软件,旨在集所有客户的需求于一体,在完善软件功能的同时也让老客户得到持续化的服务,达到开发者与客户的共赢;

  1. "小雉视频系统"有哪些功能?

"小雉视频系统"是一个持续更新的软件,所有的新需求都会在主线版本中实现,并向下兼容,具体的功能请下载最新版本体验;

  1. "小雉视频系统"的售后服务有多长,能否满足项目周期的需要?

"小雉视频系统"的第一个版本可以追溯到2010年,在经历了多次重构后,在2013-2014年后软件的框架稳定性,兼容性,扩展性,效率都有了优异的表现,能同时应用于linux,windows,嵌入式linux平台,cpu资源,内存,句柄,线程问题都有了定量跟踪的方式(参看本站的其他文章),并且配置能做到多样化(json,xml都支持),参数默认化(json中只写部分参数,系统会使用默认值自动补全其他参数),双向兼容(新版本可以兼容老版本的配置,老版本也能兼容新版本的配置),2014年至现在约5年的版本都可以相互兼容,都处于服务周期范围之内;

  1. "小雉视频系统"的优势是什么?

"小雉视频系统"最近5年时间内所有的客户需求都集成到一起,按需启用,框架的稳定性,兼容性,扩展性,效率得到了验证,同时其强悍的版本兼容性可大大降低长周期项目的成本;

  1. "小雉视频系统"长周期的项目兼容,是否意味着软件的架构陈旧,无法引入新技术?

"小雉视频系统"使用的框架规定了进程内模块设计,配置设计等软件开发相关的规范和技术要点,同时也定义了系统引导,内核,驱动,文件系统,启动,命令工具等一系列的规范,从2014年以来发布的版本的系统经历了centos6.3,centos7.1,centos7.3等系统版本的变化,但这些版本间是可以相互平滑切换的,即"小雉视频系统"的兼容不仅体现在配置的相互兼容,也支持跨系统版本,跨内核的兼容,2020年将推出centos8.1系统的"小雉视频系统",敬请大家体验centos8.1系统的"小雉视频系统"和centos7系列的"小雉视频系统"的无缝切换;

一,功能清单:
        1,单机版(多网口)支持400路以上视频流(1080及以上,4M码流)采集--已实现;

        2,支持全天录像--已实现mkv支持;

        3,支持硬盘滚动写入,磁盘满时自动删除最早的文件,支持磁盘配额--已实现;

        4,支持磁盘阵列,支持动态扩容--已实现;

        5,支持通用播放器播放储存的视频--已实现兼容vlc,portplayer;

        6,支持视频rtsp分发(不限客户端数量,瓶颈在网络)--已实现;

        7,rtsp使用kcp不公平协议抢占网络资源(在网络丢包,如无线网,可比tcp延时小50%以上)--已实现(同时支持tcp和udp);

        8,支持视频hls分发(不限客户端数量,瓶颈在网络,pc上的vlc,android上moboPlayer实测与海康网页直播延时1S)--已实现,测试中;

        9,支持视频文件rtsp点播--已实现;

        10,支持按时间rtsp点播视频(既视频回放,回放与实时视频相比最小延时约为2S,保证10S)--已实现;

        11,支持接收第三方程序发送的xml或json,并根据内容合成视频(延时约1S,保证5S)--已实现;

        12,支持远程配置系统--已实现;

        13,支持接受xml或json导入配置,方便第三方公司控制系统--已实现;

        14,支持ftp浏览和下载视频--已实现;

        15,支持客户端控制点播速度(可实现快速,慢速和单步播放)--已实现;    

        16,支持通过gb28181平台预览视频,控制球机(现只支持海康球机)--已实现; 

        17,支持拉取第三方gb28181平台的视频数据进行储存+rtsp转发+rtsp回放+hls转发+gb28181再推送 --已实现;

        18,支持"支持gb28181的相机"直接推送视频数据到服务器进行储存+rtsp转发+rtsp回放+hls转发+gb28181再推送,同时支持NAT穿透 --已实现;

        19,支持第三方使用GB28181协议访问本服务器的储存视频,同时支持第三方使用GB28181协议访问与本服务器属于同一集群的服务器上的储存视频--已实现;

        20,支持接入onvif相机,代理相机控制指令,实现集中控制;

        21,支持阿里云oss储存回放;

        22,支持分布式集群(各台主机相互独立,互不依赖,对客户端来说集群内的任何一个节点都是中心服务器,访问任何一台主机都能获取到集群内其它主机上的数据)--已实现;

        23,鉴于22条的特性,程序具有中心服务器热备,负载均衡等功能--已实现;

        24,加入以telnet方式运行程序,同时配合看门狗,保证系统稳定持续运行,参考文章:http://www.feitianzhi.com/boke/index.php/archives/5/;

二,系统优势
        1,程序采用C语言,支持arm,x86平台,具有跨平台特性;

        2,程序经历了三次重构,拥有先进的框架和良好的扩展性;

               1),首次编写使用传统的c面向资源对象设计(如一个相机一个对象,增加相机就增加一个类的实例),导致在通道过多时,会新建大量的对象,日志的数据量成倍增长,在处理大并发时系统将创建大量的线程,线各程的创建和消亡占用了过多的cpu,基于这些原因,在功能全开时程序只能做到100路以内的并发;

               2),第一次重构加入了线程池的机制,同时程序也去掉了第三方库(不再需要live555,ffmpeg等第三方库),依然使用面向资源对象设计,这个版本虽做了大量的修改,代码量极度减少,cpu占用降低,但并发数增加仍不明显;

               3),第二次重构改变了程序的设计风格,改用使用面向过程的设计模式(或面向过程对象的设计模式,一个过程一个对象,因系统内任何一个资源只经过一个过程一次,即完成整个任务所需要的过程数就是系统总的线程数,这让系统的线程数不再与通道相关,成为一个定值),解决了线程过多的问题,同时也省去了复杂的线程池,让系统变得高效简单,让系统并发数突破1000;

               4),第三次重构是对第二次重构的优化,也是真正工程化的实现,在第二次重构后,虽然并发数大大增加,但大并发时的一些不可预见性问题因程序不能追踪(因路数太多,用记录日志的办法效率低下,几乎是因量太大无法分析),系统bug的修复变得困难,这次重够加入了系统异常自动记录功能,在出现异常时,可自动定位并记录异常出现在源码的什么文件的多少行,同时还可记录出现问题时对应线程你关心的内存的值,大大加简化了系统bug定位和修复,让直接处理生产环境中的异常变为了可能,同时还增加了线程资源实时消耗的统计信息,能实时了解系统中各线程的cpu占用情况;这次重够还去掉了glib的依赖,系统不再使用链表,使用数组代替链表,修改所有的查找排序的算法为二分查找,让单系统达到万级并发成为了可能;

        3,系统不使用数据库,单进程,不依赖第三方库,简单可靠;

        4,系统同时支持xml和json通信,让第三方集成变得异常简单;

        5,程序使用配置导入导出方式进行修改程序,让程序可以向下并向后兼容,彻底解决版本不兼容给使用者带来的问题;