分类 小雉视频系统 下的文章

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

转载请注明出处,有疑问或错误请发邮件到[email protected] 或加QQ群:869598376


概述

      视频储存分为ipc前端储存和后端集中储存,随着网络技术的发展,在具备网络条件的应用场景中应当使用集中储存,主要理由如下:

  1. 硬盘属于消耗品,在视频储存应用中长期读写,寿命短,集中储存可以节约去现场的人工成本;
  2. 已有网络的应用环境并不能因前端储存就不用部署网路或不用维护网路,前端储存只会增加运维成本;
  3. 集中储存一台服务器接多路相机,需要挂载多硬盘,集中储存服务器可以使用raid5,而前端储存冗余只能使用raid1,raid5比raid1更省磁盘空间;

      集中储存虽具备节约运维成本的优势,但因储存集中化,储存设备故障、服务器故障、软件bug等问题导致数据丢失的问题相较前端ipc储存更加严重,小雉视频系统针对这一缺陷提出了一份低成本的冗余方案--小雉视频共享储存;


小雉视频共享储存

      为避免单点故障,采用冗余方案是行业的通用做法,但视频属于大数据,提供多份磁盘储存冗余将显著增加项目建设成本,降低企业利润,小雉视频共享储存方案是在仅有一份磁盘储存的条件下实现服务器故障(硬件故障、软件bug)、磁盘储存故障(短暂掉电、重启、短暂断网、软件bug升级)视频数据不丢失,持续安全储存的低成本方案,其拓扑图如下:
小雉视频共享储存

  • 相机同时接入“小雉视频系统1”、“小雉视频系统2”、“小雉视频系统N”;
  • 每台小雉视频系统配一块专用储存,一块固态可达1000M读写性能,即一台服务器配一块固态硬盘即可;

固态硬盘价格

  • 系统启动后均使用专用储存进行储存;
  • “小雉视频系统1”、“小雉视频系统2”、“小雉视频系统N”使用“比特币”去中心化原理进行选举,获得选举权的主机挂载“共享磁盘阵列”,挂载成功后(如“小雉视频系统1”获得选举权)切换相机使用“共享磁盘阵列”进行视频储存,并合并“本机专用储存数据”到“共享磁盘阵列”;
  • 未获得选举权的主机(“小雉视频系统2”、“小雉视频系统N”)在收到客户端的视频请求时应自动重定向到获得选举权的主机(如“小雉视频系统1”);
  • 未获得选举权的主机(“小雉视频系统2”、“小雉视频系统N”)需要监控获得选举权的主机(如“小雉视频系统1”)的运行情况,如获得选举权的主机出现异常(包括软件bug、硬件故障、与共享磁盘阵列间连接故障、共享磁盘阵列故障),未获得选举权的主机(“小雉视频系统2”、“小雉视频系统N”)再次进行选举,获得选举权的主机(如“小雉视频系统2”)挂载“共享磁盘阵列”,挂载成功后切换相机使用“共享磁盘阵列”进行视频储存;
    -之前出现异常的主机(如“小雉视频系统1”)恢复后使用本地专用磁盘进行录像储存,加入未获得选举权的主机阵营,监控当前获得选举权的主机(如“小雉视频系统2”)的运行情况;

小雉视频共享储存性能指标

  1. 发现故障切换耗时--30S至120S,即出现故障后的120S时间内无法访问完整的录像视频,此段时间访问的视频是本地专用磁盘上的数据;
  2. 帧对齐--完美对齐,不多一帧也不少一帧,在发生切换时需要把“本地专用储存”上的视频合并到“共享磁盘阵列上”使用AI检测,即对图像内容进行检测,计算出精确的边界,不受时间精度的影响(通用的补录方案是使用时间戳比对),保证视频拼接完美;

方案对比

特性小雉视频共享储存ipc补录方案磁盘冗余方案主从同步方案(定时器)
运维成本低(无需前端运维)高(需要前端运维)低(无需前端运维)低(无需前端运维)
磁盘成本低(一份磁盘+每机专用储存)较低(一份磁盘+每IPC SD卡)高(多份磁盘)低(一份磁盘+每机专用储存)
响应时间低(30-120S)较低(数分钟)非常低(无须切换合并)高(数小时)
合并成本低(仅在切换时发生)较低(合并数据比较多)非常低(无须合并)高(需要在大范围内检索)
合并效果完美(AI合并,完美帧对齐)存在缺失(一般采用时间戳对比,不多数据就少数据,因h264、h265需要关键帧解码问题,大部分时间会丢2S左右数据)完美(无须合并)存在缺失(一般采用时间戳对比,不多数据就少数据,因h264、h265需要关键帧解码问题,大部分时间会丢2S左右数据)

      综上,“小雉视频共享储存”是一种成本低效果好的均衡方案。

猜您可能喜欢
小雉系统安装: http://www.feitianzhi.com/boke/index.php/archives/11/
小雉系统安装包制作: http://www.feitianzhi.com/boke/index.php/archives/50/
小雉系统网络配置: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/
使用Google Authenticator为小雉系统增加动态密码功能:http://www.feitianzhi.com/boke/index.php/archives/17/
小雉配置工具:http://www.feitianzhi.com/boke/index.php/fslib-config.html
资源下载:http://www.feitianzhi.com/boke/index.php/ziyuanxiazai.html

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

转载请注明出处,有疑问或错误请发邮件到[email protected] 或加QQ群:869598376


概述

      本文描述的内容归属于"小雉视频NVR子系统"的功能描述;

背景

      一项目在您入场时可能已存在很多历史的安防储存设备,要把已有储存设备上的视频接入自己的客户端可能需要对很多开发量,同时如需要在移动端播放这些回放视频更是存在一定的技术壁垒;
      本文介绍使用"小雉视频NVR子系统"配置gb28181接入第三方的直播及回放视频,"小雉视频NVR子系统"负责把接入的回放视频转rtsp,hls,gb28181协议输出,同时"小雉视频NVR子系统"会把访问过的视频进行缓存,让新的客户端不再从前端储存中获取(如两个rtsp,两个hls,两个gb28181客户端取同一路流的相近时间的回放视频,"小雉视频NVR子系统"只向前端储存设备取一次流);

配置

小雉视频NVR子系统

  • 在海康nvr中配置使用gb28181接入到"小雉视频NVR子系统",如下图;

小雉视频NVR子系统

  • vlc效果展示(上图为gb28181回放转hls,下图为gb28181回放转rtsp),如下图;

小雉视频NVR子系统

小雉视频NVR子系统

猜您可能喜欢

小雉系统安装: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/
使用Google Authenticator为小雉系统增加动态密码功能:http://www.feitianzhi.com/boke/index.php/archives/17/
GB28181 级联 CDN 回放:http://www.feitianzhi.com/boke/index.php/archives/37/
小雉视频系统负载均衡之GB28181多线负载均衡:http://www.feitianzhi.com/boke/index.php/archives/28/
小雉视频系统GB28181-2016配置:http://www.feitianzhi.com/boke/index.php/archives/41/

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

转载请注明出处,有疑问或错误请发邮件到[email protected] 或加QQ群:869598376


      小雉视频系统从3.165.3509版本开始支持GB28181-2016版本,SIP指令及视频流均同时支持tcp和udp;

GB28181端口配置

  • 1路具体的gb28181视频配置(储存,rtsp,rtmp,hls,gb28181转发)

1路具体的gb28181视频配置(储存,rtsp,rtmp,hls,gb28181转发)

猜您可能喜欢

小雉系统安装: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/
使用Google Authenticator为小雉系统增加动态密码功能:http://www.feitianzhi.com/boke/index.php/archives/17/
GB28181 级联 CDN 回放:http://www.feitianzhi.com/boke/index.php/archives/37/
小雉视频系统负载均衡之GB28181多线负载均衡:http://www.feitianzhi.com/boke/index.php/archives/28/

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

转载请注明出处,有疑问或错误请发邮件到[email protected] 或加QQ群:869598376


介绍

      "相机控制"指云台转动,图像变倍,聚焦,光圈控制,预置位控制,3D定位,ptz设置与获取,快门,增益,白平衡控制,亮度,色度,对比度,清晰度控制;
      "相机控制"因一个客户端的控制会影响其他客户端的图像观看和其他业务(比如大领导正在看,突然被其他用户给转了下相机)为每个客户端分配合适的优先级来解决相机控制中的优先级问题;

优先级控制

      "小雉视频系统"中的优先级控制综合了"视频分析","相机锁定","相机控制共享","相机级联"等应用场景,设计出支持相机控制抢占,控制独占,控制共享的优先级控制;
      "小雉视频系统"的优先级核心是在每个指令中增加一个"priority"参数,如相机转动的接口为:

{
    "command_type":"cameractrl",
    "command_for_uuid":"1",
    "ctrl_type":"turn",
    "priority":"0",
    "speedx":"23040",
    "speedy":"0",
    "time":"1.000000"
}

      "priority"的定义如下:

流媒体控制支持优先级控制[0-65534](数值越大优先级越高)
     0:默认值;
     非0:表示特权连接,需要实现连接保持,连接断开自动回0;
         1-比分析优先级低的定义;
         2-255:保留;
         256-29999:比分析优先级低的定义;
         30000-34999:视频分析专用的优先级;
         35000-64999:比分析优先级高的定义:
         65000-65534:保留;
     注:非0优先级中,
          偶数表示可合并的优先级,即如有多个拥有相同偶数优先级的客户端访问同一相机,这些所有客户端的指令会按照新指令覆盖旧指令方式生效;
          奇数表示独占优先组,即如有多个拥有相同奇数优先级的客户端访问同一相机,只有第一个客户端的指令会生效,其他客户端的指令会被拒绝;
流媒体控制支持多指令合并(按高优先级覆盖低优先级,新指令覆盖旧指令方式合并)
      如某用户A以优先级a向流媒体发起指令让相机左转30S,在用户A与流媒体保持TCP连接期间
           如B用户以比a高的优先级b发起指令,流媒体应立即响应B用户的指令,发送信息通知A有比他高的优先级用户控制了相机(信息不保证一定可达),并更改当前控制优先级为b(注:如B断开连接,流媒体把当前优先级置0,而非还原为a优先级);
           如B用户以与A相同的优先级a发起指令,流媒体应立即响应B用户的指令,当A用户与B用户都断开连接后,流媒体才会把当前优先级置0;
           如B用户以小于A的优先级a发起指令,流媒体应不会响应B用户的指令,当A用户断开连接后,流媒体才会把当前优先级置0;
           如A用户使用新优先级b发起指令,b>a,流媒体立即相应A用户指令,并更改当前控制优先级为b,当A用户断开连接后,流媒体会把当前优先级置0;
           如A用户使用新优先级b发起指令,b<a,
                如当前以a优先级保持连接的用户仅有A,流媒体立即相应A用户指令,并更改当前控制优先级为b,当A用户断开连接后,流媒体会把当前优先级置0;
                否则,不响应A用户的指令;

级联控制

      "级联控制"指小雉与小雉之间级联,最下级的小雉会综合所有上级小雉所有用户的优先级进行权衡,此处特别说明的是此级联协议的其他用途;

  1. 控制通知用途
    用tcp连接向小雉发送如下指令,则其他客户端(用小雉私有的ebml,xml,json接口或gb28181,onvif)发送的控制命令都会转发一份给此连接

    {

    "command_type":"controlInfo",
    "command_for_uuid":"camera_ctrl",
    "type":"1",
    "return_type":"json"

    }

  2. 自定义控制要求
    如推送rtsp流A给小雉转gb28181后分享给其他平台,并且编写一个程序使用tcp发送以下数据给小雉,小雉在收到其他平台对流A的GB28181控制信息时会通过tcp连接转发控制信息,并会判断控制的成败以返回给其他平台

    {

    "command_type":"controlInfo",
    "command_for_uuid":"camera_ctrl",
    "type":"2",
    "return_type":"json"

    }

猜您可能喜欢

