GB/T28181《安全防范视频监控联网系统信息传输、交换、控制技术要求》是由公安部科技信息化局提出,由全国安全防范报警系统标准化技术委员会(SAC/TC100)归口,公安部一所等多家单位共同起草的一部国家标准。
对于大多数使用场景,GB28181解决的一个主要问题就是如何远程、跨区域、跨级别的访问网络中的监控设备(包括IPC、NVR等)。在没有GB28181协议之前,想要远程访问某个局域网中的监控摄像头相当麻烦,通常要进行动态IP映射、端口映射、动态域名绑定等操作,在稳定性和易用性方面都不理想。虽然之前有成熟的ONVIF协议(ONVIF创建了一个视频监控和其他物理安全领域的IP产品如何进行相互通信的标准),但在跨网络和跨域访问方面,ONVIF缺少足够的灵活性。
一个完整的GB28181平台,通常由以下几部分组成:
信令服务器
流媒体服务器
管理平台(业务平台)
监控设备(IPC、NVR)
管理终端(管理者)
信令服务器是与网络中监控设备与管理终端之间进行通信的代理,也是各级系统之间的代理,信令服务器要有固定的IP地址或域名,如果要面向公网服务,还需要有公网IP。由于是监控设备主动向信令服务器注册,所以监控设备不需要有固定的IP。监控设备注册到信令服务器上之后,管理者通过向信令服务器发送指令来管理监控设备。
流媒体服务器是视频传输的代理,该系统接受监控设备发送的视频流,向视频调取方转发视频。视频调取方可以是监控监控视频的用户、第三方业务系统或者是上下级平台。协议规定监控设备通过rtp协议向流媒体服务器发送视频流,但是没有约定流媒体服务器向其他方转发视频的协议,因此在视频转发时具有更大的灵活性,可以根据需要采用合适的协议转发视频。
架构图
管理平台是具有一定业务特色的业务平台,通常实现对监控设备、信令服务器、流媒体服务器、用户等进行管理。比如各种管理中心、指挥中心、智慧平台等。
数据流图
华为IVS平台除了支持华为品牌的监控摄像机,同样支持其他符合GB28181标准的监控设备接入。
参考地址: https://support.huawei.com/enterprise/zh/doc/EDOC1100269456/156879c2
前提条件
设备可以通过专网或开放网络连接到IVS,设备与平台之间的网络是连通的;
设备使用GB/T 28181协议与IVS平台对接时,需要获取平台侧添加摄像机时的参数,这个与其他平台是一致的
设备上的配置与其他终端设备一样,主要参数是一致的:
NTV GBS是一个成熟的、敏捷的、产品化的GB28181平台,支持标准的监控设备的接入和管理,可以接入监控摄像头和硬盘录像机,视频调阅和设备控制操作都很顺畅,界面设计也相当不错。
参考地址: http://www.ntvgbs.com
前提条件
设备可以通过专网或开放网络连接到NTV GBS,设备与平台之间的网络是连通的;
设备使用GB/T 28181协议与NTV GBS平台对接时,需要在平台上获取平台侧添加摄像机时的参数,这个与其他平台是一致的
平台端配置
登录NTV GBS平台后,首先通过点击左侧设备列表下方的“添加设备”按钮添加新设备。添加新设备只需要输入设备名称即可,其他信息由平台自动完善。
设备添加完毕后,右键点击设备,选择“配置信息”会获取详细的设备配置信息,使用该信息到设备上对照填写就可以完成设备端配置。
设备端配置
将上一步拿到的配置信息,到设备端进行配置,大部分支持GB28181的设备配置界面大同小异,我们以海康的IPC为例,配置界面如下:
配置完成后点击保存按钮。通常会在1分钟内连接到平台上,在平台就可以查看实时视频和对设备进行控制了。
整体运行效果:
WVP(WEB VIDEO PLATFORM)是一个基于GB28181-2016标准实现的开箱即用的网络视频平台,负责实现核心信令与设备管理后台部分,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联,支持将不带国标功能的摄像机/直播流/直播推流转发到其他国标平台。
参考地址:https://github.com/648540858/wvp-GB28181-pro
该平台基本上实现了设备的接入和管理功能,是一个开源项目,通常懂Linux、Java技术的工程师就可以完成安装部署。
存在的一些小瑕疵是代码不是很好懂,作者也没有提供架构设计和更详细的说明文档,如果要基于此平台进行改进则需要付出较大工作,界面也相对粗糙一些。
视联云服务(UniVMS)是紫光云推出的支持摄像头、第三方视频设备或监控管理平台的数据接入,实现云端实时视频和录像观看,提供视频连接,录像、图像数据云存储,视频、图像数据计算等云端PaaS服务。
视联云架构
参考地址:https://www.unicloud.com/document/show-33584019.html
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
我是ruby的新手,正在配置IRB。我喜欢pretty-print(需要'pp'),但总是输入pp来漂亮地打印它似乎很麻烦。我想做的是默认情况下让它漂亮地打印出来,所以如果我有一个var,比如说,'myvar',然后键入myvar,它会自动调用pretty_inspect而不是常规检查。我从哪里开始?理想情况下,我将能够向我的.irbrc文件添加一个自动调用的方法。有什么想法吗?谢谢! 最佳答案 irb中默认pretty-print对象正是hirb被迫去做。Theseposts解释hirb如何将几乎所有内容转换为ascii表。虽
我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO