常规信息化项目中集成商计算会涉及到视频监控存储,网络,用电量的计算,最基础的方案需要融合这三部分估算。其中视频监控存储一般是硬件厂家计算,网路流量是由运营商计算,用电量需要集成商或电力部门估算。雪亮工程,平安城市,智慧医院,这些项目都会有用到,即便同一个人在项目中每次计算都会出现结果略有差别,接下来本文就对视频监控存储,网络带宽,用电量计算方式做简要阐述。(仅供参考)
第一章 视频监控存储
监控每个部分都是有不同供应商,其中每个厂家集成商都会略有差别,在项目深化设计之前需要做估算,可参考如下计算方式进行估算。
如下总结部分厂家常规计算方法:视频监控存储容量计算主要涉及到抓拍图片,视频存储,数据存储三大类;计算之前都需要做现场需求确认。
1.1 详细计算说明
【抓拍图片计算】
摄像机抓拍图片类型主要是人脸图片,人体图片和车辆图片。估算图片存储的单位是KB 。
一般情况下,400W像素的摄像机:
单张抓拍图片(大图):880KB ;
单张人脸图片(小图):50KB;单张人体图片(小图):80KB
普通图片抓拍数量按照3000张,80%利用率;
单天:880/1024/1024/1024*3000(张)*1(天)*1(路)/80%=0.003TB(3.14GB)
30天:880/1024/1024/1024*3000*30(天)*1(路)/80%=0.09TB
一般情况下行业内,大图存储90天,小图存储30天;
【视频流存储估算】
摄像机视频监控存储视频的计算单位是bps ,存储b换成B需要/8,一帮行业内视频存储为30天或者是90天;视频流的存储是按照摄像机像素来计算的。
一般视频监控是按照国标H264编码规则计算,H265是非国标编码,行业内也会用到;
【计算公式】
单路实时视频的存储容量(TB)=【视频码流大小(Mb)×60秒×60分×24小时×存储天数/8】/1024/1024
计算举例:
1路200w设备,国标H264编码计算4M带宽,存储30天,利用率80%,需要1.54TB;
4*60*60*24*30/8/1024/1024/80%=1.54TB
1路400w设备,国标H264编码计算8M带宽,存储30天,利用率80%,需要3.08TB;
8*60*60*24*30/8/1024/1024/80%=3.08TB
1路400w设备,国标H265编码计算4M带宽,存储30天,利用率80%,需要1.54TB;
400W摄像机带宽按照4M计算,存储30天; 4*60*60*24*30(天)*1(路)/8/1024/1024/80%=1.54TB
【存储事件记录数据库】
少量的数据存储,必须要使用固态硬盘SSD的数据库,计算方式 (比如说搜索数据量计算)
每条数据按照20KB(行业内计算方式),存储30天, 对应每一路按照图片数据3000条计算每天数据量=20*3000(条)*1(路)*30(天)/1024/1024/1024=0.002TB(1.7GB)
1.2 快速计算说明
【快捷渠道】
1路200w设备,国标H264编码,存储30天,利用率80%,需要1.54TB;
1路200w设备,国标H265编码,存储30天,利用率80%,需要0.77TB;
1路400w设备,国标H264编码,存储30天,利用率80%,需要3.08TB;
1路400w设备,国标H265编码,存储30天,利用率80%,需要1.54TB;
【编码规则】
一般视频监控是按照国标H264编码规则计算,H265是非国标编码,行业内也会用到;
200万像素摄像机按照国标H264编码带宽是4Mb,H265编码带宽是2Mb;
400万像素摄像机按照国标H264编码带宽是8Mb,H265编码带宽是4Mb;
第二章 网络带宽
网络带宽计算主要为视频流传输网络带宽计算:
2.1 每天使用网络流量
初步估算:每分钟0.02G,每小时1.2G,每天需要22G;
通过像素按照天计算流量: (H265);
IPC单摄:200W 带宽按照2M/S, 2*60*60*24/1024/8= 22G
IPC单摄:400W 带宽按照4M/S,4*60*60*24/1024/8= 42G
IPC多摄:200W +400W = 64G
球机单点: 22G;
热成像单点:热成像1M,可见光正常计算 3*60*60*24/1024/8= 31G
2.2 单个点位带宽计算
通过像素按照天计算流量: (H264);
IPC单摄:200W 带宽按照4M/S;
IPC单摄:400W 带宽按照8M/S;
通过像素按照天计算流量: (H265);
IPC单摄:200W 带宽按照2M/S;
IPC单摄:400W 带宽按照4M/S;
第三章 电量损耗
估算:1台IPC 每天用电0.36度;
通过功耗计算用电:
IPC单摄:15W *24=360W (0.36度)
IPC多摄:30W *24=720W (0.72度)
球机单点:60W *24=1440W(1.44度)
热成像单点:130W *24=3120W (3.12度)
1KW 试用1个小时耗电1度;
常见产品功耗参考:
ONU功率: 20W;
机箱功率:30W;
服务器功率:550W;
供电局电费0.69元/kwh
第四章 电量损耗
存储图片计算数量参考:
图片:
车辆图片: 路数*2000张/天/车道*0.8MB/张*180天= TB;
人脸图片:路数*2500张/路/天*0.5MB/张*90天= TB;
治安图片:路数*3500张/路/天*0.5MB/张*90天= TB;
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我想使用spawn(针对多个并发子进程)在Ruby中执行一个外部进程,并将标准输出或标准错误收集到一个字符串中,其方式类似于使用Python的子进程Popen.communicate()可以完成的操作。我尝试将:out/:err重定向到一个新的StringIO对象,但这会生成一个ArgumentError,并且临时重新定义$stdxxx会混淆子进程的输出。 最佳答案 如果你不喜欢popen,这是我的方法:r,w=IO.pipepid=Process.spawn(command,:out=>w,:err=>[:child,:out])
我正在编写一个简单的静态Rack应用程序。查看下面的config.ru代码:useRack::Static,:urls=>["/elements","/img","/pages","/users","/css","/js"],:root=>"archive"map'/'dorunProc.new{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=6400'},File.open('archive/splash.html',File::RDONLY)]}endmap'/pages/search.
我正在尝试找到一种方法来规范化字符串以将其作为文件名传递。到目前为止我有这个:my_string.mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').downcase.gsub(/[^a-z]/,'_')但第一个问题:-字符。我猜这个方法还有更多问题。我不控制名称,名称字符串可以有重音符、空格和特殊字符。我想删除所有这些,用相应的字母('é'=>'e')替换重音符号,并将其余的替换为'_'字符。名字是这样的:“Prélèvements-常规”“健康证”...我希望它们像一个没有空格/特殊字符的文件名:“prelevements_routin
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g
我去了这个website查看Rails5.0.0和Rails5.1.1之间的区别为什么5.1.1不再包含:config/initializers/session_store.rb?谢谢 最佳答案 这是删除它的提交:Setupdefaultsessionstoreinternally,nolongerthroughanapplicationinitializer总而言之,新应用没有该初始化器,session存储默认设置为cookie存储。即与在该初始值设定项的生成版本中指定的值相同。 关于
我正在构建一个应用程序,想知道是否将未使用的对象设置为nil是生产级编码中的常见做法。我知道这只是垃圾收集器的提示,并不总是处理对象。 最佳答案 根据这个thread如果您使用完一个成员对象,将其设置为nil将引发被引用对象被垃圾回收。如果它是局部变量,方法exit将做同样的事情。也就是说,如果您要求将成员显式设置为nil,我会质疑您的设计。 关于ruby-将对象设置为nil是否很常见?,我们在StackOverflow上找到一个类似的问题: https://
我正在关注Hartl的railstutorial.org并已到达11.4.4:Imageuploadinproduction.我做了什么:注册亚马逊网络服务在AmazonIdentityandAccessManagement中,我创建了一个用户。用户创建成功。在AmazonS3中,我创建了一个新存储桶。设置新存储桶的权限:权限:本教程指示“授予上一步创建的用户读写权限”。但是,在存储桶的“权限”下,未提及新用户名。我只能在每个人、经过身份验证的用户、日志传送、我和亚马逊似乎根据我的名字+数字创建的用户名之间进行选择。我已经通过选择经过身份验证的用户并选中了上传/删除和查看权限的框(而不
我最近与一位同事讨论了以下Ruby语法:value=ifa==0"foo"elsifa>42"bar"else"fizz"end我个人并没有看到太多这种逻辑,但我的同事指出,这实际上是一种相当普遍的Rubyism。我试着用谷歌搜索这个主题,但没有找到任何文章、页面或SO问题来讨论它,这让我相信这可能是一种非常实际的技术。然而,另一位同事发现语法令人困惑,而是将上面的逻辑写成这样:ifa==0value="foo"elsifa>42value="bar"elsevalue="fizz"end缺点是value=的重复声明和隐式elsenil的丢失,如果我们想使用它的话。这也感觉它与Ruby
我正在使用mechanize登录网站,然后检索页面。我遇到了一些问题,我怀疑这是由于cookie中的某些值造成的。当Mechanize登录网站时,我假设它存储了cookie。如何通过Mechanize打印出存储在cookie中的所有数据? 最佳答案 代理有一个cookie方法。agent=Mechanize.newpage=agent.get("http://www.google.com/")agent.cookiesagent.cookies.to_scookie返回一个Mechanize::Cookiesobject