我是一个录像机(NVR)
我是一个网络录像机,简称NVR。我的前辈是DVR,我们的区别很简单,DVR接的是模拟摄像机,我连接的是IP摄像机。
我的前辈DVR比我辛苦,因为模拟摄像机的模拟信号连过来之后,他要进行数字化、编码压缩和存储转发;我的工作比较简单,IP摄像机加工完成的数字/编码信号来了之后,我通常只进行存储及转发,偶有回放录像请求,总体占比例不高。
后来有人说为嘛分那么清楚,为嘛不能一台录像机既能接入模拟摄像机又能接入IP摄像机呢,于是出现了混合录像机Hybrid-VR. 有点类似混合动力车的概念。
在小型项目上,有人说你这个造价不菲的NVR,为啥就只能存储转发,解码上墙的活你揽过去得了,于是我又增加了解码卡,就变成了一体机了。
早期,我们家族定位清晰,做视频监控的“中层领导”,不连接报警输入输出、不解码,集中资源做“音视频流”。通常,我们一个NVR管理16~32个IP摄像机(通道),当然也有能力大的据说能管理96路(音视频通道),把他们的视频进行存储及转发,我们向上对CMS(管理平台)汇报,他们给我们下指令,派任务(指令/信令流)。
实际上,我们一直认为我们NVR和前辈DVR是可以长期并存的,当然我们作为后生力量,和高清IPC合力,优势比较明显。但是DVR凭借早期模拟机保有量及简单可靠性,有自己的用武之地。最早提出“NVR, DVR的终结者”的是苏州一企业,虽然噱头,倒也前瞻。
对于我们存在的形式,行业一直是有争议的。甚至说NVR是硬件还是软件还有不同声音。实质上,不同NVR厂商提供的NVR产品形态的确不同,有的提供软硬一体解决方案(TurnKey),如嵌入式NVR或基于某些服务器厂商的NVR,有的提供纯软件(SoftwareOnly)解决方案,如光盘软件加许可(License)的形式。但是这些只是表面现象而已,NVR实质上可以理解为软件,但是其完整功能的实现离不开计算机平台这个载体。你说MP3是硬件还是软件?
除了外在形态,行业对我们争议比较多的就是文件(视频流)的存储形式,这个其实比外在形态之争更有意义,更有内涵。简单讲,就是我们(NVR)把视频流抓过来了(从IPC或编码器),面对视频大仓库(磁盘阵列),如何存储,什么形式(文件存储还是块存储)。File I/O及Block I/O是存储数据的两种不同方式,即文件IO及块IO,File I/O方式中,操作系统需要对硬盘进行格式化,在硬盘分区上产生一个文件系统结构,操作系统通过文件系统来实现对硬盘数据的定位;在Block I/O方式中,操作系统不需对硬盘进行格式化,并不在硬盘分区上产生文件系统,应用程序绕过OS直接定位读取Raw Disk(裸盘)中的数据。
通过Block I/O (Raw I/O)来直接定位硬盘的数据,效率较高,检索方便、无碎片。
关于稳定性。机器也会犯病,我们当然有趴窝的时候。我们的故障点可能在于服务器硬件、存储硬盘、网络、软件等环节。上面说了,我们手下一般16~32个小弟(IPC),我们停工了,他们辛辛苦苦加工出来的东西(视频流)没有上家了,导致视频没有的长期存储功能,短期存储可能基于个别IPC的小金库,有一点点。所以我们需要冗余功能(Redundency),简单讲就是每10台左右NVR,多出来一台冗余NVR候着,他平时不干活,我们当中有人休病假(宕机),他自动识别并接管,一旦病好了,再恢复原状,冗余机就继续一边凉快去。
智能化、物联网时代,不说自己智能都不好意思出来混。我们家族当然也智能化的路上前进。早期的智能NVR,即带视频分析功能的NVR,Smart NVR,将视频分析算法内置于NVR内,采用基于服务器方式执行视频内容的分析过程。此架构的优点是算法由服务器的CPU完成,因此,对前端设备如编码器、网络摄像机可以不做任何设置或改动,即可过渡到智能系统。另外,如果日后需要进行通道的分析功能调整,升级算法,只需要针对NVR,比较容易实施。未来的智能化可以对视频进行识别、分析、描述,将非结构化数据转变化结构化数据提供给管理平台。目前已有NVR产品成功引入图像识别分析类的智能技术应用,实现视频摘要、智能检索、智能告警等功能。
我的实战经验分享:以下图的系统架构为案例进行说明,在Site A及Site B分别有16台摄像机(2台8路编码器),编码器的码流情况设定为4CIF@RT@2M。共32路摄像机通道指定到核心网的一台NVR服务器上,NVR与磁盘阵列通过SCSI通道直接连接进行存储,所有录像需要保存7天;控制中心设置9台监视器构成的电视墙,进行实时解码显示;控制中心设置1台客户工作站,用来对任意4个通道进行录像回放工作(Playback);远程有1台客户工作站(Live),用来对任意4个通道进行实时视频浏览工作。
NVR部署的关键在于NVR的数量设计、存储空间设计及网络带宽设计。因此,在设计、选型NVR系统之前,必须明确如下事宜:
摄像机的数量及分布情况。
视频通道的码流设置,如帧率、分辨率等(其实质是确定码流)。
控制中心的电视墙位置(在网络中)。
NVR及磁盘阵列的位置(在网络中)。
客户端的数量、位置及其应用情况(进行回放、实时显示等)。
归档服务器的位置及视频备份的模式(全部归档、部分归档等情况)。
虽然简单,但已经足够让我们了解系统设计中需要注意的主要事项。从图中可以看出,系统的主要构成部分是编码器、NVR、解码器及客户工作站,从中可以快速提炼出如下信息。
通道情况:通道数量32ch,码流2Mbps。
实时监视(Live)视频流9ch×2Mbps+4ch×2Mbps。
实时存储(Record)视频流32ch×2Mbps。
实时回放(Playback)视频流4ch×2Mbps。
最后,说一个虚无缥缈的事,云计算会不会终结NVR? 终结倒是谈不上,但是是个趋势。很简单,NVR既然是通用软件,如同CRM/OA软件一样,直接部署在阿里巴巴或者亚马逊的云端就完了,用户需要购买的,就是IPC(或者租用),以及阿里巴巴或者亚马逊的云存储服务资源(月租形式),目前的主要是带宽问题。机场、地铁、铁路,应该是NVR云化的排头兵。
最后八卦一下圈里的事儿。先说外来的和尚,早期的当属以色列NICE,BOSCH,MILESTONE,在产品理念及案例上,诸多亮点;国内的宇视,跟国外产品套路接近,“块存储”亮点颇多,引领一阵风骚和争议;科达提出了“NVR, DVR终结者的口号”;后起之秀东方网力,提出了很不错的NVR中间件概念;海康和大华,作为DVR起家的两个龙头,在NVR产品上,四平八稳;模拟巨头TYCO,PELCO的 NVR,影响力不大;日系SONY, 松下的NVR,听说过,真没见过!
我是一个录像机(NVR)的更多相关文章
- 网络编程基础【day10】:我是一个线程(四)
本节内容 1.第一回 初生牛犊 2.第二回 渐入佳境 3.第三回 虎口脱险 4.第四回 江湖再见 第一回 初生牛犊 我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里 ...
- 网络编程基础【day10】:我是一个进程(三)
本节内容 1.引子 2.进程的诞生 3.线程 4.争吵 一.引子 我听说我的祖先们生活在专用计算机里, 一生只帮助人类做一件事情,比说微积分运算 了.人口统计了 .生成密码.甚至通过织布机印花 ! ...
- 趣说Java:我是一个线程
第一回 初生牛犊 我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴. 我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说 ...
- 曾经我是一个只会excel的数据分析师,直到我遇到了……
我是一个数据分析师. 准确来说我是一个当年只会excel数据透视表,就天不怕地不怕地来当数据分析师的人.当年的某一天,我的老板Q我: 小刘啊,我小姨子给了我一个全国市委书记的名单,你帮我看看,有什么规 ...
- 我是一个CPU:这个世界慢!死!了!
最近小编看到一篇十分有意思的文章,多方位.无死角的讲解了CPU关于处理速度的理解,看完之后真是豁然开朗.IOT时代,随着科技的发展CPU芯片的处理能力越来越强,强大的程度已经超乎了我们的想象.今天就把 ...
- 我是一个MySQL小白
我是一个MySQL小白 第一回早起装扮 “mysql,Oracle,SQL-SERVER你们三个 起床没?”,清晨七点多师父喊道. “师父,我(mysql)哪敢睡觉呀,我还在查询表呢,有客户的密码忘记 ...
- 大家好,我是一个JAVA初学者,想在这里记下自己学习过程中的点点滴滴,请多多关照
大家好,我是一个JAVA初学者,想在这里记下自己学习JAVA的点点滴滴,请多多关照. 以前一直在QQ空间里记录的,但感觉有些麻烦,而且有些东西自己理解的并不完善甚至都不正确,现在开始在这里重新记录,从 ...
- 我是一个线程 - IBM刘欣
来自:码农翻身(微信号:coderising) 作者:IBM刘欣 我是一个线程,我一出生就被编了个号: 0×3704,然后被领到一个昏暗的屋子里, 这里我发现了很多和我一模一样的同伴. 我身边的同伴0 ...
- GDG Xi'an DevFest 2019 闪电演讲 -《假如我是一个浏览器》PPT(经典多图,建议收藏)
GDG Xi'an DevFest2019演讲PPT链接: http://tmp.link/f/5dd9e6bf461b6 闪电演讲<假如我是一个浏览器>PPT链接: https://gi ...
随机推荐
- 2018普及组摆渡车洛谷5017(dp做法)
啦啦啦,这一篇是接上一篇的博客,上一篇是记忆化搜索,而这一篇是dp+前缀和小技巧 dp这种玄学做法我这种蒟蒻当然不是自己想出来的,参考https://blog.csdn.net/kkkksc03/ar ...
- Intellij IDEA 最新旗舰版注册激活破解(2018亲测,可用)
1.2017年亲测 参考:https://www.haxotron.com/jetbrains-intellij-idea-crack-123/ 安装IntelliJ IDEA 最新版 启动Intel ...
- Elasticsearch5.5安装部署
一 ES基础知识介绍 Near Reamtime(NRT) Elasticsearch 是一个实时的查询平台,从索引数据开始到索引数据结束几乎是1s的时间 Cluster 集群是一个或多个节点的集合, ...
- HTML table导出到Excel中的解决办法
第一部分:html+js 1.需要使用的表格数据(先不考虑动态生成的table) <table class="table tableStyles" id="tabl ...
- 安装一个Linux
Linux--虚拟机的的安装: 首先需要一个可执行(VMware-workstation-full-14.1.2-8497320.exe)的文件和一个Linux(CentOS-7-x86_64-DVD ...
- 积累的关于linux的安装卸载软件基本命令
Linux安装.卸载软件 在linux环境中,尤其是cenos中安装过一些软件,一般是二进制安装与源码安装,现小结一下linux中的安装与卸载. 一.通常Linux应用软件的安装包有三种: 1) ...
- 2019-04-11-day030-网络编程并发
内容回顾 黏包 tcp协议为了保证数据的可靠传输和传输效率 合包机制 : 连续多条短数据会合并成一条 拆包机制 : 一个过大的数据会在发出之前被拆成几个小包 tcp的黏包发生在两端: 发送端 : 合包 ...
- 关于Redis缓存数据库
将数据存入缓存1.(会先从数据库查数据,数据库没有会从缓存中拿,没有则会从数据库拿.且加入缓存)@Cacheable(name="命名空间",key="#xxx^&quo ...
- DAY 04 while和for循环
1.结束while循环的两种方式: 1.修改条件:等到下一次循环开始判断条件为假时才会结束循环,剩余代码块依旧会执行 2.break:直接结束本层循环,跳过剩余代码 2.while+continue ...
- # 20175120 2018.3.10 《Java程序设计》第2周学习总结
## 教材学习内容总结第二章内容1.标识符第一个字符不能是数字字符不能是关键字和true\false\null2.8个基本数据类型boolean int byte short long float d ...