用于视频监控系统的故障恢复方法和装置
1.相关申请
2.本技术是申请号为201610847715.x、申请日为2016年9月23日、发明名称为“用于视频监控系统的故障恢复方法和装置”的发明专利申请的分案申请。
技术领域
3.本公开的实施例涉及视频监控系统,并且更具体地涉及用于视频监控系统的故障恢复方法和装置。
背景技术:4.目前,随着安全监控需求的不断增长,视频监控系统市场持续扩大。伴随视频监控系统的大量部署,人们希望以较低的成本来获得更为可靠的视频监控系统。传统视频监控系统包括相机、视频管理系统服务器和存储服务器。在部署视频监控系统的过程中,既需要考虑监控覆盖的范围和故障恢复能力,又需要考虑部署相机、视频管理系统服务器、存储服务器等物理设备的成本。
技术实现要素:5.本公开的实施例提供用于视频监控系统的故障恢复方法和装置。
6.根据本公开的第一方面,提供了一种用于视频监控系统的故障恢复方法,该视频监控系统包括由多个机器托管的多个相机,该方法包括:在第一机器处,接收指示第二机器发生故障的消息,第一机器和第二机器分别托管多个相机中的第一组相机和第二组相机;确定第一机器的可用资源以及第一机器和第二机器的负载;基于可用资源和负载,设置第一组相机和第二组相机中至少一组的参数,以便由第一机器接管第二组相机。
7.根据本公开的第二方面,提供了一种用于视频监控系统的故障恢复装置,该视频监控系统包括由多个机器托管的多个相机,该装置包括:消息接收模块,被配置为在第一机器处接收指示第二机器发生故障的消息,第一机器和第二机器分别托管多个相机中的第一组相机和第二组相机;控制模块,被配置为:确定第一机器的可用资源以及第一机器和第二机器的负载;基于可用资源和负载,设置第一组相机和第二组相机中至少一组的参数,以便由第一机器接管第二组相机。
附图说明
8.通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
9.图1示出了根据本公开的实施例的视频监控系统的框图;
10.图2示出了根据本公开的实施例的用于视频监控系统的故障恢复方法的流程图;以及
11.图3示出了根据本公开的实施例的用于视频监控系统的故障恢复装置的框图。
具体实施方式
12.下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
13.在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其它明确的和隐含的定义。
14.如以上所描述的,传统视频监控系统包括相机、视频管理系统服务器和存储服务器。相机用于从不同的监控地点实时收集视频数据。视频管理系统被安装在一些物理机器中,该物理机器通常是视频管理系统服务器。视频管理系统软件从相机获取视频流并且将这些视频流存储到存储服务器中。
15.当安装视频管理软件的物理机器发生故障时,由该物理机器所托管的相机所收集的视频流需要迁移到另一物理服务器。可以通过设置冗余服务器或待机服务器的方式来确保故障发生时通过相机采集的视频流能够被有效地存储。伴随视频监控系统的大量部署,人们希望以较低的成本来获得更为可靠的视频监控系统。在部署视频监控系统的过程中,考虑到监控覆盖的范围和故障恢复能力,需要设置冗余服务器或待机服务器的方式。然而,设置冗余服务器或待机服务器的方式会大幅度增大系统的成本。
16.为了至少部分地解决上述问题以及其它潜在问题,本公开的示例实施例提出了用于视频监控系统的故障恢复方法和装置。根据本公开的实施例,当托管一组相机的机器(虚拟机和/或物理机器)发生故障时,原本托管另一组相机的机器可以根据当前的负载以及可用资源情况,对这两组相机的参数进行调节,从而将发生故障的机器所托管的相机以最为适当的方式切换给其他机器。
17.图1示出了根据本公开的实施例的视频监控系统100。视频监控系统100包括至少一个相机和至少一个机器。现在以至少一个相机包括第一组相机110a和第二组相机110b并且至少一个机器包括第一机器120a和第二机器120b为例进行说明,其中第一组相机110a由第一机器120a所托管,第二组相机110b由第二机器120b所托管。注意,这里使用的术语“相机”包括能够捕获、处理和/或记录视频和/或图像的任何适当设备。第一组相机110a和第二组相机110b分别可以包括一个或多个相机。
18.视频监控系统100可以是闭路电视cctv监控系统或ip监控系统。第一组相机110a和第一机器120a之间以及第二组相机110b和第二机器120b之间可以是有线连接或无线连接。第一组相机110a和第二组相机110b可以是枪式相机、球型相机等;第一组相机110a和第二组相机110b可以支持黑白视频或彩色视频;第一组相机110a和第二组相机110b可以带有云台、补光灯、防雨罩、防尘玻璃外壳等。第一组相机110a和第二组相机110b也可以支持红外夜视功能。
19.在某些实施例中,视频监控系统100还包括存储服务器130,第一机器120a和第二机器120b中的至少一个被安装在存储服务器130中。存储服务器130包括存储阵列和存储控制器。该存储阵列通常是指硬盘阵列。存储控制器可以包括处理器以及外围设备。对于存储服务器130来说,通常情况下资源没有被存储功能全部占用,这时可以使用剩余的资源来支持在存储服务器130中创建一些虚拟机。
20.通过将虚拟机安装在存储服务器130并且在虚拟机中安装视频管理系统软件以进行视频管理,可以省去专门用来安装视频管理软件的物理服务器,从而可以节省开销。存储服务器130可以具有单控制器或多控制器。相应地,虚拟机的数目可以根据控制器的数量而被确定。当然,这并非是限制性的,任何目前已知或者将来开发的利用虚拟机的方法或装置均可与本公开的实施例结合使用。
21.在某些实施例中,第一机器120a和第二机器120b分别安装有彼此可通信的视频管理系统软件。例如,视频管理系统软件可以包括记录模块、分发模块和回放模块。记录模块与相机相关联,可以将相机所获取的实时视频流存储到存储服务器130中。分发模块可以将相机所获取的实时视频发送到实时监控设备,诸如中控室的电视墙。回放模块可响应于用户的回放请求而将被存储在存储服务器130中视频取回以提供给用户,用户可在客户端显示器上播放该视频,其中用户可以使用互联网远程地播放监控视频。该视频管理系统软件还可以包括其它模块,诸如运动检测模块、去雾模块、报警模块等。
22.在某些实施例中,视频监控系统还包括用于管理该视频监控系统的管理服务器140。该管理服务器140可以独立于存储服务器130的物理机器而存在,或作为存储服务器130中的虚拟机而存在。作为一种非限制性的实施方式,管理服务器140可以实施监测视频监控系统中各个虚拟机以及在各个虚拟机上运行的视频管理系统软件的运行情况,并且在虚拟机或视频管理系统软件发生异常的情况下将该异常情况通知其它虚拟机,并且可选地由管理服务器140确定发生异常的虚拟机或视频管理系统软件所托管的相机应该被迁移到另外的哪个虚拟机进行托管。本领域技术人员将理解的是,本文中的管理服务器140也可以是视频管理系统中的某个软件模块或硬件部件被嵌入到系统中的其它设备中。
23.当第二机器120b发生故障时,第二组相机110b可被迁移到其它机器上以使得视频流能够被继续传输和存储。当第二组相机110b需要迁移到第一机器120a上时,第一机器120a可能不能够按照原来的参数支持第一组相机110a和第二组相机110b。例如,第一组相机110a包括50个采用第一视频参数的相机,第二组相机110b包括50个采用第一视频参数的相机,第一机器120a可能无法同时支持这100个采用第一视频参数的相机。针对这一问题,本公开提供了一种根据在第一机器120a上的资源状况以及负载状况来协商相机所采用的视频参数以实现故障恢复的方法。
24.图2示出了根据本公开内容的实施例的用于视频监控系统的故障恢复方法200的流程图。在某些实施例中,方法200例如可以由第一机器120a来实现。应当理解的是,方法200还可以包括未示出的附加步骤和/或可以省略所示出的步骤。本文所描述主题的范围在此方面不受限制。
25.在210,在第一机器120a处,接收指示第二机器120b发生故障的消息,第一机器120a和第二机器120b分别托管多个相机中的第一组相机110a和第二组相机110b。该指示可以由视频管理系统中的其它部件发送给第一机器120a。第一机器120a和第二机器120b之间
也可以彼此通信,由第一机器120a检测到第二机器120b的故障。故障可以是软件故障或硬件故障,并且故障可以是由于连接中断或网络阻塞造成的。
26.在220,确定第一机器120a的可用资源以及第一机器120a和第二机器120b的负载。作为非限制性的实现方式,可用资源可以指预留资源或备用资源,负载可以指机器上所支持的应用所占用的机器资源。在某些实施例中,确定第一机器120a的可用资源包括确定第一机器120a的以下至少一项:处理器资源、存储器容量、网络带宽。在某些实施例中,确定负载包括:确定第一组相机110a的第一数目;以及确定第二组相机110b的第二数目。其中第一组相机110a可以在本机上保存记录了第一数目和第二数目的列表。
27.在230,基于可用资源和负载,设置第一组相机110a和第二组相机110b中至少一组的参数,以便由第一机器120a接管第二组相机110b。在某些实施例中,设置参数包括:响应于第一机器120a的可用资源不足以支持第一机器120a和第二机器120b的负载,根据可用资源而降低参数的设置。
28.在某些实施例中,降低参数的设置包括降低帧速率,例如从30帧/秒降低到25帧/秒,或从25帧/秒降低到5帧/秒,等等。备选地或附加地,在230,可以降低图像分辨率例如从720x 480降低到352x240,等等。除此之外或者作为替代,在230,还可以改变视频的格式,例如将占用存储空间较大的格式改为需要较少存储空间的格式,等等。
29.在某些实施例中,第一机器120a和第二机器120b中的至少一个为虚拟机(vm)。虚拟机可以安装在视频管理系统的存储服务器130中。将虚拟机安装在存储服务器130中的益处之一是可以减少物理服务器的数量,从而节省系统成本。通过将虚拟机安装在存储服务器130中,既可以充分利用存储服务器130的处理器资源,又可以避免设置过多的专门用于安装视频系统管理软件的视频管理系统服务器,从而在保证覆盖范围和可靠性的同时节省成本。在某些实施例中,第一机器120a和第二机器120b分别安装有彼此可通信的视频管理系统软件,视频管理系统软件可以像被安装在物理机器中那样被安装在虚拟机中。
30.在某些实施例中,如果第一机器120a从第二机器120b接收指示故障被消除的消息,则第一机器120a可以将第二组相机110b交还给第二机器120b托管。在某些实施例中,在交还的过程中,第二组相机110b可以接收第二机器120b所发送的视频参数设置消息,并且根据该视频参数设置消息来设置自身的视频参数,然后利用设置后的参数将采集的视频传输至第二机器120b。
31.在某些实施例中,第二机器120b可以至少基于可用资源和负载来确定第二组相机110b的视频参数。该过程类似于上文所描述的第一机器120a所执行的确定可用资源和负载的过程,在此不再赘述。在某些实施例中,第一组相机110a可以接收第一机器120a所发送的视频参数设置消息,并且根据该视频参数设置消息来设置自身的视频参数,然后利用设置后的参数将采集的视频传输至第一机器120a。
32.应当理解的是,在某些实施例中,在第二机器120b的故障被修复之后可以不将第二组相机110b交还给第二机器120b托管,而是由第一机器120a继续托管第一组相机110a。在这种情况下,可以不对第一组相机110a和第二组相机110b的参数进行重新设置。是否将第二相机组110b交还给第二机器120b托管可以在系统中进行预先设置或通过向用户发送通知消息而由用户来确定。
33.在某些实施例中,第一机器120a是由视频管理系统100中的特定部件所选择用来
托管第二组相机110b的。在某些实施例中,可以将第二组相机110b的至少一部分相机迁移至第一机器110a,并且将第二组相机110b的至少一部分相机迁移至视频监控系统100中的第三机器。在第二组相机110b的至少一部分相机迁移到第三机器之前,可以同样进行可用资源和负载的确定。分配给第二机器120b和第三机器的相机的数目可以由系统进行分配。
34.图3示出了根据本公开内容的实施例的用于视频监控系统的故障恢复装置300的框图。在某些实施例中,装置300例如可以在第一机器120a上实施。装置300包括消息接收模块310和控制模块320。可以理解,列出本框图的目的仅在于使得更为容易地理解本公开,而不作为本公开实现的限制。装置300还可以包括未示出的附加模块和/或可以省略所示出的模块。
35.消息接收模块310被配置为在第一机器120a处接收指示第二机器120b发生故障的消息,第一机器120a和第二机器120b分别托管多个相机中的第一组相机110a和第二组相机110b。在某些实施例中,控制模块310还被配置为从所述第二机器接收指示所述故障被消除的消息;以及将所述第二组相机交还给所述第二机器托管。
36.控制模块320被配置为确定第一机器120a的可用资源以及第一机器120a和第二机器120b的负载;基于可用资源和负载,设置第一组相机110a和第二组相机110b中至少一组的参数,以便由第一机器120a接管所述第二组相机110b。
37.管理服务器140管理服务器140管理服务器140管理服务器140管理服务器140出于清楚的目的,在图3中没有示出装置300的某些可选模块。然而,应当理解,上文参考图1-2所描述的各个特征同样适用于装置300。而且,装置300的各个模块可以是硬件模块,也可以是软件模块。例如,在某些实施例中,装置300可以部分或者全部利用软件和/或固件来实现,例如被实现为包含在计算机可读介质上的计算机程序产品。备选地或附加地,装置300可以部分或者全部基于硬件来实现,例如被实现为集成电路(ic)、专用集成电路(asic)、片上系统(soc)、现场可编程门阵列(fpga)等。本公开的范围在此方面不受限制。
38.本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
39.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
40.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计
算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
41.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
42.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
43.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
44.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
45.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
46.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨
在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文公开的各实施例。