一种多对象存储的云视频Timeline存储方法和系统

文档序号:1921656 发布日期:2021-12-03 浏览:16次 >En<

阅读说明:本技术 一种多对象存储的云视频Timeline存储方法和系统 (Multi-object storage cloud video Timeline storage method and system ) 是由 周莹 方泽梁 陈帅斌 蒋泽飞 夏虹 于 2021-08-31 设计创作,主要内容包括:本发明公开了一种多对象存储的云视频Timeline存储方法和系统,所述方法包括如下步骤:获取对象存储,计算所述对象存储的质量分数;选取最优的质量分数的对象存储作为目标对象存储;生成raw文件和所述raw文件key,将所述raw文件和raw文件key保存于目标对象存储中;判断当前目标对象存储是否变更,若变更则保存对象存储变更记录。所述方法和系统在存储时,可以将raw文件元信息编码进对象存储key,使得所述对象存储key可以实现自我描述的功能,从而在查询时通过raw文件key规则匹配raw文件列表,从匹配的所述raw文件列表反向生成Timeline,从而无需单独设置的Timeline索引,显著降低了存储成本和运维复杂度。(The invention discloses a cloud video Timeline storage method and a cloud video Timeline storage system with multi-object storage, wherein the method comprises the following steps: acquiring an object storage, and calculating the quality score of the object storage; selecting an object storage with the optimal quality score as a target object storage; generating a raw file and a raw file key, and storing the raw file and the raw file key in a target object storage; and judging whether the current target object storage is changed or not, and if so, saving the object storage change record. According to the method and the system, raw file meta information can be coded into the object storage key during storage, so that the object storage key can realize a self-description function, a raw file list is matched through a raw file key rule during query, and the Timeline is reversely generated from the matched raw file list, so that a separately set Timeline index is not needed, and the storage cost and the operation and maintenance complexity are remarkably reduced.)

一种多对象存储的云视频Timeline存储方法和系统

技术领域

本发明涉及存储技术领域,特别涉及一种多对象存储的云视频Timeline存储方法和系统。

背景技术

随着云计算与云存储技术的发展,摄像头的视频数据存储逐渐由本地转向云端,云视频平台提供了视频云端存储的服务。随着云视频平台接入摄像头的快速增长,如何可靠的存储同时高效的检索视频数据成了急需解决一个问题。视频数据可分为raw文件和timeline索引。原始视频通常被按时间(约一分钟)切分成raw文件,raw文件经过编码和加密等处理存储在云服务商提供的对象存储服务中。timeline索引记录了raw文件的存储路径、开始时间、结束时间及其他元信息,通过timeline索引可快速搜索到目标时间的raw文件。

目前,业内普遍将timeline索引存储在MySQL传统关系型数据库中,并进行水平分库分表,构建MySQL集群,以满足一定程度的容量拓展。但是,这种存储架构有三方面的缺陷:

一是引入了额外的存储成本。raw文件存储是必须的,timeline索引存储是在raw文件的基础上额外产生的,而且,timeline索引的存储成本较高。

二是集群负载不能动态均衡。一旦确定了集群分库分表的规则,则不能再更改规则,导致随着时间的推移,集群内数据库实例之间的负载差异很大,直至产生热点数据库,限制整个集群的性能,给平台服务质量带来较大的负面影响。

三是过期timeline索引删除消耗过多的资源。由于传统数据库一般没有自动过期策略,所以需要专门的服务定期清理过期的timeline索引。清理服务会消耗可观的服务资源,同时与正常的业务竞争数据库资源。

发明内容

本发明其中一个发明目的在于提供一种多对象存储的云视频Timeline存储方法和系统,所述方法和系统在存储时,可以将raw文件元信息编码进对象存储key,使得所述对象存储key可以实现自我描述的功能,从而在查询时通过raw文件key规则匹配raw文件列表,从匹配的所述raw文件列表反向生成Timeline,从而无需单独设置的Timeline索引,显著降低了存储成本和运维复杂度。

