• 安防摄像头互联网直播方案LiveGBS设计文档


    LiveGBS设计文档

    一、介绍

    28181协议全称为GB/T28181《安全防范视频监控联网系统信息传输、交换、控制技术要求》,是由公安部科技信息化局提出,由全国安全防范报警系统标准化技术委员会(SAC/TC100)归口,公安部一所等多家单位共同起草的一部国家标准(以下简称28181)。28181协议在全国平安城市、交通、道路等监控中广泛采用,若想做统一的大监控平台,则支持28181协议接入是必不可少的。
    LiveGBS是基于GB28181,为了满足可以集中统一管理和观看所有摄像头、硬盘录像机等设备而设计的,将传统安防摄像头实现Web端无插件播放。

    二、功能介绍

    • 提供用户管理及Web可视化页面管理;
    • 提供设备状态管理,可实时查看设备是否掉线等信息;
    • 实时流媒体处理,PS(TS)转ES;
    • 实时快照、视频数据获取;
    • 设备状态监测;
    • 云台控制;
    • 录像检索、回放;
    • 提供RTMP、HTTP-FLV、HLS等多种协议流输出;
    • 对外提供服务器获取状态、信息,控制等HTTP API接口;

    三、系统架构

    LiveGBS实现了从安防设备(IPC、NVR…)到可以互联网直播的一条通道。满足客户使用的同时提供了标准的RESTful API接口,供用户集成开发。
    如下是LiveGBS的架构图:
    在这里插入图片描述

    3.1、展现层

    Web前端

    基于HTML/HTML5/Vue/CSS3开发web前端页面,兼容主流浏览器。展现层和数据层完全分离,通过跨域实现前后端数据通信。

    Web播放器

    自己封装的一套集Video.js、Flash、flv.js与一体,并优化了一些性能问题,增加了截图、自适应宽高、极速/流畅模式切换等功能,同时提供对应调用接口。

    Restful接口

    基于特定业务,采用Restful标准接口,对外提供数据服务。

    3.2 服务层

    服务层按照功能模块划分为信令管理服务LiveCMS和流媒体管理服务LiveSMS两个核心模块。

    LiveCMS

    LiveCMS负责IPC、NVR、视频平台等设备接入管理的同时,提供与用户交互的功能,响应所有用户的请求。有用户权限管理,对于设备端操作的权限管理等。

    1. LiveCMS与设备之间通过GB28181协议保持注册与交互,包括设备注册、云台控制等;
    2. LiveCMS与用户之间通过自动的Web界面或Restful接口完成客户请求;
    3. LiveCMS从Redis数据库检索所有设备状态以及LiveSMS的状态;
    4. LiveCMS通过SIP信令通知LiveSMS开始处理流数据;
      在这里插入图片描述

    LiveSMS

    LiveSMS是接收设备端PS视频流数据并转成ES流,然后打包成RTMP、HTTP-FLV、HLS直播流进行分发。当一台LiveSMS服务器性能不够时,可以采用LiveSMS集群部署。
    每个LiveSMS从启动开始都会向同一个Redis中更新自己的配置、负载、以及自己当前处理的流的状态信息。LiveCMS在接收到用户请求时会从Redis中获取所有LiveSMS的信息,选择合适的LiveSMS来处理当前的请求。

    1. LiveSMS接收设备的PS流后,Demux成ES流
    2. 使用ES流可以保存图片
    3. ES流推送给自身的流媒体分发服务器,分发出RTMP、HLS、FLV、RTSP流, 同时可以推送给用户自定义的CDN等流媒体服务。

    LiveSMS中包含的流媒体分发服务相比普通的流媒体直播服务增加了对于各种视频流的兼容、HTTP-FLV的支持、流信息统计、缓存的控制等。同时对于需要RTSP流的用户,可扩展RTSP转发服务。

    后期扩展

    LiveGBS已经满足绝大部分场景下关于GB28181设备的接入和访问。
    LiveGBS开放了所有功能的API接口,可扩展接入到统一的云平台来管理和访问所有现场的LiveGBS。

     

  • 相关阅读:
    【Python3之匿名函数及递归】
    【Python3之模块及包的导入】
    :nth-child和:nth-of-type的区别
    JavaScript ES6中export及export default的区别以及import的用法
    vue中npm run dev运行项目不能自动打开浏览器! 以及 webstorm跑vue项目jshint一直提示错误问题的解决方法!
    SEO优化之HTML代码优化最重要的5个标签
    清除浮动小记,兼容Ie6,7
    JavaScript继承基础讲解,原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承
    面向对象JS基础讲解,工厂模式、构造函数模式、原型模式、混合模式、动态原型模式
    纯CSS实现垂直居中的几种方法
  • 原文地址:https://www.cnblogs.com/kumukim/p/11006567.html
Copyright © 2020-2023  润新知