小雉系统安装: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/
使用Google Authenticator为小雉系统增加动态密码功能:http://www.feitianzhi.com/boke/index.php/archives/17/

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

转载请注明出处,有疑问或错误请发邮件到[email protected] 或加QQ群:869598376


GB28181级联

流媒体服务器-CDN级联
      "GB28181一般级联"实质是多个sip服务器的级联,转发sip指令到视频源中的sip服务器执行,各级中的流媒体负责转发视频流;
      "GB28181 CDN 级联"在各级增加了CDN服务器,对回放视频流进行缓存,在视频回放时,优先判断本级的cdn服务器是否有对应时间视频,有视频则直接使用本级cdn缓存数据,不向下级请求流,cdn无对应时间视频,则向下级请求视频转发并进行缓存;

小雉级联回放

      小雉系统采用"GB28181 CDN 级联"技术方案实现,同时增加了多种转码服务器,以满足不同设备的需要;

  1. RTSP转码
          RTSP转码器与sip服务器和cdn服务器对接,实现gb28181直播流转rtsp直播流,支持使用rtsp进行视频回放,可用于安防客户端开发;
  2. RTMP转码
          RTMP转码器与sip服务器和cdn服务器对接,实现gb28181直播流转rtmp直播流,支持使用rtmp进行视频回放,可用于老系统web视频直播与回放;
  3. HLS转码
          HLS转码器与sip服务器和cdn服务器对接,实现gb28181直播流转hls直播流,支持使用hls进行视频回放,可用于android,iphone,ipad,qq,微信等H5的直播回放;

猜您可能喜欢

小雉系统安装: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/
使用Google Authenticator为小雉系统增加动态密码功能:http://www.feitianzhi.com/boke/index.php/archives/17/

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

转载请注明出处,有疑问或错误请发邮件到[email protected] 或加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/

转载请注明出处,有疑问或错误请发邮件到[email protected] 或加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/27/

转载请注明出处,有疑问或错误请发邮件到[email protected] 或加QQ群:869598376


