一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式监视系统的基于低延迟浏览器的客户端界面的制作方法

2022-02-20 12:58:26 来源:中国专利 TAG:

分布式监视系统的基于低延迟浏览器的客户端界面
1.相关申请的交叉引用
2.本技术涉及提交日期[卷号stl 074916.00]标题为“parameter based load balancing in a distributed surveillance system”的美国专利申请号_____、提交日期[卷号stl 074919.00]标题为“selective use of cameras in a surveillance system”的美国专利申请号_____、提交日期[卷号stl 074922.00]标题为“distributed surveillance system with abstracted functional layers”的美国专利申请号___、提交日期[卷号stl 074923.00]标题为“distributed surveillance system with distributed video analysis”的美国专利申请号____,所有这些申请专利都与此同时提交,并且通过引用具体地并入以用于它们公开或教导的全部。


背景技术:

[0003]
视频监视系统对于许多设施来说是宝贵的安全资源。特别是,摄像技术的进步使得以经济上可行的方式安装视频摄像头成为可能,以为设施提供稳健的视频覆盖,从而协助安保人员维护现场安全。此类视频监视系统还可包括记录允许存储视频数据的特征。存储的视频数据还可帮助实体提供更稳健的安全性,从而允许有价值的分析或协助调查。实时视频数据馈送也可以作为设施安全的一部分在设施处实时监控。
[0004]
虽然视频监视技术的进步增大了此类系统的能力和普及率,但限制这些系统的价值的诸多缺点仍然存在。例如,虽然摄像技术已大幅改进,但由此类系统生成的数据量不断加大。这产生了如何以易于检索或另外处理的方式有效地存储大量视频数据的问题。继而,视频监视数据的有效管理也变得越来越困难。
[0005]
提出的用于管理视频监视系统的方法包括使用网络视频录像机来捕获和存储视频数据,或使用企业服务器进行视频数据管理。如下文将更详细地解释,此类方法各自呈现出独特的挑战。因此,对于具有稳健视频数据管理和访问的改进的视频监视系统的需求仍然存在。


技术实现要素:

[0006]
本公开大体上涉及一种分布式视频监视系统,所述分布式视频监视系统包括能够在多个摄像头节点处处理和/或存储来自多个视频摄像头的视频数据的分布式处理资源。本公开的一个特定方面包括将视频数据处理为用于将视频数据低延迟递送至客户端的实时传输机制。特别地,传输机制可以利用编码视频数据格式、容器格式和通信协议,其允许在客户端处使用标准web浏览器解码和呈现视频数据,而无需下载、安装或维护对本机浏览器技术的任何扩展、插件或其他修改。在本公开的另外方面,可以至少部分地基于对所述数据的请求的特性而选择用于将视频数据递送至客户端的传输机制。
[0007]
因此,本公开的第一方面包括一种用于在客户端的标准浏览器界面中呈现来自分布式视频监视系统的视频数据的方法。所述方法包括在多个视频摄像头处捕获视频数据;以及通过通信网络将所述视频数据的第一部分从所述多个视频摄像头的第一子集传送到
第一摄像头节点并且通过所述通信网络将所述视频数据的第二部分从所述多个视频摄像头的第二子集传送到第二摄像头。所述方法还包括从所述客户端接收对视频数据的请求,所述视频数据包括所述视频数据的所述第一部分或所述视频数据的所述第二部分中的至少一个部分;以及响应于在所请求的视频数据的相应摄像头节点处的所述请求而准备所请求的视频数据。所述准备包括将所述视频数据编码成包括编码视频包的编码视频格式;将所述编码视频包打包成数字容器格式;以及确定用于传输所述数字容器格式的所述编码视频包的通信协议。继而,所述方法还包括使用所述通信协议将所述编码视频包传送到客户端装置处的标准web浏览器。所述标准web浏览器可操作以解码所述编码视频包形成所述数字容器格式,以使用所述标准web浏览器的本机功能在所述标准web浏览器的用户界面上呈现所请求的视频数据。
[0008]
本公开的另一方面包括一种用于呈现来自分布式视频监视系统的视频数据的方法。所述方法包括在多个视频摄像头处捕获视频数据;以及通过通信网络将所述视频数据的第一部分从所述多个视频摄像头的第一子集传送到第一摄像头节点并且通过所述通信网络将所述视频数据的第二部分从所述多个视频摄像头的第二子集传送到第二摄像头。所述方法还包括从客户端接收查看所述视频数据的请求,所述视频数据包括所述视频数据的所述第一部分或所述视频数据的所述第二部分中的至少一个部分;以及确定所述请求的特性。继而,所述方法包括响应于在所请求的视频数据的相应摄像头节点处的所述请求而准备所请求的视频数据。所述准备包括基于所述请求的所述特性将所述视频数据编码成包括编码视频包的编码视频格式,基于所述请求的所述特性将所述编码视频包打包成数字容器格式,以及基于所述请求的所述特性确定用于传输所述数字容器格式的所述编码视频包的通信协议。继而,所述方法包括响应于所述请求,使用所述通信协议将所述数字容器格式的所述编码视频包传送到所述客户端。
[0009]
本发明内容被提供来以简化形式引入在下面在具体实施方式中进一步描述的一些构思。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
[0010]
本文还描述并叙述了其他实施方式。
附图说明
[0011]
图1描绘了现有技术视频监视系统的两个示例。
[0012]
图2描绘了根据本公开的分布式视频监视系统的示例。
[0013]
图3描绘了分布式视频监视系统的示例主节点的示意图。
[0014]
图4描绘了分布式视频监视系统的示例摄像头节点的示意图。
[0015]
图5描绘了分布式视频监视系统的抽象摄像头层、处理层和存储层的示例。
[0016]
图6描绘了与分布式视频监视系统可操作地通信以接收实时数据以用于在客户端的本机浏览器界面中呈现的客户端的示例。
[0017]
图7描绘了分布式视频监视系统的分布式视频分析的示例。
[0018]
图8描绘了分布式视频管理系统的多个视频摄像头和摄像头节点的第一摄像头分配配置的示例。
[0019]
图9描绘了响应于检测到摄像头节点不可用而对分布式视频管理系统的多个视频
摄像头和摄像头节点进行的第二摄像头分配配置的示例。
[0020]
图10描绘了响应于在摄像头节点中的一个处分配参数的变化而对分布式视频管理系统的多个视频摄像头和摄像头节点进行的第二摄像头分配配置的示例。
[0021]
图11描绘了分布式视频管理系统的多个视频摄像头和摄像头节点的第二摄像头分配配置的示例,在所述分布式视频管理系统中,基于视频摄像头的优先级将视频摄像头与任何摄像头节点断开。
[0022]
图12描绘了以实时传输格式在分布式视频管理系统中格式化视频数据以供在客户端处的标准web浏览器应用程序呈现的方法的示例操作。
[0023]
图13描绘了将视频数据处理为基于对视频数据的请求的特性而选择的传输机制的方法的示例操作。
[0024]
图14描绘了可以促进本公开的各方面的处理装置。
具体实施方式
[0025]
虽然以下公开内容中的示例易受各种修改和替代形式的影响,但具体示例在附图中示出并且在本文中详细描述。然而,应当理解,并非旨在将本公开的范围限于所公开的特定形式,而是本公开将涵盖落入权利要求所限定的范围内的所有修改、等同方案和替代方案。
[0026]
图1描绘了视频监视系统的系统架构和管理的两种现有技术方法。这两种方法包括图1的顶部部分所示的基于设备的系统1和图1的底部部分中的基于企业服务器的方法20。在基于设备的系统1中,视频摄像头10与网络15可操作地通信。设备12也与网络15通信。设备12从视频摄像头10接收视频数据,并在连接到设备12的监控器14上显示视频数据。
[0027]
鉴于实现系统1所需的硬件的简单性,基于设备的系统1通常提供成本相对较低的解决方案。然而,由于大多数设备12的处理能力有限,因此基于设备的系统所支持的摄像头的数目可能受到限制,因为所有视频摄像头10都仅向设备12提供视频数据以用于在显示器14上处理和显示。此外,系统不可扩展,因为一旦达到设备12的处理能力(例如,由于系统1中的摄像头数目),就不可再提供额外摄像头的扩展。相反,为了补充系统1,必须在不与现有设备12集成的情况下将全新设备12实现为单独的独立系统。此外,由于设备12的处理能力相对有限,因此基于设备的系统1为视频数据分析或存储容量提供有限的能力。另外,此类系统1通常促进在任何给定时间查看和/或存储来自视频摄像头10的有限数目的实时视频数据馈送,并且通常允许仅在单个监控器14或连接到设备12的有限数目的监控器上呈现此类视频。也就是说,为了回看实时或存档视频数据,用户必须物理上存在于设备12和监控器14的位置处。
[0028]
基于企业服务器的系统20通常包括多个与网络15可操作地通信的视频摄像头10。服务器实例16还与网络15通信,并且从所有摄像头10接收所有视频数据以用于处理和存储数据。服务器16通常包括存储阵列,并且充当数字视频录像机(dvr)以存储从摄像头10接收的视频数据。客户端18可以连接到网络15。客户端18可以允许远离服务器16的物理位置查看来自服务器16的视频数据(例如,与其中监控器14直接连接到设备12的基于设备的系统1相反)。然而,服务器16通常包括平台依赖专有软件,所述平台依赖专有软件用于消化来自摄像头10的视频数据以供存储在服务器16的存储阵列中。
[0029]
此外,服务器16和客户端18包括平台依赖专有软件,以促进服务器16与客户端18之间的通信。因此,用户或企业必须在期望用于访问视频数据和/或控制系统20的任何客户端18上购买并安装平台依赖客户端软件包。这限制了用户从系统20访问视频数据的能力,因为任何用户必须能够访问配备有适当平台依赖专有软件的预配置客户端18,这需要额外的费用来许可此类软件。
[0030]
与基于设备的系统1相比,基于企业服务器的系统20通常是可以针对大型企业安装的相对昂贵的实施方案。例如,当单个服务器16处理来自系统的所有视频数据的所有处理和存储时,此类系统20通常需要非常强大的服务器16来促进对来自摄像头10的视频数据的管理。此外,服务器16和客户端18的平台依赖专有软件需要支付许可费用,许可费用可以基于用户可用的摄像头10的数量和/或特征(例如,数据分析特征)。更进一步地,允许客户端18的功能性的专有软件必须作为独立的软件包进行安装和配置。继而,在客户端18处安装和维护软件可能会增加系统1的复杂性。更进一步地,如果用户希望使用不同的客户端18装置,则必须首先向任何此类装置提供操作所需的软件资源。因此,访问和管理系统1的能力受到限制。
[0031]
虽然这种基于企业服务器的系统20可以被缩放,但系统20的扩展的资本成本很高。具体地,尽管相对于设备12计算复杂性增加,服务器16确实对其可支持的摄像头10的数目有所限制,但此限制通常高于设备12可支持的摄像头10的数目。在任何方面,一旦达到摄像头10的最大数目,任何额外的摄像头10实际上都需要利用额外的服务器16或通过增加服务器16的容量以及增加额外的服务器16或容量的许可费用支付来购买新系统20。此外,需要在客户端18处安装的专有软件通常是平台依赖的,并且对于希望与系统20交互的任何客户端18都是必需的。这增加了任何客户端18的复杂性和成本,并且限制了系统20的功能性。更进一步地,基于企业服务器的系统20包括静态摄像头到服务器映射,使得在服务器不可用或发生故障的情况下,映射到服务器16的所有摄像头10对于实时视频流或视频数据的存储变得不可用,因此使得系统20在这种故障的情况下无效。
[0032]
因此,本公开涉及一种包括分布式架构的分布式视频管理系统(vms)100。此vms 100的一个示例描绘于图2中。vms 100的分布式架构有助于实现优于上述基于设备的系统1或基于服务器的系统20的许多益处。通常,vms 100包括可相对于彼此抽象的三个功能层,以提供动态地重新配置视频摄像头110、用于处理视频数据的摄像头节点120和vms 100内的存储容量150/152之间的映射的能力。虽然下文更详细地论述了这一点,但vms 100的功能层的抽象促进了高度动态和可配置的系统,所述系统易于扩展、对组件故障稳健、能够适应给定事件且可经济有效地进行安装和操作。因为功能层是抽象的,所以不需要利用静态组件到组件映射。也就是说,任何一个或多个视频摄像头110可以与多个摄像头节点120中的任一个相关联,所述多个摄像头节点可以从相关联的视频摄像头110接收视频数据以处理来自相关联的视频摄像头110的视频数据。继而,摄像头节点120处理视频数据(例如,用于存储在存储卷150/152中或用于实时流式传输到客户端装置130以实时观看视频数据)。摄像头节点110可操作以对相关联摄像头110的视频数据或从(例如,相关联视频摄像头100或非相关联视频摄像头110的)存储的视频数据执行视频分析。更进一步地,当系统100的存储资源也从摄像头节点120提取时,视频数据可以以允许由系统的任何摄像头节点120检索的灵活方式存储。
[0033]
在这方面,在系统中的任何给定节点发生故障时,指派给故障摄像头节点的摄像头可以被重新指派(例如,自动地)给另一个摄像头节点,使得视频数据的处理实际上是不间断的。此外,可以响应于节点处的实际处理状况动态地修改摄像头到节点的关联(例如,摄像头可以从执行复杂视频分析的节点关联到另一节点)。类似地,因为摄像头节点120可以是相对便宜的硬件组件,所以可以容易地将额外摄像头节点120添加(例如,以即插即用的方式)到系统100以提供高度微粒化扩展能力(例如,相对于必须在仅提供低微粒化扩展的基于服务器的系统20的情况下部署全新的服务器实例)。
[0034]
vms系统100的灵活性延伸到系统中的客户端130。客户端130可以指递送到装置以在装置处执行的客户端装置或软件。在任何方面,客户端130可以用来查看vms 100的视频数据(例如,实时地或从系统100的存储装置150/152)。具体地,本公开设想了在各种计算装置上通常可用且可执行的标准web浏览器应用程序的使用。如下文更详细地描述,vms 100可以利用每个摄像头节点120处的处理能力将视频数据处理为适当的传输机制,所述传输机制可以至少部分地基于对视频数据的请求的上下文。作为一个示例,来自客户端130的用于从摄像头110实时地查看实时视频数据的请求可导致摄像头节点120将摄像头110的视频数据处理成实时、低延迟格式以递送到客户端130。具体地,这种低延迟协议可以包括以下传输机制:允许使用标准web浏览器、仅使用标准web浏览器的本机功能或通过由发送到客户端130以供在标准web浏览器中呈现的网页提供的可执行指令来在客户端接收和呈现数据(例如,无需在客户端以第三方应用程序、浏览器插件、浏览器扩展等形式安装外部软件)。继而,执行标准web浏览器的任何计算装置都可以用作客户端130来访问vms 100,无需任何专有或平台依赖软件,也无需对客户端130进行任何预配置。这可以允许由操作任何操作系统的任何计算系统访问,只要计算装置能够执行标准web浏览器即可。因此,台式计算机、笔记本电脑、平板电脑、智能手机或其他装置可以充当客户端130。
[0035]
vms 100的抽象架构还可以允许灵活处理数据。例如,vms 100的摄像头节点120可以将分析模型应用于在摄像头节点120处处理的视频数据以对视频数据执行视频分析。分析模型可以生成关于视频数据的分析元数据。分析方法的非限制性示例包括对象检测、对象跟踪、人脸识别、图案识别/检测或任何其他适当的视频分析技术。考虑到vms 100的视频摄像头110与摄像头节点120之间的抽象化,对视频数据的处理的配置可以是灵活且可适应的,这可以允许将甚至相对复杂的分析模型应用于一些或所有视频数据,从而响应于峰值分析负载而进行动态预配置。
[0036]
继续参考图2,示意性地描绘了根据本公开的用于管理监视系统中的边缘监视装置的vms 100。vms 100包括多个摄像头110,每个摄像头与网络115可操作地通信。例如,如图2所示,示出了摄像头110a到110g。然而,应当理解,可以不受限制地在根据本公开的vms 100中提供额外或更少的摄像头。
[0037]
摄像头110可以是互联网协议(ip)摄像头,所述ip摄像头能够提供来自摄像头110的分组化视频数据以供在网络115上传输。网络115可以是局域网(lan)。在其他示例中,网络115可以是任何适当的通信网络,包括公共交换电话网(pstn)、内联网、广域网(wan)(诸如互联网)、数字用户线(dsl)、光纤网络或不受限制的其他适当网络。视频摄像头110可各自独立地可与多个摄像头节点120中的给定一个相关联(例如,可指派给多个摄像头节点120中的给定一个)。
[0038]
因此,vms 100还包括多个摄像头节点120。例如,在图2中,示出了三个摄像头节点120,包括第一摄像头节点120a、第二摄像头节点120b和第三摄像头节点120c。然而,应当理解,在不脱离本公开的范围的情况下,可以提供额外或更少的摄像头节点120。此外,摄像头节点120可以在任何时间添加到系统100或从系统100移除,在这种情况下,可以自动地重新配置摄像头到节点的指派或映射。每个摄像头节点120还可以与网络115可操作地通信,以促进从与每个相应节点120相关联的摄像头110中的一个或多个接收视频数据。
[0039]
vms 100还包括至少一个主节点140。主节点140可操作以管理摄像头节点120的操作和/或配置,以从摄像头110接收和/或处理视频数据,协调vms 100的存储资源,生成和维护与vms 100的捕获视频数据有关的数据库,并且/或者促进与客户端130的通信以用于访问系统100的视频数据。
[0040]
虽然示出并描述了单个主节点140,但主节点140可包括负责某些系统管理功能的摄像头节点120。并不是主节点140的所有管理功能都需要由单个摄像头节点120执行。在这方面,虽然出于简单目的而描述单个主节点140,但可以理解的是,本文关于单个主节点140描述的主节点功能实际上可以分布在摄像头节点120中的不同摄像头节点之间。因此,给定摄像头节点120可以充当主节点140,以用于协调摄像头节点120的摄像头指派,而另一个摄像头节点120可以充当主节点140,以用于维护关于系统的视频数据的数据库。因此,如下文将更详细地描述,主节点140的各种管理功能可以分布在摄像头节点120中的各种摄像头节点之间。因此,虽然示出了单个给定主节点140,但可以理解的是,摄像头节点120中的任一个可以充当主节点140以用于系统100的不同的相应功能。
[0041]
此外,主节点140的各种管理功能可以经受主导选择以将此类功能分配到摄像头节点120中的不同摄像头节点以执行主节点功能。例如,可以使用主导选择技术将主节点140的作用分配给给定摄像头节点120,使得主节点140的所有管理功能都分配给给定摄像头节点120。或者,管理功能中的个别管理功能可以使用主导选择单独地分配到一个或多个摄像头节点120。这提供了稳健的系统,其中甚至执行一些管理功能的主节点140或摄像头节点120的不可用性也可以通过应用主导选择来选择系统中的新的主节点140或将管理功能性重新分配到新的摄像头节点120来容易地纠正。
[0042]
摄像头节点120和主节点140的硬件可以相同。在其他示例中,可以提供可具有与其他摄像头节点120不同的处理容量(例如,在处理器和/或存储器容量方面能力更强或更弱的硬件)的专用主节点140。此外,并非所有摄像头节点120都具有相同的处理能力。例如,某些摄像头节点120可以包括相对于其他摄像头节点120增加的计算规格,包括例如增加的存储器容量、增加的处理器容量/速度和/或增加的图形处理能力。
[0043]
如可以理解的,vms 100可以将来自视频摄像头110的视频数据存储在vms 100的存储资源中。在一个实施方式中,可以在一个或多个不同示例配置中提供存储容量。具体地,在一个示例中,每个摄像头节点120和/或主节点140在每个相应节点处可具有附接的存储装置152。在这方面,每个相应节点可将由节点处理的视频数据元数据和在节点处生成的任何元数据存储在每个相应节点处的对应附接存储装置152处,以用于在节点120处处理的视频数据。在替代布置中,在每个摄像头节点120和主节点140处本地附接的存储装置152可包括抽象成逻辑存储单元150的物理驱动器。在这方面,可能的情况是,在节点中的第一节点处处理的视频数据可以至少部分地传送到节点中的另一节点以用于存储数据。在这方
面,逻辑存储单元150可以呈现为可由系统100的任何节点120访问的抽象存储装置或存储资源。逻辑存储单元150的实际物理形式可以采用任何适当形式或形式组合。例如,与每个节点相关联的物理驱动器可包括存储阵列,诸如raid阵列,其形成可由任何摄像头节点120或主节点140寻址的单个虚拟卷。附加地或可替代地,逻辑存储单元150可以与摄像头节点120和主节点140也与之通信的网络115可操作地通信。在这方面,逻辑存储单元150可包括能够从任何摄像头节点120接收数据的网络附接存储(nas)装置。逻辑存储单元150可包括摄像头节点120本地的存储装置,或可包括远程存储装置,诸如基于云的存储资源等。在这方面,虽然逻辑存储单元150和本地附接的存储装置152两者都示出在图2中,但本地附接的存储装置152可包括逻辑存储单元150的至少一部分。此外,vms 100不必包括两种类型的存储装置,这仅出于说明在图2中示出。
[0044]
进一步参考图3,示出了说明主节点140的示例的示意图。主节点140可包括用于管理vms 100的功能性的多个模块。如上文所描述,虽然示出了包括主节点模块的单个主节点140,但应理解,任何摄像头节点120都可以充当主节点140以用于主节点模块的任何单独的功能性。也就是说,主节点140对于主节点功能性中的任何一个或多个的作用可以分布在摄像头节点120之间。在任何方面,对应于主节点140的模块可包括web服务器142、摄像头分配器144、存储管理器146和/或数据库管理器148。另外,主节点140可包括网络接口126,所述网络接口促进vms 100的主节点140与视频摄像头110、摄像头节点120、存储装置150、客户端130或其他部件之间的通信。
[0045]
主节点140的web服务器142可以协调与客户端130的通信。例如,web服务器142可以将用户界面(例如,限定浏览器如何呈现用户界面的html代码)传送到客户端130,这允许客户端130在标准浏览器应用程序中呈现用户界面。用户界面可包括用于以下文更详细地描述的方式检索和显示来自vms 100的视频数据的设计元件和/或代码。
[0046]
关于摄像头分配器144,主节点140可以促进摄像头分配或指派,使得摄像头分配器144创建并执行摄像头到节点的映射,以确定哪个摄像头节点120负责处理来自视频摄像头110的视频数据。也就是说,与基于设备的系统1或基于企业服务器的系统50相比,vms 100的视频摄像头110的子集可以被指派给不同的摄像头节点120。例如,摄像头分配器144可操作以与摄像头110通信,以向视频摄像头110提供关于摄像头节点120的指令,视频摄像头110将发送其视频数据。或者,摄像头分配器144可以指示摄像头节点120与视频摄像头110中的特定视频摄像头建立通信并从中接收视频数据。摄像头分配器144可以创建此类摄像头到节点的关联,并在数据库或其他数据结构中记录所述关联。在这方面,系统100可以是分布式系统,因为摄像头节点120中的任一个可以接收和处理来自视频摄像头110中的任何一个或多个的视频数据。
[0047]
此外,摄像头分配器144可操作以在负载平衡过程中动态地重新配置摄像头到节点的映射。在这方面,摄像头分配器144可以监控每个摄像头节点120处的分配参数,以确定是否修改摄像头到节点的映射。在这方面,可以监控vms 100的变化,并且摄像头分配器144可以响应于将摄像头分配从第一摄像头分配配置修改成第二摄像头分配配置以改进或维持系统性能。分配参数可以是被监控并用于确定摄像头分配的多个参数中的任何一个或多个。因此,分配参数可以响应于vms 100中可能发生的许多事件而改变,如下文更详细地描述。
[0048]
例如,在故障、功率损失或导致摄像头节点120不可用的另一事件的情况下,摄像头分配器144可以检测到或以其他方式被通知摄像头节点不可用。继而,摄像头分配器144可以将先前与不可用节点相关联的视频摄像头重新指派给另一个节点120。摄像头分配器144可以与重新指派的摄像头110通信以更新与新的摄像头节点120通信的指令。或者,新指派的摄像头节点可以假定与来自视频摄像头110的视频数据建立联系并处理来自视频摄像头110的视频数据的作用,所述视频摄像头先前与不可用的摄像头节点120通信以基于由摄像头分配器144提供的新指派而更新指令并建立新的摄像头到节点的指派。在这方面,系统100提供与处理来自摄像头100的视频数据有关的增加的冗余和灵活性。更进一步地,即使在不存在摄像头节点120故障的情况下,摄像头110的视频数据馈送也可以负载平衡到摄像头节点120以允许应用不同的分析模型等。
[0049]
给定摄像头节点120可以与摄像头110的子集配对,所述子集包括摄像头110中的一个或多个。作为一个示例,在图2中,摄像头110a-110c可以与摄像头管理器120a配对,使得摄像头管理器120a从摄像头110a-110c接收视频数据。摄像头110d-110f可以与摄像头管理器120b配对,使得摄像头管理器120b从摄像头110d-110f接收视频数据。摄像头110g可以与摄像头管理器120c配对,使得摄像头管理器120c从摄像头100g接收视频数据。然而,此配置可响应于负载平衡操作、给定摄像头节点的故障、网络状况或任何其他参数而改变。
[0050]
例如,参考图8,示出了第一摄像头分配配置。摄像头节点120a和摄像头节点120b这两个摄像头节点可以经由网络115处理来自视频摄像头110a-110e的数据。图9是用于说明的示意性表示。因此,虽然摄像头110示出为与节点120直接通信,但摄像头110可以经由网络连接与节点120通信。类似地,虽然主节点140示出为与摄像头节点120直接通信,但此通信也可以经由网络115(图8中未示出)。在任何方面,在图8所示的第一摄像头分配配置中,视频摄像头110a、视频摄像头110b和视频摄像头110c将视频数据传送到第一摄像头节点120a,以供第一摄像头节点120a处理和/或存储视频数据。此外,视频摄像头110d和视频摄像头110e将视频数据传送到第二摄像头节点120b,以供第一摄像头节点120b处理和/或存储视频数据。第一摄像头分配可以由主节点140的摄像头分配器144以将视频摄像头110的映射分布在可用摄像头节点120之间以平衡摄像头节点120之间的分配参数的方式建立。
[0051]
在检测到分配参数的变化时,摄像头分配器144可以响应于检测到监控到的分配参数的变化而修改第一摄像头分配。例如,这种改变可以响应于在摄像头节点120处的计算负载改变时、在来自视频摄像头110的视频数据改变时或在导致操作参数改变的任何其他改变时,从vms 100添加或移除摄像头节点120。例如,进一步参考图9,描绘了其中摄像头节点120b变得不可用(例如,由于在摄像头节点120b处的通信损失、在摄像头节点120b处的功率损失或导致摄像头节点120b丧失处理和/或存储视频数据的能力的任何其他故障或状况)的情境。作为响应,主节点140可以检测到此类改变,并将第一摄像头分配配置从图8所示的摄像头分配配置修改为第二摄像头分配配置,如图9所示。
[0052]
在图9所示的第二摄像头分配配置中,所有摄像头110a-110e被映射以与摄像头节点120a通信。然而,应当理解,其他摄像头节点120(图9中未示出)还可以具有分配给vms 100中的任何可用节点120的视频摄像头110d和视频摄像头110e中的一个或多个。因此,仅为了解释的简单而示出两个摄像头节点120a和120b。在这方面,摄像头分配配置的修改可以至少部分地基于分配参数。也就是说,摄像头分配参数可用于基于摄像头110在所有可用
摄像头节点120上的视频数据来负载平衡系统(例如,基于分配参数)。因此,虽然所有视频摄像头110重新分配给图9中的第一摄像头节点120a,但摄像头110d和110e可以以其他方式分配给替代摄像头节点,以平衡所有可用节点120上的计算负载和存储负载或其他分配参数。
[0053]
此外,虽然摄像头节点120在图9中示出为不可用,但其中可能发生负载平衡的另一情境是将一个或多个摄像头节点120添加到系统,使得一个或多个额外摄像头节点可以变得可用。在此情境下,可以生成新的摄像头分配配置,以基于由摄像头110生成的视频数据来平衡vms 100中所有摄像头110的关于分配参数的视频数据处理。在这方面,可以理解的是,由主节点140的摄像头分配器144监控的操作参数的改变可以响应于任何数目的条件而发生,并且这种改变可以导致现有摄像头分配配置的修改。
[0054]
因此,分配参数可以与正被分配的摄像头节点110的视频数据有关。例如,分配参数可以与基于时间的参数、摄像头的空间覆盖范围、处理摄像头的视频数据的计算负载、摄像头的指派类别、摄像头的指派优先级有关。分配参数可至少部分地受给定摄像头的视频数据的性质影响。例如,给定摄像头可以呈现与另一摄像头相比计算要求更高的视频数据。例如,第一摄像头可以朝着建筑物的主入口。第二摄像头可以位于人流量不大的内部走廊中。视频分析可以应用于来自第一摄像头和第二摄像头的两组视频数据以执行人脸识别。与来自第二摄像头的视频数据相比,来自第一摄像头的视频数据对摄像头节点的计算要求可能更高,这仅仅是因为第一摄像头的性质/位置位于主入口处并且与第二摄像头相比包括许多人脸。在这方面,摄像头分配参数可至少部分地基于将分配到摄像头节点的特定摄像头的视频数据。
[0055]
在这方面,图10描绘了其中检测到摄像头分配参数的改变,并且响应于该改变而修改摄像头分配配置的另一情境。图10可以将来自图8的第一摄像头分配配置修改为图10中所示的第二摄像头分配配置。在图10中,视频摄像头110e可以开始捕获导致摄像头模块120b上的计算负载增加超过阈值的视频数据。继而,主节点140的摄像头分配器144可以检测到此改变,并将第一摄像头分配配置修改为第二摄像头分配配置,使得摄像头110d与摄像头节点120a相关联。也就是说,摄像头节点120b可以专用于响应于视频的改变而处理来自摄像头110e的视频数据,所述改变增大了用于处理此视频数据的计算负载。示例可以是包括显著增加的检测到的对象(例如,将使用人脸识别处理的额外人脸)或待处理的运动的视频数据。在图10所示的此示例中,摄像头节点120a可具有足够的容量来处理来自摄像头110d的视频数据。
[0056]
图11进一步示出了其中超过了基于可用摄像头节点120的vms 100的总计算容量的示例。在图11所描绘的情境中,摄像头110d可与任何摄像头节点120断开连接,使得摄像头110d可以不由vms 100处理其视频数据。也就是说,如果超过总vms 100容量,则可以选择性地“放弃”摄像头。摄像头可以具有指派的优先级值,其可以部分地基于如上所述的分配参数。例如,如果提供具有重叠空间覆盖范围的两个摄像头(例如,一个摄像头从第一方向监控区域,而另一个摄像头从不同方向监控同一区域),则具有重叠空间覆盖范围的摄像头中的一个可具有相对低的优先级。继而,在断开其中一个摄像头时,可以保持对由摄像头覆盖的区域进行监控的连续性,同时降低系统的计算负载。在恢复可用计算负载时(例如,由于其他摄像头的计算负载的变化或通过将另一节点添加到系统),可以使用负载平衡方法
将断开连接的摄像头重新分配给摄像头节点。在其他情况下,其他分配参数可用于确定优先级,包括建立摄像头类别。例如,可以基于摄像头的位置/视野在设施内部或设施外部而将摄像头分配到“内部摄像头”类别或“周围摄像头”类别。在这种情况下,基于发生的特定场景,一类摄像头可以优先于另一类摄像头,所述特定场景可以与vms 100(例如,vms 100的计算容量/负载)或外部事件(例如,设施处的警报、设施处的换班等)相关。
[0057]
主节点140还可包括存储管理器146。由摄像头110捕获的视频数据由摄像头节点120处理,并且一旦被处理就可以存储在持久性存储装置中。由vms 100生成的视频数据可包括相对大量的用于存储的数据。因此,vms 100通常可以执行由vms 100捕获和/或存储视频数据的存储策略。如下文将更详细地描述,vms 100的抽象存储资源促进摄像头节点120以任何摄像头节点120都可能能够访问存储的视频数据而不管处理视频数据的摄像头节点120如何的方式持久存储视频数据。因此,任何摄像头节点120都可能能够根据存储策略检索和重新处理视频数据。
[0058]
例如,存储策略可以指示预定义流通性的视频数据(例如,在vms 100操作的最后24小时内捕获的视频数据)可以以视频数据的最初分辨率整体存储。然而,以全分辨率和全帧速率长期存储此类视频数据可能不切实际或不可行。因此,存储策略可包括全数据保留的初始时段,其中所有视频数据以全分辨率存储,并且在初始时段之后对视频数据进行后续处理以减少磁盘上的视频数据的大小。
[0059]
为此,存储策略可以规定控制如何存储视频数据或是否保留此类数据的其他参数。存储管理器146可以基于存储策略关于所存储视频数据的参数来执行存储策略。例如,基于存储策略中定义的参数,视频数据可以减小的大小(例如,通过降低视频分辨率、帧速率或其他视频参数以减少磁盘上的视频数据的整体大小)删除或存储。减少磁盘上存储的视频数据的大小可被称为“删减”。管理视频数据的删减的一个此类参数可以与自捕获视频数据以来经过的时间量有关。例如,早于给定时段(例如,大于24小时)的数据的大小可能会被删除或减小。更进一步地,可以执行多个删减阶段,使得随着视频变得不那么新,数据的大小进一步减小或删除。
[0060]
此外,由于任何摄像头节点120都可操作以从存储装置检索任何视频数据以供重新处理,所以视频数据可由与最初处理并存储来自视频摄像头的视频数据的摄像头节点不同的摄像头节点重新处理(例如,删减)。因此,重新处理或删减可以由任何摄像头节点120执行。摄像头节点对视频数据的重新处理可以在摄像头节点120的空闲时段期间或在确定摄像头节点120具有备用计算容量时执行。这可以在不同的摄像头节点的不同时间发生,但是可以在低处理负载的时间期间发生,诸如在工作时间之后或设施关闭或活动减少的时间期间。
[0061]
更进一步,用于删减的参数可以与视频数据的分析元数据有关。如在本技术中其他地方更详细地描述,摄像头节点120可包括分析模型,以将视频分析应用于由摄像头模块处理的视频数据。此类视频分析可包括生成关于视频的分析元数据。例如,分析模型可以包括对象检测、对象跟踪、人脸识别、图案检测、运动分析或在使用分析模型进行分析时从视频数据提取的其他数据。分析元数据可以提供用于数据删减的参数。例如,可以在初始保留期限之后删除任何没有运动的视频数据。在另一示例中,可仅保留包括特定分析元数据的视频数据(例如,可仅存储其中检测到给定对象的视频数据)。更进一步地,可仅保留来自特
定摄像头110的数据超过初始保留期限。因此,可以在不减小大小的情况下维持非常有价值的视频数据馈送(例如,与诸如建筑物入口或设施的高度安全区域等关键位置有关的视频数据)。在任何方面,存储管理器146可以管理对由vms 100存储的视频数据应用这种存储策略。
[0062]
主节点140还可包括数据库管理器148。如上所述,视频摄像头110可以与用于处理和存储来自视频摄像头120的视频数据的任何摄像头节点120相关联。此外,视频数据可以以抽象方式存储在逻辑存储单元150中,所述逻辑存储单元可以或可以不与摄像头节点120在物理上位于同一位置。因此,vms 100可以有利地维持关于由vms 100捕获的视频数据的记录,以提供关于视频数据的重要系统元数据。除了其他潜在信息之外,此类系统元数据还可包括:哪个视频摄像头110捕获视频数据、捕获视频数据的时间/日期、哪个摄像头节点120处理视频数据、哪个视频分析应用于视频数据、关于视频数据的分辨率信息、关于视频数据的帧速率信息、视频数据的大小和/或视频数据存储的位置。此类信息可以存储在由数据库管理器148生成的数据库中。数据库可包括视频数据和与视频数据有关的系统元数据之间的相关性。在这方面,视频数据的出处可由数据库管理器148记录并捕获到所得数据库中。数据库可用于管理视频数据和/或跟踪视频数据通过vms 100的流动。例如,如上所述,存储管理器146可以利用数据库将存储策略应用于数据。此外,对来自客户端130的数据的请求可包括对数据库的引用,以确定针对给定参数(诸如上述任何一个或多个元数据部分)将检索的视频数据的位置。数据库管理器148可生成数据库,但数据库可分布在所有摄像头节点120之间,以在执行数据库管理器148的主节点140故障或不可用的情况下向系统提供冗余。对应于任何给定摄像头节点120处的数据库更新可以由特定事件驱动,或者可以以预定时间间隔发生。
[0063]
数据库还可以使视频数据与关于视频数据的分析元数据相关。例如,如下文更详细地描述,分析元数据可以通过对视频数据应用视频分析来生成。此类分析元数据可以嵌入到视频数据本身,或者作为与给定视频数据文件相关联的单独元数据文件而提供。在任一方面,数据库可使此类分析元数据与视频数据相关。这可有助于删减活动或搜索视频数据。关于前者,如上所述,根据存储策略进行的删减可以包括基于分析元数据(例如,基于存在或不存在移动或检测到的对象)来处理视频数据。此外,由用户进行的搜索可以请求其中检测到特定对象或类似情况的所有视频数据。
[0064]
进一步参考图4,示出了摄像头节点120的示意性示例。如从前述内容可以理解的,摄像头节点120可包括执行数据库管理器148的主节点140所提供的数据库132的实例。在这方面,摄像头节点120可参考数据库以用于从vms 100的逻辑存储卷检索和/或提供视频和/或用于重新处理视频数据(例如,根据存储策略)。
[0065]
摄像头节点120可包括视频分析模块128。视频分析模块128可操作以在从摄像头110接收后将分析模型应用于由摄像头节点120处理的视频数据。视频分析模块128可以将机器学习模型应用于在摄像头节点120处处理的视频数据以生成分析元数据。例如,如上所述,视频分析模块128可以应用机器学习模型来检测对象、跟踪对象、执行人脸识别或对视频数据的其他分析,这继而可导致生成关于视频数据的分析元数据。
[0066]
摄像头节点120还可包括基于数据的性质或数据的预期用途而适于将视频数据处理为适当传输机制的模块。在这方面,摄像头节点120包括编码解码器122(即,编码器/解码
器),所述编码解码器可解码所接收的数据并将数据重新编码为不同的编码视频格式。编码视频格式可包括分组数据,使得根据所选的编码视频格式对每个数据包进行编码。摄像头节点120还可以包括容器格式化器124,所述容器格式化器可以将编码视频包打包成适当的容器格式。摄像头模块120还包括网络接口126,所述网络接口可操作以确定传输数字容器格式的编码视频包的通信协议。
[0067]
将视频数据格式化为适当的传输机制可以允许优化视频数据的递送和/或存储。例如,视频数据可以使用实时流协议(rtsp)从摄像头110递送到摄像头节点120。然而,rtsp可能不是用于存储视频数据和/或将视频数据递送至客户端130的最佳协议(例如,rtsp通常不被标准web浏览器支持,并且因此,通常需要特定软件或插件(诸如特定视频播放器)以在浏览器显示器中呈现视频)。摄像头节点120可以基于请求视频数据的上下文将视频数据重新格式化为适当的传输机制。
[0068]
在选择适当的通信协议后,网络接口126可以使用通信协议将编码视频包传送到客户端装置处的标准web浏览器。在一个示例中,客户端130可以请求实时查看来自给定视频摄像头110的视频数据。因此,编码解码器122、容器格式化器124和网络接口126可以分别选择适当的编码视频格式、容器格式和通信协议,以促进传输机制实时地将视频数据提供给客户端130。相比之下,客户端130可以替代地请求来自vms 100的逻辑存储单元的视频数据。如可以理解的,此类数据的流通性不如实时数据的情况下那样重要。可以选择编码视频格式、容器格式和通信协议中的不同的一个或多个。例如,在数据流通性不太重要的这种情况下,可以选择更具弹性或更具带宽有效性的编码视频格式、容器格式和通信协议,其具有向客户端130提供视频的较高延迟。
[0069]
出于说明而非限制的目的,传输机制可包括编码视频格式、容器格式和通信协议的任何组合。示例传输机制包括jsmpeg、http实时流式传输(hls)、mpeg-1和webrtc。jsmpeg利用mpeg-1编码(例如,mpeg-ts分流器、webassembly mpeg-1视频解码器和mpeg-2音频解码器)。在这方面,jsmpeg传输机制使用传输流(ts)容器格式和websocket通信协议。继而,可以使用jsmpeg程序在客户端130处解码jsmpeg传输机制,所述程序可以包括在网页中(例如,发送到浏览器的html代码等),并且不需要使用插件或除了本机web浏览器之外的其他应用程序。例如,jsmpeg传输机制可以使用webgl&canvas2d渲染程序和webaudio声音输出。jsmpeg传输机制可以为视频数据提供极低的延迟,但相对于本文所述的其他传输机制,利用略高的带宽消耗。
[0070]
另一个传输机制可以是webrtc,其可以利用h.264编码、vp8或另一种编码。webrtc可以利用包括mpeg-4或webm的容器格式。webrtc的通信协议可包括rtc对等连接以提供信号传输。可以使用websocket递送视频。在webrtc传输机制中,标准浏览器可包括用于解码编码视频数据的本机解码器。webrtc为视频数据提供极低的延迟,但通过使用呈rtc对等连接形式的信令服务器来增加系统的复杂性。然而,webrtc的带宽使用率相对较低。
[0071]
可以利用的又一个传输机制包括hls或mpeg-dash。hls/mpeg-dash的编码视频格式可以是mpeg-2、mpeg-4或h.264。容器格式可以是mpeg-4,并且通信协议可以是http。在这方面,解码器可以在本机对编码视频数据进行解码。hls/mpeg-dash传输机制具有比所描述的其他传输机制更高的延迟,但具有稳健的浏览器支持和较低的网络带宽使用率。
[0072]
如上所述,vms 100可包括抽象系统,其允许捕获视频数据、处理视频数据以及存
储将在vms 100的各个组件之间抽象的视频数据。例如,进一步参考图4,示意性地描述了vms 100的功能性的三个“层”。具体地,示出了采集层310、处理层320和存储层330。摄像头110可包括采集层310。摄像头节点120和主节点140可包括处理层320。另外,逻辑存储卷可包括存储层330的存储装置150。这些层被称为抽象层,因为采集、处理和存储vms系统100的视频数据的硬件组件的特定组合可以是可变的且动态相关联的。也就是说,vms 100的硬件组件之间的网络通信可以允许对采集、处理和存储功能中的每一个进行抽象化。因此,例如,摄像头110中的任一个可以将视频数据提供到摄像头节点120中的任一个,所述摄像头节点可以不受限制地将视频数据存储在存储装置150的逻辑存储卷中。
[0073]
如上所述,vms 100还包括可与网络115可操作地通信的客户端130。客户端130可操作以与vms 100通信以从系统100请求并接收视频数据。在这方面,vms 100可以不但存储来自视频摄像头110的视频数据,而且提供视频数据的实时流以供一个或多个用户观察。例如,视频监控摄像头通常由安保人员实时监控。通过“实时”或“近实时”,预期所提供的数据具有足够的流通性以用于安全操作。在这方面,实时或近实时不需要瞬时递送视频数据,但可以包括不影响监控视频数据的功效的延迟,诸如小于5秒、小于3秒或小于约1秒的延迟。
[0074]
本公开的一个目标是帮助客户端130可以使用标准web浏览器应用程序以方便的方式向用户呈现实时视频数据。特别值得注意的是,允许客户端130执行用于访问视频数据的常见且低成本的应用程序(例如,与需要预安装和预配置平台依赖专有软件以与管理系统交互相比)是特别有益的。在这方面,预期在客户端130处使用的特定应用程序类型是标准web浏览器。此类浏览器的示例包括谷歌浏览器、火狐浏览器、微软edge浏览器、微软ie浏览器、欧朋浏览器和/或苹果浏览器。此类标准web浏览器能够在本机处理经由网络接收的某些数据,以在客户端装置上生成用户界面。例如,此类标准web浏览器通常包括本机应用程序编程接口(api)或其他默认功能,以允许web浏览器呈现用户界面,促进用户与网站等的交互,并在客户端和服务器之间建立通信。
[0075]
客户端130可包括能够与web服务器142和/或摄像头管理器120中的一个或多个通信以访问vms 100的视频数据的标准互联网浏览器。与先前提出的依赖于待执行以与服务器通信以用于检索视频数据的的专有客户端软件的系统相比,vms 100的客户端130可以使用任何标准web浏览器应用程序来访问视频数据。标准互联网浏览器应用程序意味着浏览器应用程序可能不需要任何插件、附加组件或浏览器应用程序将安装或执行的其他程序,浏览器中本机提供的功能除外。应当注意,虽然关于用于搜索、检索和显示视频的用户界面的某些功能可以由web服务器142递送到web浏览器作为代码等,但可以在没有用户交互或预配置web浏览器的情况下提供任何此类功能。因此,任何此类功能仍被视为web浏览器的本机功能。在这方面,客户端130可以从vms 100所服务的网页接收所有必要的数据以促进对vms 100的视频数据的访问,而不必下载程序、安装插件或以其他方式修改或配置来自本机配置的浏览器应用程序。也就是说,接收和显示用户界面和/或来自vms 100的视频数据所需的所有必要信息和/或指令可以在本地与标准浏览器一起提供或者从vms系统100递送以允许执行客户端130。能够执行与网络115可操作地通信的标准web浏览器应用程序的任何适当计算装置都可以用作客户端130以访问vms 100的视频数据。例如,任何膝上型计算机、台式计算机、平板电脑、智能手机装置、智能电视或能够执行标准互联网浏览器应用程序的另一装置都可以充当客户端130。
[0076]
进一步参考图6,描绘了vms 100向客户端130提供视频数据的一个示例。在这种情况下,可以利用反向代理200来促进与客户端130的通信。具体地,反向代理200可以由主节点140的web服务器142促进,如上所述。也就是说,web服务器142可以充当反向代理200。在这方面,客户端130可以连接到反向代理200。可以从反向代理200提供包括html或其他网页内容的用户界面400。例如,由反向代理400提供的用户界面400可以包括来自vms 100的摄像头110的可用视频数据的列表404或可搜索索引。这可包括用于实时递送到客户端130的可用实时视频数据馈送的列表,或者可允许访问存储的视频数据。在后者方面,允许执行搜索的搜索功能(例如,使用任何视频元数据,所述视频元数据包括采集日期/时间、摄像头识别、设施位置和/或分析元数据,所述分析元数据包括从视频数据等识别到的对象)。在这方面,web服务器142可以充当信令服务器,以提供关于可用视频数据的信息。在选择视频数据的给定部分后,可以从客户端130向反向代理200发出对特定视频数据的请求。继而,反向代理200可以与摄像头节点120中的给定一个通信以检索所请求的视频数据。用户界面400还可包括视频显示器402。视频数据可以由web服务器142从适当的摄像头节点120请求,在适当的传输机制中格式化,并且由充当反向代理200的web服务器142递送到客户端130,以在视频显示器402中解码和显示视频数据。因此,使用反向代理200允许从单个服务器提供递送到客户端130的所有数据,所述服务器可具有符合浏览器的许多安全需求的适当安全证书。
[0077]
在一个示例中,摄像头节点120处理数据的传输机制可以至少部分地基于来自客户端130的请求的特性。在这方面,反向代理200可以确定请求的特性。此类特性的示例包括视频数据的性质(例如,实时或存档视频数据)、捕获视频数据的摄像头110的标识、客户端130相对于反向代理200的网络位置或将提供视频数据的摄像头节点120或其他特性。基于所述特性,适当选择编码视频格式、容器格式和通信协议,以用于由摄像头节点120处理视频数据。摄像头节点120可以将视频数据提供给反向代理200,以传送到客户端130。如上所述,在至少一些情况下,提供给客户端130的视频数据可以是实时或近实时视频数据,实时或近实时视频数据可以由客户端130以标准web浏览器的形式呈现,而不需要在客户端130处安装插件或其他应用程序。
[0078]
用户可能希望改变用户界面400中显示的视频数据。继而,用户可以选择新的视频数据源。在一个实施方式中,传输机制可以被配置为使得可以从适当的摄像头节点120由web服务器142请求新的视频数据,并且将其递送到用户界面400,而不需要重新加载页面。也就是说,视频显示器402中的数据通常无需重新加载用户界面400即可改变。这可以允许为尝试使用标准web浏览器来监控多个视频数据源的用户提供更大的效用。
[0079]
提供给客户端130以在视频显示器402中呈现的视频数据可以包括元数据,诸如分析元数据。如上所述,此类分析元数据可以与应用于视频数据的任何适当视频分析有关,并且可以包括例如突出显示检测到的对象、对象识别、个体识别、对象跟踪等。因此,视频数据可以被注释为包括一些分析元数据。分析元数据可以体现在视频数据中,或者可以经由单独的数据信道提供。在经由单独信道提供分析元数据的示例中,当在用户界面400中呈现时,客户端130可以接收分析元数据并注释视频显示器402中的视频数据。更进一步地,可以理解的是,包括用户界面400的不同类型的数据可以使用不同的传输机制递送到客户端130。例如,传输机制的上述示例可用于递送视频数据以供在视频显示器402中显示。然而,
用户界面本身可以使用html和安全的tls安全协议通过标准tcp/ip连接进行通信。更进一步地,元数据(例如,分析元数据)可以作为嵌入数据在视频数据中提供,或者可以作为单独的数据流提供以在用户界面130中呈现,如上所述。在使用单独的数据流递送元数据的情况下,元数据的递送可以借助于与视频数据本身不同的传输机制。
[0080]
返回参考图5,将vms 100的功能抽象成各种功能层也可以提供与由摄像头节点120分析视频数据有关的优点。具体地,分析模型(例如,机器学习模块)的应用对于摄像头节点120而言可能在计算上相对繁重。虽然摄像头节点120可配备有图形处理单元(gpu)或辅助执行计算负载的其他特别适配的硬件,但可能存在给定摄像头节点120的处理能力可能无法将分析模型应用于来自给定视频摄像头110的所有视频数据的某些实例。例如,在某些情况下,来自给定摄像头110的视频数据可以有利地分成数据的不同部分,所述数据的不同部分可以被提供到不同的摄像头节点120以用于对数据的不同部分进行单独处理。通过以这种方式“切片”数据,对视频数据的不同部分的分析可以在摄像头节点120中的不同摄像头节点处同时进行,这可以增加对视频数据执行分析的速度和/或吞吐量。
[0081]
因此,如图7所示,vms 100的摄像头110可以与网络115可操作地通信。至少第一节点120a和第二节点120b也可以与网络115通信以从摄像头110接收视频数据。第一节点120a可包括第一分析模型210a,并且第二节点120b可包括第二分析模型210b。第一分析模型210a可以与第二分析模型210b相同或不同。
[0082]
来自视频摄像头110的视频数据可以分成至少第一视频部分212和第二视频部分214。虽然被称为视频数据部分,但应理解,少至单帧的视频数据可以包括视频数据的相应部分212和214。视频数据的第一部分212可以被提供给第一摄像头节点120a,并且视频数据的第二部分214可以被提供给第二摄像头节点120b。
[0083]
视频数据的第二部分214可响应于由主节点、摄像头节点120a、摄像头节点120b或摄像头110中的任一个检测到的触发而提供给第二摄像头节点120b。触发可以基于任何数目的条件或参数。例如,可以建立周期性触发,使得基于时间、摄像头数据的量或其他周期性触发而将视频数据的第二部分214以周期性方式提供给第二摄像头节点120b。在这方面,相对于第二分析模型210b,第一分析模型210a可能需要相对较低的计算复杂性。因此,将所有视频数据提供给第二摄像头节点120b以使用第二分析模型210b进行处理在计算上可能不是有效的。然而,每个第n部分(例如,包括固定持续时间、磁盘上的视频大小或给定帧数)都可以从摄像头110提供到第二摄像头节点210b,其中n是正整数。在这方面,每百分之一秒视频数据可包括视频数据的第二部分214,每千分之一帧视频数据可包括视频数据的第二部分214,等等。
[0084]
在另一情况下,可基于视频数据的第一部分212的系统视频元数据或分析视频元数据而将视频数据的第二部分214提供给第二摄像头节点120b。例如,在从视频数据的第一部分212中检测到给定对象后,可以将包括视频数据的第二部分214的视频数据的后续帧提供给第二摄像头节点120b。作为此操作的示例,第一摄像头节点120a可以使用第一分析模型210a从第一视频数据部分212检测到人。继而,视频数据的第二部分214可以被引导到第二摄像头节点120b以供第二分析模型210b处理,所述第二分析模型可以特别适用于人脸识别。在这方面,来自摄像头110的视频数据可以被引导到特定节点进行处理以允许应用不同的分析模型等。
[0085]
参考图12,示出了根据本公开的一个方面的示例操作1200。操作1200可包括捕获操作1202,其中在多个视频摄像头处捕获视频数据。如上所述,视频摄像头可以与网络可操作地通信。继而,操作1200还可包括传送操作1204以将视频数据传送到多个摄像头节点。如上所述,多个摄像头中的任何一个或多个摄像头可以将它们相应的视频数据传送1204到摄像头节点中的任何一个或多个摄像头节点。
[0086]
操作1200可包括处理操作1206以处理由每个相应摄像头节点接收的视频数据。具体地,如上所述,在至少一个示例中,处理操作1206可包括将视频数据编码成编码视频数据包,将编码视频数据包打包成传输容器,以及选择用于发送视频数据包的通信协议。特别地,处理操作1206可以实现用于将视频数据实时递送到客户端的实时传输机制。特别值得注意的是,实时传输机制可以以可由标准web浏览器应用程序在客户端处本机解码的形式提供视频数据。
[0087]
因此,操作1200还包括递送操作1208,以将容器格式的编码视频数据包递送到客户端。递送操作1208可包括使用实时通信协议。操作1200还包括解码操作1210以在客户端处解码视频数据。具体地,解码操作1210可以由标准web浏览器应用程序执行,而不必将任何扩展、插件或其他应用程序安装到客户端或标准浏览器应用程序。继而,操作1200还包括用于在客户端处的标准web浏览器的用户界面中实时呈现视频数据的呈现操作1212。
[0088]
图14描绘了根据本发明的另一方面的另一组示例操作1400。操作1400可包括捕获操作1402以在多个视频摄像头处捕获视频数据。操作1400还可包括通信操作1404,以将视频数据从视频摄像头中的相应视频摄像头传送到如上所述的分布式系统的不同摄像头节点。
[0089]
操作1400还可以允许基于对视频数据的请求来处理节点处的视频数据,使得基于请求的特性选择传输机制。在这方面,传输机制可以但不必是实时传输机制,诸如关于图12描述的传输机制。在任何方面,操作1400包括接收操作1406,其中从客户端接收对视频数据的请求。确定操作1408可以确定请求的特性。请求的这种特性的非限制性示例可包括客户端的网络位置、请求的视频数据是实时视频数据还是存档视频数据(例如,从存储器检索到的视频数据)、客户端与处理请求的摄像头节点之间的连接的带宽、摄像头的标识或其他相关特性。操作1400还可包括处理操作1410,以将给定摄像头节点处的视频数据处理为至少部分地基于请求的特性的传输机制。例如,如果从摄像头节点本地的客户端请求视频数据并且将其用于实时视频数据,则处理操作1410中使用的传输机制可以是实时传输机制。相比之下,如果客户端远离摄像头节点(例如,经由诸如互联网的广域网通信)或请求存档数据,则处理操作1410中使用的传输机制可以是非实时的不同传输机制。在这些情境中,数据的流通性可能不太重要,使得在客户端处呈现视频数据时的较高延迟可能是可接受的。操作1400还包括递送操作1412,以响应于使用基于特性进行选择的传输机制的请求而将视频数据递送到客户端。因此,数据继而可以由客户端解码和呈现。
[0090]
图14示出了适合于实现所公开的技术的各方面的处理装置1400的示例简图。例如,处理装置1400可以大体上描述摄像头节点120、主节点140和/或客户端130的架构。处理装置1400包括一个或多个处理器单元1402、存储器1404、显示器1406和其他接口1408(例如,按钮)。存储器1404通常包括易失性存储器(例如,ram)和非易失性存储器(例如,闪速存储器)两者。操作系统1410,诸如microsoft操作系统、apple macos操作系统或
linux操作系统,驻留在存储器1404中并由处理器单元1402执行,但是应该理解,可以采用其他操作系统。
[0091]
一个或多个应用1412被加载在存储器1404中并由处理器单元1402在操作系统1410上执行。应用1412可以从诸如麦克风1434、输入附件1435(例如,键区、鼠标、手写笔、触摸板、操纵杆、仪器安装输入等)的各种输入本地装置接收输入。附加地,应用1412可以通过在使用更多的通信收发器1430和天线1438来提供网络连接的有线或无线网络(例如,移动电话网络、)之上与此类设备进行通信来从诸如远程定位的智能设备的一个或多个远程设备接收输入。处理设备1400也可以包括各种其他组件,诸如定位系统(例如,全球定位卫星收发器)、一个或多个加速度计、一个或多个摄像头、音频接口(例如,麦克风1434、音频放大器和扬声器和/或音频插孔)以及存储设备1428。也可以采用其他配置。
[0092]
处理装置1400还包括电源1416,该电源由一个或多个电池或其他电力源供电并且向处理装置1400的其他组件提供电力。电源1416也可以连接到重载内置电池或其他电力源或对其再充电的外部电力源(未示出)。
[0093]
示例实施方式可以包括通过存储在存储器1404和/或存储装置1428中并由处理器单元1402处理的指令所体现的硬件和/或软件。存储器1404可以是主机设备或耦合到主机的附件的存储器。
[0094]
处理系统1400可以包括各种有形处理器可读存储介质和无形处理器可读通信信号。有形处理器可读存储可通过可由处理系统1400访问的任何可用的介质来体现并且包括易失性存储介质和非易失性存储介质、可移动存储介质和非可移动存储介质两者。有形处理器可读存储介质不包括无形通信信号并且包括以任何方法或技术实现以用于存储诸如处理器可读指令、数据结构、程序模块或其他数据的信息的易失性和非易失性、可移动和非可移动存储介质。有形处理器可读存储介质包括但不限于ram、rom、eeprom、闪速存储器或其他存储器技术、cdrom、数字通用盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁性存储设备,或可用于存储期望信息并可由处理系统1400访问的任何其他有形介质。与有形处理器可读存储介质相反,无形处理器可读通信信号可以体现驻留在诸如载波或其他信号传输机制的已调制数据信号中的处理器可读指令、数据结构、程序模块或其他数据。术语“已调制数据信号”意指其特性中的一个或多个以在信号中编码信息的这样一种方式被设定或改变的无形通信信号。作为示例而非限制,无形通信信号包括通过诸如有线网络或直接有线连接的有线介质以及诸如声学、rf、红外和其他无线介质的无线介质传播的信号。
[0095]
一些实施方式可包括制品。制品可包括用于存储逻辑的有形存储介质。存储介质的示例可以包括能够存储电子数据的一种或多种类型的处理器可读存储介质,包括易失性存储器或非易失性存储器、可移动或非可移动存储器、可擦除或非可擦除存储器、可写或可重写存储器等。逻辑的示例可以包括各种软件元素,诸如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、操作段、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、单词、值、符号或它们的任何组合。在一个实施方式中,例如,制品可以存储可执行计算机程序指令,这些可执行计算机程序指令当由计算机执行时,使计算机执行依照所描述的实施方式的方法和/或操作。可执行计算机程序指令可以包括任何合适类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。可以根据预
定义计算机语言、方式或语法来实现可执行计算机程序指令,以用于指示计算机执行某个操作段。可以使用任何合适的高级、低级、面向对象的、可视的、编译的和/或解释的编程语言来实现指令。
[0096]
本公开的一个通用方面包括一种用于在客户端的标准浏览器界面中呈现来自分布式视频监视系统的视频数据的方法。所述方法包括在多个视频摄像头处捕获视频数据;以及通过通信网络将所述视频数据的第一部分从所述多个视频摄像头的第一子集传送到第一摄像头节点并且通过所述通信网络将所述视频数据的第二部分从所述多个视频摄像头的第二子集传送到第二摄像头。所述方法还包括从所述客户端接收对视频数据的请求,所述视频数据包括所述视频数据的所述第一部分或所述视频数据的所述第二部分中的至少一个部分。所述方法包括通过以下操作,响应于在所请求的视频数据的相应摄像头节点处的所述请求而准备所请求的视频数据:将所述视频数据编码成包括编码视频包的编码视频格式,将所述编码视频包打包成数字容器格式,以及确定用于传输所述数字容器格式的所述编码视频包的通信协议。所述方法包括使用所述通信协议将所述编码视频包传送到客户端装置处的标准web浏览器。所述标准web浏览器可操作以解码所述编码视频包形成所述数字容器格式,以使用所述标准web浏览器的本机功能在所述标准web浏览器的用户界面上呈现所请求的视频数据。
[0097]
实施方式可以包括以下特征中的一个或多个。例如,标准web浏览器可以解码所述编码视频包以用于在浏览器显示器中呈现,而无需安装专用于所述通信协议、数字容器格式或编码视频包的插件。通信协议包括低延迟协议以将数字容器格式的编码视频包实时地提供给标准web浏览器,以在浏览器显示器中实时地呈现视频数据。第一摄像头节点或第二摄像头节点中的至少一个摄像头节点可以是web服务器,并且所述方法还可以包括从web服务器提供视频显示界面以用于在浏览器显示器中呈现,其中响应于对视频显示界面的执行而接收请求。具体地,web服务器可以是与至少第一摄像头节点和第二摄像头节点可操作地通信的反向代理。反向代理可以将视频显示界面和编码视频包提供给标准web浏览器。web服务器可以包括提供请求的视频数据的不同摄像头节点。
[0098]
在一个示例中,客户端装置可以使用客户端通信网络与包括第一节点或第二节点中的一个节点的web服务器可操作地通信,并且所述方法还可以包括确定客户端通信网络的特性并且基于客户端通信网络的特性而选择编码视频格式、数字容器格式和通信协议。所述选择可以由基于客户端通信网络的特性而提供视频数据的摄像头节点执行。
[0099]
本公开的另一通用方面包括一种分布式视频监视系统。所述系统包括与通信网络可操作地通信的多个视频摄像头。所述系统还包括:第一摄像头节点,所述第一摄像头节点通过所述通信网络与所述多个视频摄像头的第一子集可操作地通信,以从所述多个视频摄像头的所述第一子集接收视频数据的第一部分;以及第二摄像头节点,所述第二摄像头节点通过所述通信网络与所述多个视频摄像头的第二子集可操作地通信,以从所述多个视频摄像头的所述第二子集接收视频数据的第二部分。所述系统还包括传输机制模块,所述传输机制模块位于所述第一摄像头节点和所述第二摄像头节点中的每个相应摄像头节点处,以通过以下操作,响应于对用于传输到客户端的所述数据的请求而准备从所述相应摄像头节点请求的视频数据:将所述视频数据编码成包括编码视频包的编码视频格式,将所述编码视频包打包成数字容器格式,以及确定用于传输所述数字容器格式的所述编码视频包的
通信协议。所述系统还包括web服务器,所述web服务器用于使用通信协议将编码视频包传送到客户端装置处的标准web浏览器。所述标准web浏览器可操作以解码所述编码视频包形成所述数字容器格式,以使用所述标准web浏览器的本机功能在所述标准web浏览器的用户界面上呈现所请求的视频数据。
[0100]
实施方式可以包括以下特征中的一个或多个。例如,标准web浏览器可以解码所述编码视频包以用于在浏览器显示器中呈现,而无需安装专用于所述通信协议、数字容器格式或编码视频包的插件。通信协议包括低延迟协议以将数字容器格式的编码视频包实时地提供给标准web浏览器,以在浏览器显示器中实时地呈现视频数据。
[0101]
在一个示例中,第一摄像头节点或第二摄像头节点中的至少一个摄像头节点可以是web服务器。web服务器还可以可操作以提供视频显示界面以用于在浏览器显示器中呈现。可以响应于对视频显示界面的执行而接收请求。
[0102]
在一个示例中,web服务器可包括与至少第一摄像头节点和第二摄像头节点可操作地通信的反向代理。反向代理可以将视频显示界面和编码视频包提供给标准web浏览器。web服务器可以是提供请求的视频数据的不同摄像头节点。
[0103]
在一个示例中,客户端装置可以使用客户端通信网络与web服务器可操作地通信,并且web服务器可操作以确定客户端通信网络的特性。请求视频数据的摄像头节点可操作以基于客户端通信网络的特性而选择编码视频格式、数字容器格式和通信协议。
[0104]
本公开的另一通用方面包括一种或多种有形处理器可读存储介质,所述一种或多种有形处理器可读存储介质以用于在装置的一个或多个处理器和电路上执行用于在客户端的标准浏览器界面中呈现来自分布式视频监视系统的视频数据的过程的指令来体现。所述过程包括在多个视频摄像头处捕获视频数据;以及通过通信网络将所述视频数据的第一部分从所述多个视频摄像头的第一子集传送到第一摄像头节点并且通过所述通信网络将所述视频数据的第二部分从所述多个视频摄像头的第二子集传送到第二摄像头。所述过程还包括从所述客户端接收对视频数据的请求,所述视频数据包括所述视频数据的所述第一部分或所述视频数据的所述第二部分中的至少一个部分。所述方法包括通过以下操作,响应于在所请求的视频数据的相应摄像头节点处的所述请求而准备所请求的视频数据:将所述视频数据编码成包括编码视频包的编码视频格式,将所述编码视频包打包成数字容器格式,以及确定用于传输所述数字容器格式的所述编码视频包的通信协议。所述过程还包括使用所述通信协议将所述编码视频包传送到客户端装置处的标准web浏览器。所述标准web浏览器可操作以解码所述编码视频包形成所述数字容器格式,以使用所述标准web浏览器的本机功能在所述标准web浏览器的用户界面上呈现所请求的视频数据。
[0105]
实施方式可以包括以下特征中的一个或多个。例如,标准web浏览器可以解码所述编码视频包以用于在浏览器显示器中呈现,而无需安装专用于所述通信协议、数字容器格式或编码视频包的插件。通信协议包括低延迟协议以将数字容器格式的编码视频包实时地提供给标准web浏览器,以在浏览器显示器中实时地呈现视频数据。
[0106]
在一个示例中,第一摄像头节点或第二摄像头节点中的至少一个摄像头节点可以是web服务器,并且所述过程还可包括从web服务器提供视频显示界面以用于在浏览器显示器中呈现。可以响应于对视频显示界面的执行而接收请求。在一个示例中,web服务器可以是与至少第一摄像头节点和第二摄像头节点可操作地通信的反向代理。反向代理可以将视
频显示界面和编码视频包提供给标准web浏览器。
[0107]
本公开的另一通用方面包括一种用于呈现来自分布式视频监视系统的视频数据的方法。所述方法包括在多个视频摄像头处捕获视频数据;以及通过通信网络将所述视频数据的第一部分从所述多个视频摄像头的第一子集传送到第一摄像头节点并且通过所述通信网络将所述视频数据的第二部分从所述多个视频摄像头的第二子集传送到第二摄像头。所述方法还包括从客户端接收查看视频数据的请求,所述视频数据包括所述视频数据的所述第一部分或所述视频数据的所述第二部分中的至少一个部分;确定所述请求的特性;以及响应于在所请求的视频数据的相应摄像头节点处的所述请求而准备所请求的视频数据。所述准备包括基于所述请求的所述特性将所述视频数据编码成包括编码视频包的编码视频格式,基于所述请求的所述特性将所述编码视频包打包成数字容器格式,以及基于所述请求的所述特性确定用于传输所述数字容器格式的所述编码视频包的通信协议。所述方法还包括使用所述通信协议将数字容器格式的所述编码视频包传送到所述客户端。
[0108]
实施方式可以包括以下特征中的一个或多个。例如,所述请求的所述特性可以是所请求的视频数据的来源,所请求的视频数据包括存储的视频数据或实时视频数据中的至少一种视频数据。当所述请求的所述特性包括存储的视频数据时,可以利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括实时视频数据时,可以利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据。所述第一编码视频格式可以不同于所述第二编码视频格式,所述第一数字容器格式可以不同于所述第二数字容器格式,并且所述第一通信协议可以不同于所述第二通信。例如,所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议可以是比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更高的延迟传输机制。
[0109]
在另一示例中,所述请求的所述特性可以是接收所述请求的所述客户端的网络位置,所述客户端包括通过所述通信网络通信的本地客户端或远离所述通信网络的远程客户端中的至少一个客户端。当所述请求的所述特性包括所述本地客户端作为所述网络位置时,可以利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括所述远程客户端作为所述网络位置时,可以利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据。所述第一编码视频格式可以不同于所述第二编码视频格式,所述第一数字容器格式可以不同于所述第二数字容器格式,并且所述第一通信协议可以不同于所述第二通信。所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议可以是比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更低的延迟传输机制。
[0110]
在一个示例中,所述方法可包括将关于所请求的视频数据的分析元数据传送到所述客户端。
[0111]
本公开的另一通用方面包括一种分布式视频监视系统。所述系统包括与通信网络可操作地通信的多个视频摄像头。所述系统还包括:第一摄像头节点,所述第一摄像头节点通过所述通信网络与所述多个视频摄像头的第一子集可操作地通信,以从所述多个视频摄像头的所述第一子集接收视频数据的第一部分;以及第二摄像头节点,所述第二摄像头节点通过所述通信网络与所述多个视频摄像头的第二子集可操作地通信,以从所述多个视频
摄像头的所述第二子集接收视频数据的第二部分。所述系统包括传输机制模块,所述传输机制模块位于所述第一摄像头节点和所述第二摄像头节点中的每个相应摄像头节点处,以通过以下操作,响应于对用于传输到客户端的所述数据的请求而准备从所述相应摄像头节点请求的视频数据:基于所述请求的特性将所述视频数据编码成包括编码视频包的编码视频格式,基于所述请求的所述特性将所述编码视频包打包成数字容器格式,以及基于所述请求的特性确定用于传输所述数字容器格式的所述编码视频包的通信协议。所述系统还包括web服务器,以响应于所述请求而使用所述通信协议将所述数字容器格式的所述编码视频包传送到所述客户端。
[0112]
实施方式可以包括以下特征中的一个或多个。例如,所述请求的所述特性可以是所请求的视频数据的来源,所请求的视频数据包括存储的视频数据或实时视频数据中的至少一种视频数据。当所述请求的所述特性包括存储的视频数据时,可以利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括实时视频数据时,可以利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据。所述第一编码视频格式可以不同于所述第二编码视频格式,所述第一数字容器格式可以不同于所述第二数字容器格式,并且所述第一通信协议可以不同于所述第二通信。在一个示例中,所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议可以是比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更高的延迟传输机制。
[0113]
在另一示例中,所述请求的所述特性可以是接收所述请求的所述客户端的网络位置,所述客户端包括通过所述通信网络通信的本地客户端或远离所述通信网络的远程客户端中的至少一个客户端。当所述请求的所述特性包括所述本地客户端作为所述网络位置时,可以利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括所述远程客户端作为所述网络位置时,利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据。所述第一编码视频格式可以不同于所述第二编码视频格式,所述第一数字容器格式可以不同于所述第二数字容器格式,并且所述第一通信协议可以不同于所述第二通信。所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议可以是比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更低的延迟传输机制。
[0114]
在一个示例中,web服务器可以进一步操作以将关于请求的视频数据的分析元数据传送到客户端。
[0115]
本发明的另一通用方面包括一种或多种有形处理器可读存储介质,所述一种或多种有形处理器可读存储介质以用于在装置的一个或多个处理器和电路上执行用于在客户端的标准浏览器界面中呈现来自分布式视频监视系统的视频数据的过程的指令来体现。所述过程包括在多个视频摄像头处捕获视频数据;以及通过通信网络将所述视频数据的第一部分从所述多个视频摄像头的第一子集传送到第一摄像头节点并且通过所述通信网络将所述视频数据的第二部分从所述多个视频摄像头的第二子集传送到第二摄像头。所述过程包括从客户端接收查看所述视频数据的请求,所述视频数据包括所述视频数据的所述第一部分或所述视频数据的所述第二部分中的至少一个部分。所述过程还包括确定所述请求的特性。继而,所述过程包括所述准备包括通过以下操作,响应于在所请求的视频数据的相应
摄像头节点处的所述请求而准备所请求的视频数据:基于所述请求的所述特性将所述视频数据编码成包括编码视频包的编码视频格式,基于所述请求的所述特性将所述编码视频包打包成数字容器格式,以及基于所述请求的所述特性确定用于传输所述数字容器格式的所述编码视频包的通信协议。所述过程还包括使用所述通信协议将数字容器格式的所述编码视频包传送到所述客户端。
[0116]
实施方式可以包括以下特征中的一个或多个。例如,所述请求的所述特性可以是所请求的视频数据的来源,所请求的视频数据包括存储的视频数据或实时视频数据中的至少一种视频数据。继而,当所述请求的所述特性包括存储的视频数据时,可以利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括实时视频数据时,可以利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据。所述第一编码视频格式可以不同于所述第二编码视频格式,所述第一数字容器格式可以不同于所述第二数字容器格式,并且所述第一通信协议可以不同于所述第二通信。所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议可以是比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更高的延迟传输机制。
[0117]
在另一示例中,所述请求的所述特性包括接收所述请求的所述客户端的网络位置,所述客户端包括通过所述通信网络通信的本地客户端或远离所述通信网络的远程客户端中的至少一个客户端。继而,当所述请求的所述特性包括所述本地客户端作为所述网络位置时,可以利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括所述远程客户端作为所述网络位置时,可以利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据。所述第一编码视频格式可以不同于所述第二编码视频格式,所述第一数字容器格式可以不同于所述第二数字容器格式,并且所述第一通信协议可以不同于所述第二通信。所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议可以是比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更低的延迟传输机制。
[0118]
在一个示例中,所述过程还可包括将关于所请求的视频数据的分析元数据传送到所述客户端。
[0119]
本文描述的实施方式在一个或多个计算机系统中作为逻辑步骤被实现。逻辑操作可以(1)作为在一个或多个计算机系统中执行的处理器实现的步骤的序列并且(2)作为一个或多个计算机系统内的互连的机器或电路模块被实现。实现方式是选择问题,取决于所利用的计算机系统的性能要求。因此,组成本文描述的实施方式的逻辑操作被不同地称为操作、步骤、对象或模块。此外,应该理解,除非另外显式地要求保护或者权利要求语言固有地需要具体次序,否则可以以任何次序执行逻辑操作。
[0120]
虽然本发明已在附图和前述描述中详细示出和描述,但此类说明和描述应被视为示例性的,而不是限制性的。例如,上文所述的某些实施方案可以与其他描述的实施方案组合和/或以其他方式布置(例如,可在其他序列中执行过程元件)。因此,应当理解,仅展示和描述了优选实施方案及其变体,并且期望保护在本发明的精神范围内的所有改变和修改。
[0121]
进一步的示例
[0122]
示例1.一种用于在客户端的标准浏览器界面中呈现来自分布式视频监视系统的
视频数据的方法,包括:
[0123]
在多个视频摄像头处捕获视频数据;
[0124]
通过通信网络将所述视频数据的第一部分从所述多个视频摄像头的第一子集传送到第一摄像头节点并且通过所述通信网络将所述视频数据的第二部分从所述多个视频摄像头的第二子集传送到第二摄像头节点;
[0125]
从所述客户端接收对视频数据的请求,所述视频数据包括所述视频数据的所述第一部分或所述视频数据的所述第二部分中的至少一个部分;
[0126]
通过以下操作,响应于在所请求的视频数据的相应摄像头节点处的所述请求而准备所请求的视频数据:
[0127]
将所述视频数据编码成包括编码视频包的编码视频格式,
[0128]
将所述编码视频包打包成数字容器格式,以及
[0129]
确定用于传输所述数字容器格式的所述编码视频包的通信协议;以及
[0130]
使用所述通信协议将所述编码视频包传送到客户端装置处的标准web浏览器;
[0131]
其中所述标准web浏览器可操作以解码所述编码视频包形成所述数字容器格式,以使用所述标准web浏览器的本机功能在所述标准web浏览器的用户界面上呈现所请求的视频数据。
[0132]
示例2.如示例1所述的方法,其中所述标准web浏览器解码所述编码视频包以用于在浏览器显示器中呈现,而无需安装专用于所述通信协议、数字容器格式或编码视频包的插件。
[0133]
示例3.如示例1所述的方法,其中所述通信协议包括低延迟协议以将所述数字容器格式的所述编码视频包实时地提供给所述标准web浏览器,以在所述浏览器显示器中实时地呈现所述视频数据。
[0134]
示例4.如示例3所述的方法,其中所述第一摄像头节点或所述第二摄像头节点中的至少一个摄像头节点包括web服务器,所述方法还包括:
[0135]
从所述web服务器提供视频显示界面,以用于在所述浏览器显示器中呈现,其中响应于对所述视频显示界面的执行而接收所述请求。
[0136]
示例5.如示例4所述的方法,其中所述web服务器包括与至少所述第一摄像头节点和所述第二摄像头节点可操作地通信的反向代理,所述反向代理将所述视频显示界面和所述编码视频包提供给所述标准web浏览器。
[0137]
示例6.如示例5所述的方法,其中所述web服务器包括提供所请求的视频数据的不同摄像头节点。
[0138]
示例7.如示例1所述的方法,其中所述客户端装置使用客户端通信网络与包括所述第一节点或所述第二节点中的一个节点的web服务器可操作地通信,所述方法还包括:
[0139]
确定所述客户端通信网络的特性;以及
[0140]
基于所述客户端通信网络的所述特性而选择所述编码视频格式、所述数字容器格式和所述通信协议。
[0141]
示例8.如示例7所述的方法,其中所述选择由基于所述客户端通信网络的所述特性而提供所述视频数据的摄像头节点执行。
[0142]
示例9.一种分布式视频监视系统,包括:
[0143]
多个视频摄像头,所述多个视频摄像头与通信网络可操作地通信;
[0144]
第一摄像头节点,所述第一摄像头节点通过所述通信网络与所述多个视频摄像头的第一子集可操作地通信,以从所述多个视频摄像头的所述第一子集接收视频数据的第一部分;
[0145]
第二摄像头节点,所述第二摄像头节点通过所述通信网络与所述多个视频摄像头的第二子集可操作地通信,以从所述多个视频摄像头的所述第二子集接收视频数据的第二部分;
[0146]
传输机制模块,所述传输机制模块位于所述第一摄像头节点和所述第二摄像头节点中的每个相应摄像头节点处,以通过以下操作,响应于对用于传输到客户端的数据的请求而准备从所述相应摄像头节点请求的视频数据:
[0147]
将所述视频数据编码成包括编码视频包的编码视频格式,
[0148]
将所述编码视频包打包成数字容器格式,以及
[0149]
确定用于传输所述数字容器格式的所述编码视频包的通信协议;以及
[0150]
web服务器,所述web服务器用于使用通信协议将所述编码视频包传送到客户端装置处的标准web浏览器;
[0151]
其中所述标准web浏览器可操作以解码所述编码视频包形成所述数字容器格式,以使用所述标准web浏览器的本机功能在所述标准web浏览器的用户界面上呈现所请求的视频数据。
[0152]
示例10.如示例9所述的系统,其中所述标准web浏览器解码所述编码视频包以用于在浏览器显示器中呈现,而无需安装专用于所述通信协议、数字容器格式或编码视频包的插件。
[0153]
示例11.如示例9所述的系统,其中所述通信协议包括低延迟协议以将所述数字容器格式的所述编码视频包实时地提供给所述标准web浏览器,以在所述浏览器显示器中实时地呈现所述视频数据。
[0154]
示例12.如示例11所述的系统,其中所述第一摄像头节点或所述第二摄像头节点中的至少一个摄像头节点包括所述web服务器,所述web服务器可操作以提供视频显示界面以用于在所述浏览器显示器中呈现,其中响应于对所述视频显示界面的所述执行而接收所述请求。
[0155]
示例13.如示例12所述的系统,其中所述web服务器包括与至少所述第一摄像头节点和所述第二摄像头节点可操作地通信的反向代理,所述反向代理将所述视频显示界面和所述编码视频包提供给所述标准web浏览器。
[0156]
示例14.如示例13所述的系统,其中所述web服务器包括提供所请求的视频数据的不同摄像头节点。
[0157]
示例15.如示例9所述的系统,其中所述客户端装置使用客户端通信网络与所述web服务器可操作地通信,并且所述web服务器可操作以确定所述客户端通信网络的特性,并且其中请求所述视频数据的所述摄像头节点可操作以基于所述客户端通信网络的所述特性而选择所述编码视频格式、所述数字容器格式和所述通信协议。
[0158]
示例16.一种或多种有形处理器可读存储介质,所述一种或多种有形处理器可读存储介质以用于在装置的一个或多个处理器和电路上执行用于在客户端的标准浏览器界
面中呈现来自分布式视频监视系统的视频数据的过程的指令来体现,所述过程包括:
[0159]
在多个视频摄像头处捕获视频数据;
[0160]
通过通信网络将所述视频数据的第一部分从所述多个视频摄像头的第一子集传送到第一摄像头节点并且通过所述通信网络将所述视频数据的第二部分从所述多个视频摄像头的第二子集传送到第二摄像头;
[0161]
从所述客户端接收对视频数据的请求,所述视频数据包括所述视频数据的所述第一部分或所述视频数据的所述第二部分中的至少一个部分;
[0162]
通过以下操作,响应于在所请求的视频数据的相应摄像头节点处的所述请求而准备所请求的视频数据:
[0163]
将所述视频数据编码成包括编码视频包的编码视频格式,
[0164]
将所述编码视频包打包成数字容器格式,以及
[0165]
确定用于传输所述数字容器格式的所述编码视频包的通信协议;以及
[0166]
使用所述通信协议将所述编码视频包传送到客户端装置处的标准web浏览器;
[0167]
其中所述标准web浏览器可操作以解码所述编码视频包形成所述数字容器格式,以使用所述标准web浏览器的本机功能在所述标准web浏览器的用户界面上呈现所请求的视频数据。
[0168]
示例17.如示例16所述的一种或多种有形处理器可读存储介质,其中所述标准web浏览器解码所述编码视频包以用于在浏览器显示器中呈现,而无需安装专用于所述通信协议、数字容器格式或编码视频包的插件。
[0169]
示例18.如示例16所述的一种或多种有形处理器可读存储介质,其中所述通信协议包括低延迟协议以将所述数字容器格式的所述编码视频包实时地提供给所述标准web浏览器,以在所述浏览器显示器中实时地呈现所述视频数据。
[0170]
示例19.如示例18所述的一种或多种有形处理器可读存储介质,其中所述第一摄像头节点或所述第二摄像头节点中的至少一个摄像头节点包括web服务器,所述过程还包括:
[0171]
从所述web服务器提供视频显示界面,以用于在所述浏览器显示器中呈现,其中响应于对所述视频显示界面的执行而接收所述请求。
[0172]
示例20.如示例19所述的一种或多种有形处理器可读存储介质,其中所述web服务器包括与至少所述第一摄像头节点和所述第二摄像头节点可操作地通信的反向代理,所述反向代理将所述视频显示界面和所述编码视频包提供给所述标准web浏览器。
[0173]
示例21.一种用于呈现来自分布式视频监视系统的视频数据的方法,包括:
[0174]
在多个视频摄像头处捕获视频数据;
[0175]
通过通信网络将所述视频数据的第一部分从所述多个视频摄像头的第一子集传送到第一摄像头节点并且通过所述通信网络将所述视频数据的第二部分从所述多个视频摄像头的第二子集传送到第二摄像头;
[0176]
从客户端接收查看所述视频数据的请求,所述视频数据包括所述视频数据的所述第一部分或所述视频数据的所述第二部分中的至少一个部分;
[0177]
确定所述请求的特性;以及
[0178]
通过以下操作,响应于在所请求的视频数据的相应摄像头节点处的所述请求而准
备所请求的视频数据:
[0179]
基于所述请求的所述特性将所述视频数据编码成包括编码视频包的编码视频格式,
[0180]
基于所述请求的所述特性将所述编码视频包打包成数字容器格式,以及
[0181]
基于所述请求的所述特性确定用于传输所述数字容器格式的所述编码视频包的通信协议;以及
[0182]
响应于所述请求,使用所述通信协议将所述数字容器格式的所述编码视频包传送到所述客户端。
[0183]
示例22.如示例21所述的方法,其中所述请求的所述特性包括所请求的视频数据的来源,所请求的视频数据包括存储的视频数据或实时视频数据中的至少一种视频数据。
[0184]
示例23.如示例22所述的方法,其中当所述请求的所述特性包括存储的视频数据时,利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括实时视频数据时,利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据;并且
[0185]
其中所述第一编码视频格式不同于所述第二编码视频格式,所述第一数字容器格式不同于所述第二数字容器格式,并且所述第一通信协议不同于所述第二通信协议。
[0186]
示例24.如示例23所述的方法,其中所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议包括比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更高的延迟传输机制。
[0187]
示例25.如示例21所述的方法,其中所述请求的所述特性包括接收所述请求的所述客户端的网络位置,所述客户端包括通过所述通信网络通信的本地客户端或远离所述通信网络的远程客户端中的至少一个客户端。
[0188]
示例26.如示例25所述的方法,其中当所述请求的所述特性包括所述本地客户端作为所述网络位置时,利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括所述远程客户端作为所述网络位置时,利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据;并且
[0189]
其中所述第一编码视频格式不同于所述第二编码视频格式,所述第一数字容器格式不同于所述第二数字容器格式,并且所述第一通信协议不同于所述第二通信协议。
[0190]
示例27.如示例26所述的方法,其中所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议包括比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更低的延迟传输机制。
[0191]
示例28.如示例21所述的方法,还包括:
[0192]
将关于所请求的视频数据的分析元数据传送到所述客户端。
[0193]
示例29.一种分布式视频监视系统,包括:
[0194]
多个视频摄像头,所述多个视频摄像头与通信网络可操作地通信;
[0195]
第一摄像头节点,所述第一摄像头节点通过所述通信网络与所述多个视频摄像头的第一子集可操作地通信,以从所述多个视频摄像头的所述第一子集接收视频数据的第一部分;
[0196]
第二摄像头节点,所述第二摄像头节点通过所述通信网络与所述多个视频摄像头的第二子集可操作地通信,以从所述多个视频摄像头的所述第二子集接收视频数据的第二部分;
[0197]
传输机制模块,所述传输机制模块位于所述第一摄像头节点和所述第二摄像头节点中的每个相应摄像头节点处,以通过以下操作,响应于对用于传输到客户端的所述数据的请求而准备从所述相应摄像头节点请求的视频数据:
[0198]
基于所述请求的特性将所述视频数据编码成包括编码视频包的编码视频格式,
[0199]
基于所述请求的所述特性将所述编码视频包打包成数字容器格式,以及
[0200]
基于所述请求的特性确定用于传输所述数字容器格式的所述编码视频包的通信协议;以及
[0201]
web服务器,所述web服务器用于响应于所述请求,使用所述通信协议将所述数字容器格式的所述编码视频包传送到所述客户端。
[0202]
示例30.如示例29所述的系统,其中所述请求的所述特性包括所请求的视频数据的来源,所请求的视频数据包括存储的视频数据或实时视频数据中的至少一种视频数据。
[0203]
示例31.如示例30所述的系统,其中当所述请求的所述特性包括存储的视频数据时,利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括实时视频数据时,利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据;并且
[0204]
其中所述第一编码视频格式不同于所述第二编码视频格式,所述第一数字容器格式不同于所述第二数字容器格式,并且所述第一通信协议不同于所述第二通信协议。
[0205]
示例32.如示例31所述的系统,其中所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议包括比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更高的延迟传输机制。
[0206]
示例33.如示例29所述的系统,其中所述请求的所述特性包括接收所述请求的所述客户端的网络位置,所述客户端包括通过所述通信网络通信的本地客户端或远离所述通信网络的远程客户端中的至少一个客户端。
[0207]
示例34.如示例33所述的系统,其中当所述请求的所述特性包括所述本地客户端作为所述网络位置时,利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括所述远程客户端作为所述网络位置时,利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据;并且
[0208]
其中所述第一编码视频格式不同于所述第二编码视频格式,所述第一数字容器格式不同于所述第二数字容器格式,并且所述第一通信协议不同于所述第二通信协议。
[0209]
示例35.如示例34所述的系统,其中所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议包括比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更低的延迟传输机制。
[0210]
示例36.如示例29所述的系统,其中所述web服务器可进一步操作以将关于所请求的视频数据的分析元数据传送到所述客户端。
[0211]
示例37.一种或多种有形处理器可读存储介质,所述一种或多种有形处理器可读
存储介质以用于在装置的一个或多个处理器和电路上执行用于在客户端的标准浏览器界面中呈现来自分布式视频监视系统的视频数据的过程的指令来体现,所述过程包括:
[0212]
在多个视频摄像头处捕获视频数据;
[0213]
通过通信网络将所述视频数据的第一部分从所述多个视频摄像头的第一子集传送到第一摄像头节点并且通过所述通信网络将所述视频数据的第二部分从所述多个视频摄像头的第二子集传送到第二摄像头;
[0214]
从客户端接收查看所述视频数据的请求,所述视频数据包括所述视频数据的所述第一部分或所述视频数据的所述第二部分中的至少一个部分;
[0215]
确定所述请求的特性;以及
[0216]
通过以下操作,响应于在所请求的视频数据的相应摄像头节点处的所述请求而准备所请求的视频数据:
[0217]
基于所述请求的所述特性将所述视频数据编码成包括编码视频包的编码视频格式,
[0218]
基于所述请求的所述特性将所述编码视频包打包成数字容器格式,以及
[0219]
基于所述请求的所述特性确定用于传输所述数字容器格式的所述编码视频包的通信协议;以及
[0220]
响应于所述请求,使用所述通信协议将所述数字容器格式的所述编码视频包传送到所述客户端。
[0221]
示例38.如示例37所述的一种或多种有形处理器可读存储介质,
[0222]
其中所述请求的所述特性包括所请求的视频数据的来源,所请求的视频数据包括存储的视频数据或实时视频数据中的至少一种视频数据;
[0223]
其中当所述请求的所述特性包括存储的视频数据时,利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括实时视频数据时,利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据;
[0224]
其中所述第一编码视频格式不同于所述第二编码视频格式,所述第一数字容器格式不同于所述第二数字容器格式,并且所述第一通信协议不同于所述第二通信;
[0225]
其中所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议包括比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更高的延迟传输机制。
[0226]
示例39.如示例37所述的一种或多种有形处理器可读存储介质,
[0227]
其中所述请求的所述特性包括接收所述请求的所述客户端的网络位置,所述客户端包括通过所述通信网络通信的本地客户端或远离所述通信网络的远程客户端中的至少一个客户端;
[0228]
其中当所述请求的所述特性包括所述本地客户端作为所述网络位置时,利用第一编码视频格式、第一数字容器格式和第一通信协议来准备所请求的视频数据,并且当所述请求的所述特性包括所述远程客户端作为所述网络位置时,利用第二编码视频格式、第二数字容器格式和第二通信协议来准备所请求的视频数据;
[0229]
其中所述第一编码视频格式不同于所述第二编码视频格式,所述第一数字容器格
式不同于所述第二数字容器格式,并且所述第一通信协议不同于所述第二通信;并且
[0230]
其中所述第一编码视频格式、所述第一数字容器格式和所述第一通信协议包括比所述第二编码视频格式、所述第二数字容器格式和所述第二通信协议更低的延迟传输机制。
[0231]
示例40.如示例37所述的一种或多种有形处理器可读存储介质,其中所述过程还包括:
[0232]
将关于所请求的视频数据的分析元数据传送到所述客户端。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献