本发明另一个发明目的在于提供一种多对象存储的云视频Timeline存储方法和系统,所述方法和系统借助对象存储服务的生命周期,实现raw文件的自动清理,无需单独部署清理服务,可以节省服务资源,避免清理服务和正常业务竞争存储资源。

本发明另一个发明目的在于提供一种多对象存储的云视频Timeline存储方法和系统,所述方法和系统将多个raw文件存储到不同的对象中,通过对多个对象的存储,一个摄像头的云视频可以存储到多个对象存储中,通过组合查询多个对象存储,可以动态拓展存储资源,综合考虑对象存储的可用性、存储负载、地域和网络等因素,实现择优存储,以提高存储的伸缩性和可靠性。

为了实现至少一个上述发明目的,本发明进一步提供一种多对象存储的云视频Timeline存储方法,所述方法包括如下步骤:

获取对象存储,计算所述对象存储的质量分数;

选取最优的质量分数的对象存储作为目标对象存储;

生成raw文件和所述raw文件key,将所述raw文件和raw文件key保存于目标对象存储中;

判断当前目标对象存储是否变更,若变更则保存对象存储变更记录。

根据本发明其中一个较佳实施例,所述raw文件key生成方法包括如下步骤:

获取摄像头唯一标识,获取raw文件视频开始时间戳和结束时间戳;

将所述raw文件视频开始时间戳转化为年月日格式的时间;

将所述摄像头唯一标识、raw文件视频开始时间戳、raw文件视频结束时间戳和转化为年月日格式的时间组合生成具有字符串形式的raw文件key;

将生成的所述raw文件key保存。

根据本发明另一个较佳实施例,在获取生成的raw文件key,设置所述raw文件的过期时间,若时间超过所述过期时间,则自动清理目标对象存储中的所述raw文件。

根据本发明另一个较佳实施例,若判断当前所使用的对象存储和上一次是否相同,若不同则生成对象存储变更记录,将所述对象存储变更记录保存于数据库中。

根据本发明另一个较佳实施例,所述方法包括查询阶段,所述查询阶段包括:获取摄像头的变更记录,并根据用户预设的查询时间范围进行过滤,获取目标变更范围内的变更记录。

根据本发明另一个较佳实施例,根据所述raw文件key生成规则生成key前缀,所述key前缀,所述key前缀包括以天为单位的字符串和以小时为单位的字符串。

根据本发明另一个较佳实施例,所述查询阶段还包括:调用对象存储服务,获取相匹配key前缀的所有raw文件;遍历所述对象存储服务的所有变更记录,调用所有具有在变更记录中的对象存储,并汇总为符合查询时间范围所有raw文件,生成raw文件列表,解析所述raw文件列表,并反向生成timeline,

根据本发明另一个较佳实施例,所述查询阶段还包括:获取对象存储的属性维度,根据所述属性维度进行去重查询。

为了实现至少一个上述发明目的,本发明进一步提供一种多对象存储的云视频Timeline存储系统,所述系统执行上述一种多对象存储的云视频Timeline存储方法。

本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行上述一种多对象存储的云视频Timeline存储方法。

附图说明

图1显示的是本发明一种多对象存储的云视频Timeline存储方法的流程示意图。

图2显示的是本发明一种多对象存储的云视频Timeline存储方法中查询阶段的流程示意图。

具体实施方式

以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。

可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。

请参考图1和图2,本发明公开了一种多对象存储的云视频Timeline存储方法和系统,所述方法主要包括如下步骤:首先是存储阶段,由于每一摄像头的视频可以被存储在多对象存储中,所述多对象存储既可以是不同云服务商提供的不同类型的对象存储,也可以是相同云服务商提供的多个不同区域的对象存储。通过根据不同维度的组合查询,将不同对象存储的查询结果汇总后反向生成timeline,从而使得无需设置timeline服务,减少服务维护成本,并可以动态拓展对象存储资源,并且可以在节点故障时,动态调整对象存储,提高存储的稳定性。

