一种获取、提供视频资源的方法、客户端和服务器与流程

文档序号:11844518阅读:186来源:国知局
一种获取、提供视频资源的方法、客户端和服务器与流程

本发明涉及安防领域,具体地说,涉及一种获取、提供视频资源的方法、客户端和服务器。



背景技术:

客户端是安防领域的重要应用程序。对于安装有监控设备的区域,可以通过客户端进行视频巡逻、录像回放等操作获得监控信息。客户端依赖服务端数据,但受到网络状态的影响,网络通用资源标识符(URI,Universal Resources Identifier)可用时能够顺畅的运行;当网络URI不可用时,客户端的部分功能会受影响,甚至无法使用。

现有技术中出现了离线运行数据的方案。在申请号为201110378887.4的专利申请文件中公开了一种离线运行微件的方法及客户端,可在URI不可用环境下运行客户端。但是仅支持小数据量的视频资源,并未提供大数据量的检索方案,对于500000级别的大数据检索存在明显的运行缓慢问题。此外,该申请中的离线资源是根据URI来获取,但只进行了全量加载,在大数据背景下导致加载效率较低。

随着安防行业的发展,监控系统需要管理的设备越来越多,需要处理的数据量急剧增长,因此需要在大数据环境下提供一种高效可靠的获取、提供视频资源的方法。



技术实现要素:

本发明所要解决的技术问题是克服现有视频监控系统中存在的在客户端加载视频资源时效率较低的技术缺陷。

为此,本发明提供一种获取视频资源的方法,应用于视频监控系统,包括以下步骤:

检测客户端与服务器之间的网络状态;

在网络有效的状态下,基于用户操作请求获取实时显示的用户界面数据来展示视频资源,同时在后台采用增量加载的方式在线获取用于备份的资源数据并更新本地索引;

在网络失效的状态下,基于用户操作请求从本地索引中检索用户界面数据来展示视频资源。

在一个实施例中,在网络有效的状态下,基于用户操作请求获取实时显示的用户界面数据的步骤包括:

下载视频资源组织树的第一层级树节点,渲染初次展示的用户界面;

发送组织查询指令,所述组织查询指令用于查询当前父节点的下一层级子节点资源;

接收并展示用户所请求的子节点资源。

在一个实施例中,在网络有效的状态下,基于用户操作请求获取实时显示的用户界面数据的步骤包括:

发送资源检索指令,所述资源检索指令用于检索视频资源;

接收并展示与资源检索指令匹配的视频资源。

在一个实施例中,在后台采用增量加载的方式在线获取用于备份的资源数据并更新本地索引的步骤包括:

基于用户权限和本地缓存数据的状态下载用户权限下的全部资源数据;

接收服务器生成的时间戳,所述时间戳表示下载资源数据的最新时间;

请求从本地时间戳到当前时间之间资源数据的增量,更新时间戳;

对本地资源数据进行预处理并更新本地索引。

在一个实施例中,所述对本地资源数据进行预处理的步骤包括:

对本地数据资源中的字段进行拆分建立元词汇表;

根据元词汇表创建或者更新本地索引。

在一个实施例中,在网络失效的状态下,基于用户操作请求从本地索引中检索用户界面数据来展示视频资源的步骤包括:

从本地索引中查询视频资源组织树的第一层级树节点,渲染初次展示的用户界面;

根据组织查询指令在本地索引中查询当前父节点的下一层级子节点资源;

展示用户所请求的子节点资源。

在一个实施例中,在网络失效的状态下,基于用户操作请求从本地索引中检索用户界面数据来展示视频资源的步骤包括:

对资源检索指令中的关键字进行拆分;

将拆分的关键字在所述元词汇表中进行匹配,得到符合资源检索指令的元词汇;

基于符合资源检索指令的元词汇在本地索引中检索用户界面数据。

根据本发明的另一方面,还提供一种提供视频资源的方法,应用于视频监控系统,包括以下步骤:

在客户端与服务器之间的网络为有效的状态下,基于用户操作请求提供实时显示的用户界面数据,同时采用增量加载的方式在线提供用于备份的资源数据。

在一个实施例中,基于用户操作请求实时提供实时显示的用户界面数据的步骤包括:

提供视频资源组织树的第一层级树节点,用于渲染初次展示的用户界面;

接收组织查询指令,所述组织查询指令用于查询当前父节点的下一层级子节点资源;

发送用户所请求的子节点资源。

在一个实施例中,基于用户操作请求提供实时显示的用户界面数据的步骤包括:

接收资源检索指令,所述资源检索指令用于检索视频资源;

在全部资源数据中检索视频资源;

发送与资源检索指令匹配的视频资源。

在一个实施例中,采用增量加载的方式在线提供用于备份的资源数据的步骤包括:

基于用户权限和本地缓存数据的状态发送用户权限下的全部资源数据;

生成并发送时间戳,所述时间戳表示下载资源数据的最新时间;

提供从本地时间戳到当前时间之间资源数据的增量。

在一个实施例中,在所述基于用户操作请求实时提供实时显示的用户界面数据的步骤之前还包括:

对全部资源数据进行预处理,其中,对全部资源数据中的字段进行拆分建立元词汇表,根据元词汇表创建或者更新全局索引。

在一个实施例中,所述在全部资源数据中检索视频资源的步骤包括:

对资源检索指令中的关键字进行拆分;

将拆分的关键字在所述元词汇表中进行匹配,得到符合资源检索指令的元词汇;

基于符合资源检索指令的元词汇在全局索引中检索用户界面数据。

根据本发明的另一方面,还提供一种客户端,应用于视频监控系统,包括:

检测单元,用于检测客户端与服务器之间的网络状态;

第一数据获取单元,其包括实时获取模块和备份数据下载模块,在网络有效的状态下,所述实时数据获取模块基于用户操作请求获取实时显示的用户界面数据来展示视频资源,所述备份数据下载模块在后台采用增量加载的方式在线获取用于备份的资源数据并更新本地索引;

第二数据获取单元,用于在网络失效的状态下,基于用户操作请求从本地索引中检索用户界面数据来展示视频资源。

根据本发明的另一方面,还提供一种服务器,应用于视频监控系统,包括实时数据提供模块和备份数据提供模块,其中,

在客户端与服务器之间的网络为有效的状态下,所述实时数据提供模块基于用户操作请求提供实时显示的用户界面数据,所述备份数据提供模块采用增量加载的方式在线提供用于备份的资源数据。

与现有技术相比,本发明的实施例具有以下有益效果。

1、本发明的实施例通过预处理数据,根据拆分的词/短语表创建索引,再对检索的关键字拆分,与词/短语表进行匹配,最后从索引中查找的方式检索,大大提高了检索的效率,能够支撑更大数据规模的应用。

2、本发明的实施例采用时间戳对比增量更新数据的方式,不必根据URI网络全量更新数据,可以减少数据传输,能够缩短数据更新时间,从而提高数据更新效率。

3、本发明的实施例根据用户的需要分级异步加载数据,展示的数据远远少于同步展示的数据量,能够提高界面渲染的效率。

4、本发明的实施例采用实时检索和本地资源缓存的方式,并使其分别在前后台并发运行,前者保证了界面同步任务的实时性,后者确保了可用性和效率。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书 中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:

图1a是根据本发明实施例一的在线获取视频资源的原理图;

图1b是根据本发明实施例一的离线获取视频资源的原理图;

图2是根据本发明实施例一的在线时客户端获取用户界面数据的步骤流程图;

图3是根据本发明实施例一的在线时客户端本地索引更新的步骤流程图;

图4是根据本发明实施例一的服务器或者客户端进行数据预处理的步骤流程图;

图5是本发明实施例一的离线时客户端获取用户界面数据的步骤流程图;

图6是根据本发明实施例一的服务器或者客户端进行资源检索的步骤流程图;

图7是根据本发明实施例一的在线时服务器提供用户界面数据的步骤流程图;

图8是根据本发明实施例一的在线时服务器提供本地索引的步骤流程图;

图9是根据本发明实施例二的客户端的结构示意图;

图10a是根据本发明实施例二的实时数据获取模块的结构示意图;

图10b是根据本发明实施例二的备份数据下载模块的结构示意图;

图11是根据本发明实施例二的第二数据获取单元的结构示意图;

图12是根据本发明实施例二的客户端的结构示意图;

图13a是根据本发明实施例二的实时数据提供模块的结构示意图;

图13b是根据本发明实施例二的备份数据提供模块的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明作进一步地详细说明。

实施例一

本发明的实施例提供一种在大数据背景下的视频监控系统中高效获取、提供视频资源的方法。在大数据量的视频监控系统包括客户端和服务器,根据客户端和服务器之间的网络状态是否有效,客户端可自动判断采用在线获取和离线获取方式加载视频资源数据。

如图1a所示,在网络状态有效时客户端并行执行用户界面获取和本地索引更新两个流程。其中,用户界面数据获取流程是当用户在操作客户端时,获取需要实时展示的数据的过程;本地索引更新流程指客户端加载用户有权限的所有数据的过程,该任务在客户端后台执行,不影响用户体验。

用户界面数据获取流程用于小数据量的加载,偏重适于实时性,适合于用户界面数据获取。本地索引更新流程用于大数据量(全量设备数据),使用后台加载,当用户实时操作时,不会对流畅性造成影响。

如图1b所示,在网络状态失效时客户端将会使用之前在本地索引更新流程中存储到本地的索引执行用户界面获取流程。

用户登录后首先检测客户端与服务器之间的网络状态。现有技术中存在各种判断网络状态有效与失效的方法,对于无线连接可利用网络信号强度来判断,而对于有线网络还可测试带宽等参数。在一个优选示例中,若网络URI不可用则判定网络状态为失效。

以下对在线时客户端获取视频资源的方法进行详细说明。在网络有效的状态下,客户端基于用户操作请求获取实时显示的用户界面数据来展示视频资源,同时在后台采用增量加载的方式在线获取用于备份的资源数据并更新本地索引。其中,用于备份的资源数据最大为视频监控系统中的全局数据。

下文所述的“资源”是指安防领域的设备,包括但不限于摄像机,报警器,卡口设备等。“组织树”是指用树型结构来管理和组织资源。

图2显示了在线时获取用户界面数据的流程图。为了确保用户界面仅需加载少量数据即可确保流畅使用,本实施例采用了分级异步加载的办法。具体来说,用户登录客户端,根据组织树的展示顺序,客户端同步下载视频资源组织树的第一层级树节点(步骤S201),渲染初次展示的最小数据量的用户界面(步骤S202)。用户展开组织树节点,客户端发送组织查询指令(步骤S203),所述组织查询指令用于查询当前父节点的下一层级子节点资源。客户端调用服务器远程接口进行 组织查询(步骤S204),接收并展示用户所请求的子节点资源(步骤S205)。

这样以来,在用户登录之后客户端渲染组织树,只向服务器请求第一层级树节点。在用户展开父节点时再请求子节点数据。采用该方式后,在满足展示需求基础上可有效减少每次传输数据量。

此外,在步骤S203中用户可检索组织树中的资源。为了在大量设备数据中快速定位到每层树节点的数据,服务器端需先对数据进行预处理来创建索引,提高检索的实时性。在进行资源检索时,客户端发送资源检索指令(步骤S203),所述资源检索指令用于检索视频资源。客户端调用服务器远程接口进行资源检索(步骤S204),接收并展示与资源检索指令匹配的视频资源(步骤S205)。

图3显示了在线时本地索引更新的流程图。客户端采用异步方式从服务器加载所有有权限的组织和资源数据,并从服务器得到该次加载任务最后一条的时间戳。对于二次登录的客户端采用本地时间戳和服务器时间进行比对,加载这一时间段变动的组织和资源的方式,进行增量加载。

如图3所示,首先基于用户权限和本地缓存数据的状态从服务器下载用户权限下的全部资源数据。在一个优选的示例中,本地缓存数据的状态包括是否存在本地缓存数据,以及本地缓存数据是否过期。具体地,判断用户权限是否有变化(步骤S301),若有变化则异步下载用户权限下的全部资源数据(步骤S302),并接收服务器生成的一个时间戳,所述时间戳表示客户端下载资源数据的最新时间。若用户权限没有变化,则进一步判断是否存在本地缓存数据(步骤S303)。若不存在本地缓存数据则执行异步下载步骤(步骤S302),若存在本地缓存数据则判断时间戳是否过期(步骤S304),若已过期则执行异步下载步骤(步骤S302),若未过期则向服务器请求从本地时间戳到当前时间之间资源数据的增量,更新时间戳(步骤S305)。至此为止,客户端已下载所有有权限的组织和资源数据,可用于在离线情况下提供用户界面数据。

客户端在获得组织和资源数据后,对本地资源数据进行预处理并更新本地索引(步骤S306),完成与服务器的数据同步。需要说明的是,与现有的采用关键字到数据库进行遍历查询的方式不同,为了针对大数据量提供高效的检索机制,本实施例提供一种根据元词汇表创建索引的预处理方式。

如图4所示,客户端对本地数据资源中的字段进行拆分建立元词汇表(步骤S401),根据元词汇表创建或者更新本地索引(步骤S402),完成数据预处理。 其中,元词汇是指对大数据中的字段进行拆分得到的词(短语)表。

图5显示了离线时获取用户界面数据的流程图。由于客户端在在线时已经对本地资源数据进行了同步并完成预处理,在离线时客户端同样可展示组织和搜索资源,达到和网络URI可用相同的展示效果。具体来说,用户登录客户端,根据组织树的展示顺序,客户端向本地资源数据请求视频资源组织树的第一层级树节点(步骤S501),渲染初次展示的最小数据量的用户界面(步骤S502)。用户展开组织树节点(步骤S503),在已经完成预处理的本地资源数据中进行组织查询(步骤S504),展示用户所请求的子节点资源(步骤S505)。

此外,在步骤S503中用户可检索组织树中的资源。在进行资源检索时,客户端发送资源检索指令(步骤S503),所述资源检索指令用于检索视频资源。客户端在已经完成预处理的本地资源数据中进行资源检索(步骤S504),展示与资源检索指令匹配的视频资源(步骤S505)。

图6所示为客户端进行资源检索的步骤流程图。首先对客户端本地输入的资源检索指令中的关键字进行拆分(步骤S601)。将拆分的关键字在所述元词汇表中进行匹配,得到符合资源检索指令的元词汇(步骤S602)。基于符合资源检索指令的元词汇在本地索引中检索用户界面数据(步骤S603),完成对本地资源数据的检索。其中,元词汇是指对大数据中的字段进行拆分得到的词(短语)表。

以下对网络有效的状态下服务器提供视频资源的方法进行说明。

在客户端与服务器之间的网络为有效的状态下,服务器端基于用户操作请求提供实时显示的用户界面数据,同时采用增量加载的方式在线提供用于备份的资源数据。

为了在大量设备数据中快速完成检索,服务器端需先对数据进行预处理来创建索引,提高检索的实时性。服务器进行的数据预处理过程与图4所示的客户端的预处理过程类似,不同之处仅在于服务器对全部资源数据进行预处理,其中,对全部资源数据中的字段进行拆分建立元词汇表,根据元词汇表创建或者更新全局索引。

以下通过一个示例说明数据预处理和匹配检索的过程。数据资源中的一个字段为“长河路滨河路口”,在预处理过程中,将该字段拆分为长、河、路、滨、口、长河、滨河、路口、河路、路滨这些元词汇,并对元词汇表创建或者更新本地索引。

当用户输入检索关键字“滨河路口”时,将检索关键字拆分为河、路、滨、口、滨河、路口,在元词汇表中进行匹配,根据匹配成功的词(短语)从索引中查找。

现有的检索方式通常是采用关键字到数据库进行遍历查询,对于大量数据检索效率较低。本实施例中的方法可以大大提高检索的效率,能够支撑更大数据规模的应用。

如图7所示,本实施例服务器采用了分级异步加载的办法为客户端提供用户界面数据的步骤流程图。具体来说,根据组织树的展示顺序,服务器同步提供视频资源组织树的第一层级树节点(步骤S701),用于在客户端渲染初次展示的最小数据量的用户界面。接收客户端发送的组织查询指令(步骤S702),所述组织查询指令用于查询当前父节点的下一层级子节点资源。发送用户所请求的子节点资源(步骤S703)。

这样以来在用户登录之后,服务器仅提供第一层级树节点,在用户展开父节点时再请求子节点数据。采用该方式后可在满足展示需求基础上可有效减少每次传输数据量。

此外,在步骤S702中服务器可根据客户端的资源检索指令来检索组织树中的资源。在进行资源检索时,服务器接收资源检索指令(步骤S702),所述资源检索指令用于检索视频资源。在全部资源数据中检索视频资源,发送与资源检索指令匹配的视频资源(步骤S703)。其中,在已完成预处理的全部资源数据中检索视频资源的步骤与图6所示的客户端的检索过程类似。区别仅在于,对资源检索指令中的关键字进行拆分,将拆分的关键字在所述元词汇表中进行匹配,得到符合资源检索指令的元词汇,基于符合资源检索指令的元词汇在全局索引中检索用户界面数据。

以下对服务器采用增量加载的方式在线提供大数据量的资源数据的步骤进行说明。如图8所示,基于用户权限和本地缓存数据的状态发送用户权限下的全部资源数据(步骤S801),生成并发送时间戳(步骤S802),所述时间戳表示客户端下载资源数据的最新时间,提供从本地时间戳到当前时间之间资源数据的增量(步骤S803)。如此以来,采用时间戳实现增量更新,所更新的数据量小于全量更新的数据,且能够同步变动的数据,其效率高于根据URI进行全量加载。提高了更新的效率,缩短了更新时间。

本实施例合理地组合了实时检索和本地资源缓存两种方式,并使其分别在前后台并发运行。前者保证了界面同步任务的实时性,后者确保了可用性和效率。本实施例中对所需数据进行分类,用于界面初次展示的最小数据(如组织树第一层树节点)采用同步加载方式,对于用于网络URI不可用时使用的本地数据采用异步方式加载,可做到不影响用户的正常使用,合理经济的加载数据。

实施例二

本发明的实施例提供一种客户端,应用于视频监控系统。如图9所示,该客户端主要包括检测单元91、第一数据获取单元92和第二数据获取单元93。其中,第一数据获取单元92包括实时数据获取模块921和备份数据下载模块922。

检测单元91用于检测客户端与服务器之间的网络状态,其分别与第一数据获取单元92和第二数据获取单元93连接。在网络有效的状态下,实时数据获取模块921基于用户操作请求获取实时显示的用户界面数据来展示视频资源,备份数据下载模块922在后台采用增量加载的方式在线获取用于备份的资源数据并更新本地索引。在网络失效的状态下,第二数据获取单元93基于用户操作请求从本地索引中检索用户界面数据来展示视频资源。

图10a为实时数据获取模块921的结构示意图。实时数据获取模块921包括首层节点实时下载子模块101、组织查询指令发送子模块102和子节点实时展示子模块103。其中,首层节点实时下载子模块101用于下载视频资源组织树的第一层级树节点,渲染初次展示的用户界面。组织查询指令发送子模块102用于发送组织查询指令,所述组织查询指令用于查询当前父节点的下一层级子节点资源。子节点实时展示子模块103用于接收并展示用户所请求的子节点资源。

