发明内容
有鉴于此,本发明提供了一种视频流数据的存储方法及装置,满足智慧城市中海量视频流数据的存储需求。
为了实现上述发明目的,本发明提供的具体技术方案如下:
一种视频流数据的存储方法,包括:
获取待存储视频流数据,并将所述待存储视频流数据缓存为多个预设容量的视频数据文件;
根据预设调度策略确定所述待存储视频流数据在存储系统中多个存储层级中的目标存储层级;
按视频数据文件的时间顺序将所述待存储视频流数据的多个视频数据文件分别存储在所述目标存储层级的第一个可用定制分区的第一个可用块文件对应的多个连续可用数据片中。
优选的,所述将所述待存储视频流数据缓存为多个预设容量的视频数据文件,包括:
对所述待存储视频流数据进行缓存;基于视频感知编码技术对所述待存储视频流数据进行编码压缩,得到压缩后的待存储视频数据;
按压缩后的待存储视频数据中每一帧视频数据的时间顺序,将压缩后的待存储视频数据分解为多个预设容量的视频数据文件。
优选的,所述根据预设调度策略确定所述待存储视频流数据在存储系统中多个存储层级中的目标存储层级,包括:
调用视频流数据类型与存储系统中存储层级映射关系表,根据所述待存储视频流数据的类型确定所述待存储视频流数据的目标存储层级。
优选的,每个存储层级对应特定类型的存储介质,不同存储层级对应的存储介质的类型不同。
优选的,所述方法还包括:
生成块文件配置文件,所述块文件配置文件中记录了块文件的容量,使每个块文件只能存储一个视频流数据;
根据所述块文件配置文件在存储系统中的每个经过分区初始化的磁盘分区中创建多个容量相同的块文件;
生成数据片配置文件,所述数据片配置文件中记录了数据片的大小;
根据所述数据片配置文件在每个块文件中创建多个数据片。
优选的,每个块文件具有唯一的块文件序号,每个数据片具有唯一的数据片序号,所述待存储视频流数据的元数据为存储所述待存储视频流数据的块文件序号、及其块文件中的数据片序号。
优选的,所述方法还包括:
根据所述待存储视频流数据的元数据,提取存储所述待存储视频流数据块文件序号和数据片序号;
对存储所述待存储视频流数据的数据片序号对应的数据进行组合,得到所述待存储视频流数据。
优选的,存储系统包括高速连续存储分区和低速连续存储分区,所述高速连续存储分区对应至少一个存储层级,所述低速连续存储分区对应至少一个存储层级。
优选的,所述方法还包括:
将所述高速连续存储分区的过期周期设置为一级过期周期,并将所述低速连续存储分区的过期周期设置为二级过期周期。
优选的,所述方法还包括:
将所述待存储视频流数据优先写入所述高速连续存储分区中相应的目标存储层级中,并将所述待存储视频流数据备份到所述低速连续存储分区;
当所述低速连续存储分区已经写满视频流数据且已写入的视频流数据未过期时,将所述已写满视频流数据的存储分区从工作状态切换为休眠状态。
一种视频流数据的存储装置,包括:
获取单元,用于获取待存储视频流数据,并将所述待存储视频流数据缓存为多个预设容量的视频数据文件;
确定单元,用于根据预设调度策略确定所述待存储视频流数据在存储系统中多个存储层级中的目标存储层级;
存储单元,用于按视频数据文件的时间顺序将所述待存储视频流数据的多个视频数据文件分别存储在所述目标存储层级的第一个可用定制分区的第一个可用块文件对应的多个连续可用数据片中。
相对于现有技术,本发明的有益效果如下:
本发明公开的一种视频流数据的存储方法及装置,在获取待存储视频流数据之后,根据预设调度策略确定所述待存储视频流数据的目标存储层级,并将所述待存储视频流数据存储在所述目标存储层级的第一个可用定制分区的第一个可用块文件对应的多个连续可用数据片中,使视频流数据在目标存储层级的块文件之间按顺序进行连续存储,并使视频流数据在块文件中的多个连续可用数据片中按顺序连续存储,提高了磁盘I/O吞吐率和存储系统的并发写入性能,避免了视频流数据的离散化存储,实现了智慧城市中海量视频流数据的分层、分块文件以及分片持续存储。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明通过预先在存储系统创建的视频数据的流式数据存储模型,实现视频流数据的在存储系统中的分层、分块文件以及分片连续存储。其中,视频数据的流式数据存储模型中实现视频流数据的分层存储管理、磁盘连续存储、磁盘分区离线复制和休眠调度等功能,具体通过下面实施例进行说明。
请参阅图1,图1为本实施例公开的一种视频流数据的存储方法流程图,所述方法具体包括以下步骤:
S101:获取待存储视频流数据,并将所述待存储视频流数据缓存为多个预设容量的视频数据文件;
当本实施例应用于智慧城市时,所述待存储视频流数据可以为智慧城市中任意一个摄像头拍摄得到的视频流数据。
所述将所述待存储视频流数据缓存为多个预设容量的视频数据文件,包括:
对所述待存储视频流数据进行缓存;
基于视频感知编码技术对所述待存储视频流数据进行编码压缩,得到压缩后的待存储视频数据;
按压缩后的待存储视频数据中每一帧视频数据的时间顺序,将压缩后的待存储视频数据分解为多个预设容量的视频数据文件。
视频感知编码技术具体为:提取待存储视频流数据中的显著对象,显著对象为后续视频数据分析的对象,如交通执法监控视频流数据中,包括车牌的车体为显著对象。在提取待存储视频流数据中的显著对象之后,对其进行高质量编码,对待存储视频流数据中的其他区域进行低质量的编码,这样不仅不会影响待存储视频流数据整体信噪比,同时可以得到较高的压缩比,在视频编码过程中利用显著对象部分的量化参数进而减少编码比特,该方法在不降低感知质量的同时节省了码率。
需要说明的是,视频数据文件的预设容量与数据片的容量是相同的。
S102:根据预设调度策略确定所述待存储视频流数据在存储系统中多个存储层级中的目标存储层级;
存储系统为存储视频流数据的系统,可以为分布式存储系统,也可以为集中式存储系统,当存储系统为分布式存储系统时,存储系统易扩展。
优选的,可以根据存储系统中每种存储介质的类型确定每种存储介质的存储层级,每个存储层级对应特定类型的存储介质,不同存储层级对应的存储介质的类型不同。例如,存储系统中包括SSD、SATA、磁带等存储介质,对SSD、SATA、磁带等存储介质进行0~N级分层,0层读写效率最高,层级数越大读写效率越低。
存储系统可以通过专门的调度子系统根据预设调度策略确定所述待存储视频流数据的目标存储层级,目标存储层级为所述待存储视频流数据需要写入的存储层级。优选的,调用视频流数据类型与存储系统中存储层级映射关系表,根据所述待存储视频流数据的类型确定所述待存储视频流数据的目标存储层级。
需要说明的是,视频流数据类型与存储层级映射关系表定义了不同视频流数据类型与存储系统中存储层级映射关系,视频流数据的类型可以根据存储需求自定义设定,如,根据视频流数据的来源将视频流数据自定义为频繁读写视频流数据和非频繁读写视频流数据,将频繁读写的视频流数据存储在层级数小的存储层级中,将非频繁读写的视频流数据存储在层级数大的存储层级中。
当然,以上只是一种优选的实施方法,预设调度策略还可以为预设的负载均衡策略,实现存储系统的负载均衡。
S103:按视频数据文件的时间顺序将所述待存储视频流数据的多个视频数据文件分别存储在所述目标存储层级的第一个可用定制分区的第一个可用块文件对应的多个连续可用数据片中。
存储系统中每个磁盘在初始化后都会创建一系列相同大小的空白文件,称之为块文件(BLK),每个块文件中创建连续多个相同大小的数据片。
可用定制分区为磁盘中空的定制分区,可用块文件为定制分区中空的块文件,可以理解的是,可用数据片为空的数据片。
具体的,所述方法还包括:
生成块文件配置文件,所述块文件配置文件中记录了块文件的容量,使每个块文件只能存储一个视频流数据;避免了视频流数据的离散存储。
根据所述块文件配置文件在存储系统中的每个经过分区初始化的磁盘分区中创建多个容量相同的块文件;
生成数据片配置文件,所述数据片配置文件中记录了数据片的容量;
根据所述数据片配置文件在每个块文件中创建多个数据片。
需要说明的是,可以通过修改块文件配置文件修改块文件的大小,还可以通过修改数据片配置文件修改数据片的大小。避免了当需要修改块文件大小或数据片文件大小时修改硬编码,提高了存储系统的开发、运维效率,降低了运维成本。
由于待存储视频流数据始终存储在目标存储层级中的第一个可用块文件中,保证了视频流数据在块文件之间按顺序存储,最大程度上减少了磁盘磁头的来回移动次数。
各个磁盘分区的块文件中,文件从创建后就一直存在,不需要反复的进行删除和创建。连续块文件所对应的物理磁盘块亦是连续分配的。所以只需保证在块文件之间和在块文件上按顺序进行覆盖写入视频数据文件,就可以最大程度上减少磁盘磁头的来回移动次数。
本实施例公开的一种视频流数据的存储方法,在获取待存储视频流数据之后,根据预设调度策略确定所述待存储视频流数据的目标存储层级,并将所述待存储视频流数据存储在所述目标存储层级的第一个可用定制分区的第一个可用块文件对应的多个连续可用数据片中,使视频流数据在目标存储层级的块文件之间按顺序进行连续存储,并使视频流数据在块文件中的多个连续可用数据片中按顺序连续存储,提高了磁盘I/O吞吐率和存储系统的并发写入性能,避免了视频流数据的离散化存储,实现了智慧城市中海量视频流数据的分层、分块文件以及分片持续存储。
基于上述实施例公开的一种视频流数据的存储方法,每个块文件具有唯一的块文件序号,每个数据片具有唯一的数据片序号,所述待存储视频流数据的元数据为存储所述待存储视频流数据的块文件序号、及其块文件中的数据片序号。
在此基础上,根据所述待存储视频流数据的元数据,提取存储所述待存储视频流数据块文件序号和数据片序号;
对存储所述待存储视频流数据的数据片序号对应的数据进行组合,得到所述待存储视频流数据。
本实施例公开的视频流数据的存储方法,降低了视频流数据的元数据的规模,降低了存储系统对视频流数据的元数据的压力。同时,根据所述待存储视频流数据的元数据,提取存储所述待存储视频流数据块文件序号和数据片序号;对存储所述待存储视频流数据的数据片序号对应的数据进行组合,得到所述待存储视频流数据。提高了视频流数据的复原效率。
优选的,存储系统包括高速连续存储分区和低速连续存储分区,所述高速连续存储分区对应至少一个存储层级,所述低速连续存储分区对应至少一个存储层级。
将所述高速连续存储分区的过期周期设置为一级过期周期,如10天;并将所述低速连续存储分区的过期周期设置为二级过期周期,如20天。由此带来的数据冗余机制实现简单,调整灵活,比较好提升系统使用体验。
存储系统内实现的一种分区离线复制的机制,实现存储系统内各个磁盘连续存储分区的工作状态和休眠状态的快速切换。将所述待存储视频流数据优先写入所述高速连续存储分区中相应的目标存储层级中,并将所述待存储视频流数据备份到所述低速连续存储分区;当所述低速连续存储分区已经写满视频流数据且已写入的视频流数据未过期,将所述已写满视频流数据的存储分区从工作状态切换为休眠状态。及时地将存满数据的磁盘调度进入休眠状态,减低耗能并延长磁盘寿命。满足7*24小时不间断运转,保证磁盘长时间处于正常工作状态。
当存储系统为分布式存储管理系统时,其连续存储模型既可以基于单磁盘部署,可也可以通过磁盘阵列实施。磁盘连续存储模型面向高并发视频写入速率。我们同样采用对应的方式解决并行读写的操作,实现读写分离。
基于上述实施例公开的一种视频流数据的存储方法,请参阅图2,本实施例对应公开了一种视频流数据的存储装置,包括:
获取单元201,用于获取待存储视频流数据,并将所述待存储视频流数据缓存为多个预设容量的视频数据文件;
确定单元202,用于根据预设调度策略确定所述待存储视频流数据在存储系统中多个存储层级中的目标存储层级;
存储单元203,用于按视频数据文件的时间顺序将所述待存储视频流数据的多个视频数据文件分别存储在所述目标存储层级的第一个可用定制分区的第一个可用块文件对应的多个连续可用数据片中。
本实施例公开的一种视频流数据的存储装置,在获取待存储视频流数据之后,根据预设调度策略确定所述待存储视频流数据的目标存储层级,并将所述待存储视频流数据存储在所述目标存储层级的第一个定制分区的第一个可用块文件对应的多个连续可用数据片中,使视频流数据在目标存储层级的块文件之间按顺序进行连续存储,并使视频流数据在块文件中的多个连续可用数据片中按顺序连续存储,提高了磁盘I/O吞吐率和存储系统的并发写入性能,避免了视频流数据的离散化存储,实现了智慧城市中海量视频流数据的分层、分块文件以及分片持续存储。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。