具体而言,先获取摄像头的raw文件,所述raw文件是摄像头的视频存储文件,当摄像头开启视频拍摄时可以生成所述raw文件。在存储阶段调用存储服务,所述存储服务获取多个对象存储的属性,并根据所述对象存储的属性判断最优的对象存储进行存储,其中对象存储属性包括但不仅限于可用性,负载、存储位置、网络状况等,其中所述对象存储属性可以被量化为具体数值,比如可用性可以被量化为可用的存储数量和总对象存储数量之比,负载可以被量化计算为:当前对象存储已存储的raw文件空间和当前对象存储总的存储空间,所述存储位置可以是本地存储和不同的云端存储,并根据存储效果进行量化赋值,所述网络状况可以计算网络延迟量进行量化赋值。进一步的,根据所述当前对象存储的属性计算当前对象存储的质量分数,其中所述质量分数的值可以是根据不同对象存储的属性进行加权求和,针对每一不同对象存储的权值可以根据需求进行配置,本发明对此不再详细描述。

通过上述质量分数作为摄像头raw存储策略执行相关对象存储的调用操作,当raw文件在摄像头端生成时,需要对所述raw文件进行key赋值,其中所述key赋值的方法包括:

获取生成所述raw文件对应摄像头的唯一标识;获取当前raw文件的视频开始时间戳和视频结束时间戳;将所述raw文件视频开始时间戳转化为以天为单位的时间字符串,并另外将所述raw文件视频开始时间戳转化为以小时为单位的时间字符串,进一步将上述多个字符串组合成为raw文件key,所述raw文件key的形式可以是:

raw_file/{deviceId}/{yyyyMMdd}/{HH}/{startTime}_{endTime};

其中raw_file表示raw文件,deviceId表示对应摄像头的唯一标识,yyyyMMdd表示以天为单位的时间字符串,HH表示以小时为单位的时间字符串,startTime表示raw文件视频开始时间戳,endTime表示raw文件视频结束时间戳。其中上述raw文件key的形式的括号内均填充对应的字符串值。举例来说:

摄像头deviceId为:ab28965dc491,生成的时间戳为:1629343440000~1629343500000,对应的时间字符串分别为:2021-08-19 11:24:00~2021-08-19 11:25:00,上述raw文件key的值可以为:

raw_file/ab28965dc491/20210819/11/1629343440000_1629343500000。

进一步将上述raw文件和raw文件key保存值最优的对象存储中,设置所述raw文件和raw文件key的保存过期时间,若保存的对象存储时间大于所述保存过期时间,则自动清除该raw文件和raw文件key,从而可以借助对象存储服务的生命周期管理策略实现timeline的定期清理操作,无需单独部署清理服务,减少非业务的存储资源竞争。其中进一步判断对象存储是否有变更记录,若存在变更记录则将所述变更记录保存,所述变更记录为对象存储的调用情况,若所述raw文件和raw文件key当前对象存储调用和上一次对象存储调用则说明存在对象存储调用的变更记录。

值得一提的是,所述存储方法还包括查询阶段,所述查询阶段包括:

调用对象存储的查询服务,获取摄像头的存储变更记录;

根据对象存储的维度进行去重操作,所述去重操作包括:根据所述存储位置、变更记录等维度判断查询到的对象存储是否是同一对象存储,若是则删除相同的对象存储;

获取查询服务中用户需要查询指定时间范围内的raw文件

根据raw文件key的生成规则生成用于匹配查询的key前缀;

根据所述key前缀调用对象存储服务匹配所有的raw文件;

遍历所有变更记录,并调用所有相关raw文件的对象存储,并将所述对象存储中的raw文件汇根据所述key前缀汇总生成raw文件列表;

解析所述raw文件列表,反向生成timeline;

可将所述反向生成的timeline;

其中所述key前缀的形式分别包括以天为单位查询形式和以小时为单位的查询形式,以天为单位的查询形式为:raw_file/{deviceId}/{yyyyMMdd},以小时为单位的查询形式为:raw_file/{deviceId}/{yyyyMMdd}/{HH}。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线段、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线段的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线段、电线段、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明,本发明的目的已经完整并有效地实现,本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于半监督学习的密集视频描述算法的视频查询检索方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!