如图10a所示,实时数据获取模块921还包括资源检索指令发送子模块104和视频实时展示子模块105。资源检索指令发送子模块104用于发送资源检索指令,所述资源检索指令用于检索视频资源。视频实时展示子模块105用于接收并展示与资源检索指令匹配的视频资源。

图10b为备份数据下载模块922的结构示意图。备份数据下载模块922包括资源下载子模块106、时间记录子模块107、增量请求子模块108和本地数据预处理子模块109。其中,资源下载子模块106用于基于用户权限和本地缓存数据的状态下载用户权限下的全部资源数据;时间记录子模块107用于接收服务器生成的时间戳,所述时间戳表示下载资源数据的最新时间;增量请求子模块108用 于请求从本地时间戳到当前时间之间资源数据的增量,更新时间戳;本地数据预处理子模块109用于对本地资源数据进行预处理并更新本地索引。具体而言,对本地数据资源中的字段进行拆分建立元词汇表,根据元词汇表创建或者更新本地索引。

图11为第二数据获取单元93的结构示意图。第二数据获取单元93主要包括首层节点本地查询模块111、子节点本地查询模块112和子节点本地展示模块113。其中,首层节点本地查询模块111用于从本地索引中查询视频资源组织树的第一层级树节点,渲染初次展示的用户界面;子节点本地查询模块112用于根据组织查询指令在本地索引中查询当前父节点的下一层级子节点资源;子节点本地展示模块113用于展示用户所请求的子节点资源。

如图11所示,第二数据获取单元93还包括关键字拆分模块114,用于对资源检索指令中的关键字进行拆分;匹配模块115用于将拆分的关键字在所述元词汇表中进行匹配,得到符合资源检索指令的元词汇;本地数据检索模块116用于基于符合资源检索指令的元词汇在本地索引中检索用户界面数据。

本发明的实施例还提供一种服务器,应用于视频监控系统。如图12所示,该服务器包括实时数据提供模块121、备份数据提供模块122和资源数据预处理模块123。其中,在客户端与服务器之间的网络为有效的状态下,实时数据提供模块121基于用户操作请求提供实时显示的用户界面数据,备份数据提供模块122采用增量加载的方式在线提供用于备份的资源数据。资源数据预处理模块123用于对全部资源数据进行预处理,具体而言,对全部资源数据中的字段进行拆分建立元词汇表,根据元词汇表创建或者更新全局索引。

图13a为实时数据提供模块121的结构示意图。实时数据提供模块121包括首层节点实时提供子模块1211、组织查询指令接收子模块1212和子节点资源发送子模块1213。其中,首层节点实时提供子模块1211提供视频资源组织树的第一层级树节点,用于渲染初次展示的用户界面;组织查询指令接收子模块1212用于接收组织查询指令,所述组织查询指令用于查询当前父节点的下一层级子节点资源;子节点资源发送子模块1213用于发送用户所请求的子节点资源。

此外,实时数据提供模块121还包括资源检索指令接收子模块1214,用于接收资源检索指令,所述资源检索指令用于检索视频资源;视频资源检索子模块1215,用于在全部资源数据中检索视频资源;以及视频资源发送子模块1216,用 于发送与资源检索指令匹配的视频资源。其中,所述视频资源检索子模块1215包括关键字拆分子模块,用于对资源检索指令中的关键字进行拆分;匹配子模块,将拆分的关键字在所述元词汇表中进行匹配,得到符合资源检索指令的元词汇;以及,全局数据检索模块,基于符合资源检索指令的元词汇在全局索引中检索用户界面数据(图中未示出)。

图13b为备份数据提供模块122的结构示意图。备份数据提供模块122包括资源发送子模块1221,基于用户权限和本地缓存数据的状态发送用户权限下的全部资源数据;时间戳生成子模块1222,用于生成并发送时间戳,所述时间戳表示下载资源数据的最新时间;增量提供子模块1223,用于提供从本地时间戳到当前时间之间资源数据的增量。

虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1