概述

      "小雉视频系统"虽采用面向过程对象(参见:http://www.feitianzhi.com/boke/index.php/archives/18/)编程,去除线程池等复杂的设计,并减少线程的使用量,但线程数依然高达40个之多;
      40个线程数虽对cpu而言已没有任何压力了,但多线程的复杂性依然存在,其中线程死锁是多线程中最常见同时也难以定位的问题;


线程死锁产生的原因分析

  1. 能否通过合理的设计规划避免线程死锁?

"小雉视频系统"是一份持续维护并增加新功能的代码,代码的修改必须考虑与老代码的兼容,需要处理的细节多,对每次修改都做出完美的设计几乎是不能实现的;

  1. 能否使用第三方工具查找线程死锁?

对开发阶段就能发现的死锁用第三方工具定位是处理问题的通用方法,但使用第三方工具会导致系统速度指数级别的下降,在生产环境中无法使用,同时"小雉视频系统"模块众多,模块均支持按需开启和关闭,任何一个修改需要准备的测试用例太多,死锁后难以确定与此死锁相关的模块;


理想化设计

  1. 死锁时自动报告是哪些线程卡住了?卡在源码的哪一行?卡时的调用堆栈是什么样?
  2. 可在任意时间接受外部干预,报告所有线程当前执行到哪段源代码的哪行并提供调用堆栈;

小雉视频系统--线程死锁设计预览

  1. 线程死锁时自动报告,"小雉视频系统"并不能判断线程死锁,"小雉视频系统"是做视频应用,5S以上的卡顿足以让用户不满,"小雉视频系统"是监视所有线程,看哪个线程连续5S时间内一直停在同一句代码处,以此认为其死锁了,效果如下:

  1. 任意时间打印所有线程的调用堆栈,"小雉视频系统"监听linux下10的信号,在收到信号后打印所有线程当前的调用堆栈,效果如下:

猜您可能喜欢

小雉系统安装: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/26/

转载请注明出处,有疑问或错误请发邮件到[email protected] 或加QQ群:869598376


概述

      本地拉取相机是"小雉视频系统"自定义的一种相机类型,此相机类型可以使用通过rtsp,gb28181接入的一个到多个视频流作为输入,然后对这些输入的视频源按一定的规则(如旋转,拉伸)绘制在目标图上,实现图像拼接,分辨率和帧率调整等业务;

      本地拉取相机是以"小雉视频系统"本身接入的视频源作为输入源,而"小雉视频系统"是一个单进程应用,多个本地拉取相机对同一个视频拉取是共享同一份内存的,只需解码一次,如有需求对一视频源叠加不同的水印后作为两路新流输出,则可创建两路本地拉取相机实现这一需求;


两种不同水印叠加后作为两路新流输出

  1. 假设"小雉视频系统"已经使用rtsp接入了一路uuid为src的视频流,如下图所示

  2. 新建一路"本地拉取相机",分别命名为out1,拉取src的流,并在左上脚添加out1的水印,如下图所示
  3. 新建一路"本地拉取相机",分别命名为out2,拉取src的流,并在左上脚添加out2的水印,如下图所示

      如上实现了src拉取rtsp视频流,并解码,out1和out2拷贝src解码后的视频分别进行水印叠加后编码,最后输出新的视频流out1和out2.


分辩率和帧率修改

      本处对out1的分辩率和帧率进行修改,如下图


图像旋转

      本处对out1的图像进行旋转30度,如下图


双图像拼接

      本处以out1的图像为例;

  1. 拉取src两次(也可拉取不同的视频源,如out2也能被拉取),如下图
  2. 以下操作比较复杂,这里把out1拖拽出来生成新界面来配置,操作:鼠标左键按住菜单栏的"out1"选项卡拖拽到菜单区以外放开,如下图
  3. 右键"相机配置"选择"切图配置",如下图
  4. 在图新配置上可以对两图像的相对位置进行调整,也能改变其长宽,进行旋转,右键画区域等,如下图的一个示例
  5. 保存配置后,用vlc查看的效果如下

      同此节方法可实现多相机的图像拼接.

猜您可能喜欢

小雉系统安装: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/18/

转载请注明出处,有疑问或错误请发邮件到[email protected] 或加QQ群:869598376


概述

对一个软件的运行占用的资源进行统计,可得到资源占用的"均值"和"峰值",从性能的角度评估软件的框架,自认为可分三个层次:

  1. 峰值架构:按这种架构设计的软件需要按资源使用的峰值配置硬件,一些云服务商(如阿里云)评估的cpu均值与峰值比为2:10,基于此数据,云服务器商可提供更高的突发性能(这也是阿里云服务器测试时感觉比其他云服务器商快的原因);
  2. 总线式峰值架构:如选用高于软件资源消耗均值但低于软件资源消耗峰值的硬件,在软件峰值时不仅会卡顿影响体验且会丢失数据,影响最终结果;"总线式峰值架构"是把数据采集(数据采集的资源消耗肯定是低于均值的)和处理分开,把采到的数据进行缓存再分发给各处理模块处理(处理模块排队完成);
  3. 均值架构:目标是可选用性能略大于软件资源消耗的均值的硬件,实现硬件资源的利用最大化;"总线式峰值架构"相对"峰值架构"会增加业务流程,增大储存资源消耗,而"均值架构"相对"峰值架构"不会增加业务处理流程,同时可合并同类业务的排列顺序,让数据更好地类数组化,增加cpu或储存设备cache的命中率,进一步提升性能,降低软件资源消耗的均值;

直接均值架构

"小雉视频系统"采用"均值架构",同时"小雉视频系统"是单进程设计,数据在多模块之间传递采用引用方式完成,所有操作都能直接完成;
合理的算法让数据的移除和插入使用位于链表的头和尾,保持数据的数组特性,提高cpu缓存命中;
合理的业务分解让数据快速被过滤,大大减少堆积数据量,据统计视频中可能感兴趣的数据不足10%;
采用"直接均值架构"的"小雉视频系统"的硬件利用率可达90%,即cpu均值达90%不会影响使用体验;