CN115934999A - 一种基于块文件的视频流数据存储方法、装置及介质 - Google Patents
一种基于块文件的视频流数据存储方法、装置及介质 Download PDFInfo
- Publication number
- CN115934999A CN115934999A CN202310017981.XA CN202310017981A CN115934999A CN 115934999 A CN115934999 A CN 115934999A CN 202310017981 A CN202310017981 A CN 202310017981A CN 115934999 A CN115934999 A CN 115934999A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- block file
- block
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013500 data storage Methods 0.000 title claims abstract description 47
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 17
- 238000013507 mapping Methods 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 abstract description 10
- 238000007726 management method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 210000001503 joint Anatomy 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及安防监控技术领域,公开了一种基于块文件的视频流数据存储方法、装置及介质,包括:将对象存储提供的存储空间抽象为目标数量的块文件,在定义块文件的元数据后创建块文件,当接收到数据写入指令时,通过映射算法定位待写入块文件中目标写入对象在待写入块文件中的具***置以便将目标数据写入待写入块文件。由此,不再存储离散的对象的元数据,通过将对象存储提供的存储空间抽象为多个块文件,基于块文件将离散的视频流数据关联起来,并将视频流数据以顺序追加的方式流式存储到块文件上,避免采用对象存储影响视频数据间的关联性,保证了数据读写的性能,以及存储数据层写入物理设备的性能。同时避免大量数据丢失,节约存储空间。
Description
技术领域
本申请涉及安防监控技术领域,特别是涉及一种基于块文件的视频流数据存储方法、装置及介质。
背景技术
随着安防监控的不断发展,对视频存储的容量、读写性能、可靠性和扩展性等性能提出了更高的要求。视频存储分为存储业务层和存储数据层,存储业务层是负责视频流数据的存储管理,承担视频存储的业务功能并生成与视频业务相关的元数据,此外,处理存储数据层的资源分配和对接,记录数据在存储数据层的相关信息,以便后续能够有效的进行数据读取。存储数据层是为数据提供物理的存储空间,保证数据在存储空间的分布均衡,提供存入数据的安全保护,保障数据读写的IO性能,其中,存储数据层一般包括物理磁盘、文件***、块设备、对象存储。
摄像机产生的实时视频流是一种流式数据,数据是连续不间断的,目前,常用的视频存储方式为对象存储,对象存储是将数据作为离散的对象进行存储,每个对象是相互独立而无关联的。因此,需要通过存储业务层将收到的视频流数据在内存中缓存,直到缓存的数据大小接近对象的大小时,再将缓存的数据作为一个对象存储到对象存储里,并由存储业务层将这些离散的对象关联起来。
然而,这样的存储方式,存在以下问题:
(1)当对象长度定义的太小时,会导致存储业务层的元数据太多,不仅增大元数据占用的存储空间,还降低数据的读写性能。
(2)当对象长度定义的太大时,会导致存储数据层的分布不均衡,降低存储数据层写入物理设备的性能,如果存储业务层发生故障,内存中缓存的数据越大导致丢失的录像越多。
(3)为了保证视频流的一帧数据不被截断分布到两个不同的对象上,所以每个对象都要有预留空间,进而导致了存储空间的浪费。
由此可见,在视频流数据存储时,如何保证视频流数据间的关联性,数据的读写性能,存储数据层写入物理设备的性能,避免大量数据丢失的同时,节约存储空间,是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种基于块文件的视频流数据存储方法、装置及介质,在视频流数据存储时,保证视频流数据间的关联性,数据的读写性能,存储数据层写入物理设备的性能,避免大量数据丢失的同时,节约存储空间。
为解决上述技术问题,本申请提供一种基于块文件的视频流数据存储方法,包括:
将对象存储提供的存储空间抽象为目标数量的块文件;
定义所述块文件的元数据;
基于所述元数据创建所述块文件;
在接收到数据写入指令后,通过映射算法定位待写入块文件中目标写入对象在所述待写入块文件中的具***置以便将目标数据写入所述待写入块文件。
优选地,定义的元数据包括块文件标识和元数据相关属性,所述基于所述元数据创建所述块文件包括:
获取存储空间大小、存储节点总数和所述块文件的预设大小;
基于所述存储空间大小、所述存储节点总数和所述预设大小的块文件构建不同存储节点中的块文件标识;
初始化所述元数据相关属性以完成所述块文件的创建。
优选地,所述基于所述存储空间大小、所述存储节点总数和所述预设大小构建不同存储节点中的块文件标识包括:
根据所述存储空间大小和所述存储节点总数计算各所述存储节点上平均可用存储空间;
通过自加运算定义出各存储节点上的块文件名;
将各所述存储节点的节点名和对应的块文件名进行组合得到不同存储节点中的块文件标识。
优选地,所述将对象存储提供的存储空间抽象为目标数量的块文件包括:
获取存储空间大小和所述块文件的预设大小;
根据所述存储空间大小和所述预设大小计算所述目标数量;
将所述存储空间抽象为所述目标数量的块文件。
优选地,所述通过映射算法定位待写入块文件中目标写入对象在所述待写入块文件中的具***置以便将目标数据写入所述待写入块文件包括:
将块文件相关信息存储至所述待写入块文件的固定位置中;其中,所述块文件相关信息至少包括所述待写入块文件的大小,对象大小,以及摄像机通道标识;
基于所述块文件相关信息的存储位置,更新所述待写入块文件的当前结束偏移量;
在接收到所述目标数据后,按照帧头、帧数据的顺序缓存所述目标数据得到缓存数据;
根据所述当前结束偏移量和所述缓存数据的大小,通过所述映射算法确定所述目标写入对象的具***置;
将所述缓存数据写入所述目标写入对象的具***置。
优选地,在所述将所述缓存数据写入所述目标写入对象的具***置之后还包括:
将所述目标数据对应的各关键帧存储时间,以及关键帧在对应块文件中的偏移量作为时间段元数据信息进行记录。
优选地,所述的基于块文件的视频流数据存储方法还包括:
在接收到数据读取指令之后,通过待读取数据对应的目标时间段元数据信息定位存储所述待读取数据的目标块文件;
确定所述目标时间段元数据信息中存储时间范围内存储时间最早的关键帧对应的目标偏移量;
根据所述目标块文件和所述目标偏移量连续读取所述待读取数据。
为了解决上述技术问题,本申请还提供了一种基于块文件的视频流数据存储装置,包括:
抽象模块,用于将对象存储提供的存储空间抽象为目标数量的块文件;
定义模块,用于定义所述块文件的元数据;
创建模块,用于基于所述元数据创建所述块文件;
定位模块,用于在接收到数据写入指令后,通过映射算法定位待写入块文件中目标写入对象在所述待写入块文件中的具***置以便将目标数据写入所述待写入块文件。
为了解决上述技术问题,本申请还提供了一种基于块文件的视频流数据存储装置,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现所述的基于块文件的视频流数据存储方法的步骤
为了解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于块文件的视频流数据存储方法的步骤。
本发明所提供的一种基于块文件的视频流数据存储方法,包括:将对象存储提供的存储空间抽象为目标数量的块文件,定义块文件的元数据,并基于定义的元数据创建块文件,创建块文件后,若接收到数据写入指令,则通过映射算法定位待写入块文件中目标写入对象在待写入块文件中的具***置以便将目标数据写入待写入块文件。由此可见,本申请所提供的技术方案,不再存储离散的对象的元数据,通过将对象存储提供的存储空间抽象为多个块文件,基于元数据较小的块文件将离散的视频流数据关联起来,不受对象大小的影响,将视频流数据以顺序追加的方式流式存储到块文件上,避免采用对象存储影响视频数据间的关联性,保证了数据读写的性能,以及存储数据层写入物理设备的性能。同时,基于块文件的流式存储还可避免大量数据的丢失,并节约存储空间。
此外,本申请还提供一种基于块文件的视频流数据存储装置和介质,与上述的基于块文件的视频流数据存储方法相对应,效果同上。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种基于块文件的视频流数据存储的***结构图;
图2为本申请实施例所提供的一种基于块文件的视频流数据存储方法的流程图;
图3为本申请实施例提供的一种块文件的结构图;
图4为本申请另一实施例所提供的一种块文件的结构图;
图5为本申请实施例所提供的一种基于块文件的视频流数据存储装置的结构图;
图6为本申请另一实施例提供的一种基于块文件的视频流数据存储装置的结构图;
附图标记如下:1为存储业务层,2为安防监控管理平台,3为对象存储。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的核心是提供一种基于块文件的视频流数据存储方法、装置及介质,将对象存储提供的存储空间抽象为多个块文件,并基于块文件将视频数据流式进行存储,不受对象大小的影响,且保证了视频数据间的关联性,数据读写的性能,以及存储数据层写入物理设备的性能,同时避免数据丢失,节约存储资源。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
随着安防监控的不断发展,对视频存储的容量、读写性能、可靠性和扩展性等性能提出了更高的要求。视频存储分为存储业务层和存储数据层,存储业务层是负责视频流数据的存储管理,承担视频存储的业务功能并生成与视频业务相关的元数据,此外,处理存储数据层的资源分配和对接,记录数据在存储数据层的相关信息,以便后续能够有效的进行数据读取。存储数据层是为数据提供物理的存储空间,保证数据在存储空间的分布均衡,提供存入数据的安全保护,保障数据读写的IO性能,其中,存储数据层一般包括物理磁盘、文件***、块设备、对象存储。
摄像机产生的实时视频流是一种流式数据,数据是连续不间断的,目前,常用的视频存储方式为对象存储,对象存储是将数据作为离散的对象进行存储,每个对象是相互独立而无关联的。因此,需要通过存储业务层将收到的视频流数据在内存中缓存,直到缓存的数据大小接近对象的大小时,再将缓存的数据作为一个对象存储到对象存储里,并由存储业务层将这些离散的对象关联起来。
然而,这样的存储方式,存在以下问题:
(1)当对象长度定义的太小时,会导致存储业务层的元数据太多,不仅增大元数据占用的存储空间,还降低数据的读写性能。
(2)当对象长度定义的太大时,会导致存储数据层的分布不均衡,降低存储数据层写入物理设备的性能,如果存储业务层发生故障,内存中缓存的数据越大导致丢失的录像越多。
(3)为了保证视频流的一帧数据不被截断分布到两个不同的对象上,所以每个对象都要有预留空间,进而导致了存储空间的浪费。
为了解决上述技术问题,在视频流数据存储时,保证视频流数据间的关联性,数据的读写性能,存储数据层写入物理设备的性能,避免大量数据丢失的同时,节约存储空间,本申请实施例提供了一种基于块文件的视频流数据存储方法,将对象存储所提供的存储空间抽象为多个块文件,并基于块文件实现数据流式存储,保证视频数据间的关联性,避免对象大小对视频存储的影响。
为了便于理解,先对本申请的应用环境进行介绍,本申请所提供的视频流数据存储在存储业务层实现,图1为本申请实施例所提供的一种基于块文件的视频流数据存储的***结构图,如图1所示,存储业务层1作为一个独立的中间层***,上层安防监控管理平台2提供统一的API接口为存储业务层1进行视频流数据读写,下层通过数据存储引擎与存储数据层的对象存储3进行对接。其中,存储业务层1用于元数据管理、集群管理、业务功能、资源管理和数据处理等。
此外,需要对本申请所涉及的帧、时间段、通道和块文件名词进行解释:
帧:帧是视频存储中的最小单元,安防监控管理平台2提供统一的API接口都是以帧为单位进行数据交互,帧除了要存储的视频数据本身外,还需要存储包括帧时间、数据长度、帧标识(是否为关键帧)等帧头信息。
时间段:帧的容器,理论上可以存储任意多的帧,但因其他条件的限制,连续的帧不一定会存储在同一时间段上。
通道:时间段的容器,通道用于标识产生实时视频流的摄像机,具有唯一标识摄像机的特性,由用户进行创建和定义。
块文件:属于配置管理的概念,不暴露给存储业务层1的用户,是抽象出来用于存储帧的逻辑存储形式。
图2为本申请实施例所提供的一种基于块文件的视频流数据存储方法的流程图,如图2所述,该方法包括:
S10:将对象存储提供的存储空间抽象为目标数量的块文件;
在具体实施例中,抽象块文件时先获取对象存储3提供的存储空间大小,并计算存储空间大小可抽象为多少个预设大小的块文件,例如,存储空间为20G,且预设的块文件大小为1G,则当前对象存储3提供的存储空间可抽象为20个固定大小的块文件。其中,块文件的大小可根据实际业务需求进行设定,对此本申请不作限定。
值得注意的是,目标数量指的是根据当前对象存储3提供高的存储空间所确定的可抽象的块文件数量。
S11:定义块文件的元数据;
确定对象存储3提供的存储空间可抽象的块文件数量后,定义块文件的元数据,定义元数据时,元数据包括块文件标识(Key)和元数据相关属性(Value)。可以理解的是,Key用于唯一标识各块文件,实施中,Key由存储节点的节点名和块文件名组成。
Value包括节点地址,块文件名,块文件大小,对象大小,摄像机通道标识(用于唯一标识产生视频流数据的摄像机通道),时间段列表,第一帧时间,结束偏移量和块文件状态等,其中,块文件状态包括空闲块、已写满、未写满和已淘汰。
基于块文件元数据的定义可知,块文件元数据信息较少,服务运行过程中可将块文件元数据加载到内存中,进而提高数据的读写性能。
S12:基于元数据创建块文件;
通过步骤S11定义块文件的元数据后,基于定义的元数据创建块文件,首先根据存储空间大小、存储节点总数和预设大小构建不同存储节点中的块文件标识,然后初始化Value后完成块文件的创建。
其中,在构建块文件标识时,先确定当前存储节点可平均分配到的存储空间,然后根据各节点的存储空间和预设大小的块文件确定块文件的数量,并使用自加运算的方式定义各块文件的块文件名,将块文件名和对应节点的节点名进行组合得到块文件标识。
S13:在接收到数据写入指令后,通过映射算法定位待写入块文件中目标写入对象在待写入块文件中的具***置以便将目标数据写入待写入块文件。
块文件创建后,若接收到安防监控管理平台2发送的数据写入指令,通过映射算法定位待写入块文件中目标写入对象在待写入块文件中的具***置,定位到具***置后,逻辑流式存储视频数据。
在定位待写入块文件中的目标写入对象时,需要先将块文件相关信息存储至待写入块文件的固定位置中,即,每个块文件中有一个固定位置用于存储块文件相关信息,其中块文件相关信息至少包括块文件的大小,对象大小和摄像机通道标识。
进一步的,基于块文件相关信息的存储位置更新待写入块文件的当前结束偏移量,在将视频数据按照帧头、帧数据的顺序缓存得到缓存数据后,根据该当前结束偏移量和缓存数据的大小,通过映射算法确定目标写入对象的具***置,进而将缓存数据写入目标写入对象以完成视频数据的写入。
本申请实施例所提供的基于块文件的视频流数据存储方法,包括:将对象存储提供的存储空间抽象为目标数量的块文件,定义块文件的元数据,并基于定义的元数据创建块文件,创建块文件后,若接收到数据写入指令,则通过映射算法定位待写入块文件中目标写入对象在待写入块文件中的具***置以便将目标数据写入待写入块文件。由此可见,本申请所提供的技术方案,不再存储离散的对象的元数据,通过将对象存储提供的存储空间抽象为多个块文件,基于元数据较小的块文件将离散的视频流数据关联起来,不受对象大小的影响,将视频流数据以顺序追加的方式流式存储到块文件上,避免采用对象存储影响视频数据间的关联性,保证了数据读写的性能,以及存储数据层写入物理设备的性能。同时,基于块文件的流式存储还可避免大量数据的丢失,并节约存储空间。
在具体实施例中,定义块文件元数据后,创建块文件时,先获取存储空间大小、存储节点总数和块文件的预设大小,以便于基于存储空间大小、存储节点总数和预设大小构建不同存储节点中的块文件标识。
构建块文件标识时,通过对象存储提供的存储空间大小和存储节点总数计算出平均每个存储节点可用的存储空间,并根据各存储节点的平均可用存储空间和块文件预设大小确定每个存储节点的平均可用存储空间可抽象出多少个逻辑块文件。
进一步的,使用自加运算定义各存储节点上的块文件名,为了便于理解,下面将举例说明。例如,每个存储节点的平均可用存储空间为10G,且预设块文件大小为1G,从数字0开始定义各块文件名,各存储节点上包括文件名为0至9的块文件。
事实上,各存储节点均有唯一标识的节点名,由此,将各存储节点的节点名与对应的块文件名进行组合即可得到在存储空间中唯一标识块文件的块文件标识。例如,节点共有10个,且节点名分别为0至9,每个存储节点上的块文件包括10个,且块文件名也为0-9,则节点名为0的第一个块文件的块文件标识为00,第二个块文件的块文件标识为01。而块文件标识为63则表示节点名为6的第3个块文件。
在构建块文件标识后,对块文件中的元数据相关属性进行初始化以完成块文件的创建。
本申请所提供的技术方案,根据块文件的预设大小和对象大小可在内部推算出每个块文件包括的对象数量,从0至n对这些对象进行编号,然后将块文件标识和对象标号进行组合即可得到在对象存储中唯一标识对象的对象名。
可以理解的是,定义块文件的元数据时,元数据包括块文件标识Key和元数据相关属性Value,而Value包括节点地址,块文件名,块文件大小,对象大小,摄像机通道标识。由此,可以看出块文件上所包含的对象不用在元数据汇总体现,由***内部计算而得。
图3为本申请实施例提供的一种块文件的结构图,为了便于理解,下面将结合图3进行说明。假设块文件的大小为1G,对象大小为4M,则一个块文件中包括256个对象,如图3所示,存储空间抽象为N个大小为1G的块文件,NodeName_1_0则表征第1个块文件中的第1个对象,NodeName_5_255保证第2个块文件中的第256个对象。
显然,本申请基于块文件对视频流数据进行存储,因此,无论块文件中对象定义为多大,对视频流数据的业务不会产生影响。
本申请实施例所提供的基于块文件的视频流数据存储方法,基于块文件进行视频流数据的存储,则不论块文件中的对象定义为多少,均不会对视频存储业务产生影响,由此,可避免对象存储中由于对象大小设定不适导致的数据丢失,以及存储空间的浪费,进而保证数据的读写性能和存储数据层写入物理设备的性能。
在上述实施例的基础上,创建块文件后,当接收到安防监控管理平台2发送的数据写入指令时,需要将视频数据写入一个新的空闲块文件,首先,要将待写入块文件的大小,对象大小,以及摄像机通道标识等块文件相关信息存储至待写入块文件中的固定位置,可以理解的是,在每个块文件中均包括一个固定位置用于存储块文件相关信息。
图4为本申请另一实施例所提供的一种块文件的结构图,如图4所示,每个块文件上的第0个对象前面有固定大小的存储空间用于存放块文件相关信息,接着数据按照帧头、帧数据这样的结构顺序进行存放,块文件相关信息后的第一帧数据为关键帧。中间每个对象的数据结构都是按照帧头、帧数据的结构顺序进行存放,由于每个帧数据的大小不定,一帧数据有可能存放在两个对象上,所有中间的对象很可能存在上一个对象没有存放完的部分帧数据。此外,值得注意的是,最后一个对象前面的数据结构与中间对象的数据结构相同,为了保证块文件相关信息后的第一帧数据为关键帧,这就可能导致每个块文件不能够百分之百的写满,则在最后一个对象的最后预留一个预留空间。
基于图4的块文件结构存储待写入块文件相关信息后,根据块文件相关信息的存储位置,更新待写入块文件的当前结束偏移量,即,将当前结束偏移量更新为块文件相关信息的存储位置。然后,在接收到目标数据后,按照帧头、帧数据的顺序缓存目标数据得到缓存数据,并根据当前结束偏移量和缓存数据的大小,通过映射算法确定目标写入对象的具***置,此时,将缓存数据存储至目标写入对象的具***置,重复以上步骤即可完成数据流视频的写入。
值得注意的是,由于读取视频数据后必须要有关键帧才能对数据进行解码,因此为了保证数据写入后,后续将其读出可正常进行解码,在将缓存数据写入目标写入对象的具***置之后,将目标数据对应的的各关键帧存储时间,以及关键帧在对应块文件中的偏移量作为时间段元数据信息进行记录。
本申请实施例所提供的基于块文件的视频流数据存储方法,将对象存储提供的存储空间抽象为多个大小固定的块文件,并根据块文件的特定命名方式明确定义出每个块文件中包含的对象名称,由此,基于块文件将视频流数据流式存储至块文件上,保留了视频数据间的关联性。
实施中,若获取到安防监控管理平台2发送的数据读取指令时,即,需要获取某个摄像机在某个时间段内生成的视频时,通过待读取数据对应的目标时间段元数据信息定位存储待读取数据的目标块文件,并确定目标时间段元数据信息中存储时间范围内存储时间最早的关键帧对应的目标偏移量,然后根据目标块文件和目标偏移量连续读取待读取数据。
本申请实施例所提供的基于块文件的视频流数据存储方法,在接收到数据读取指令后,基于块文件实现视频流数据的快速定位和读取,进一步保证视频数据业务的可靠性。
在上述实施例中,对于基于块文件的视频流数据存储方法进行了详细描述,本申请还提供一种基于块文件的视频流数据存储装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件结构的角度。
图5为本申请实施例所提供的一种基于块文件的视频流数据存储装置的结构图,如图5所示,该装置包括:
抽象模块10,用于将对象存储提供的存储空间抽象为目标数量的块文件;
定义模块11,用于定义块文件的元数据;
创建模块12,用于基于元数据创建块文件;
定位模块13,用于在接收到数据写入指令后,通过映射算法定位待写入块文件中目标写入对象在待写入块文件中的具***置以便将目标数据写入待写入块文件。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请实施例所提供的基于块文件的视频流数据存储装置,包括:将对象存储提供的存储空间抽象为目标数量的块文件,定义块文件的元数据,并基于定义的元数据创建块文件,创建块文件后,若接收到数据写入指令,则通过映射算法定位待写入块文件中目标写入对象在待写入块文件中的具***置以便将目标数据写入待写入块文件。由此可见,本申请所提供的技术方案,不再存储离散的对象的元数据,通过将对象存储提供的存储空间抽象为多个块文件,基于元数据较小的块文件将离散的视频流数据关联起来,不受对象大小的影响,将视频流数据以顺序追加的方式流式存储到块文件上,避免采用对象存储影响视频数据间的关联性,保证了数据读写的性能,以及存储数据层写入物理设备的性能。同时,基于块文件的流式存储还可避免大量数据的丢失,并节约存储空间。
图6为本申请另一实施例提供的一种基于块文件的视频流数据存储装置的结构图,如图6所示,基于块文件的视频流数据存储装置包括:存储器20,用于存储计算机程序;
处理器21,用于执行计算机程序时实现如上述实施例所提到的基于块文件的视频流数据存储方法的步骤。
本实施例提供的基于块文件的视频流数据存储装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(Digital Signal Processor,简称DSP)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)、可编程逻辑阵列(ProgrammableLogic Array,简称PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(Central Processing Unit,简称CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(GraphicsProcessing Unit,简称GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,简称AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的基于块文件的视频流数据存储方法的相关步骤。另外,存储器20所存储的资源还可以包括操作***202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作***202可以包括Windows、Unix、Linux等。数据203可以包括但不限于基于块文件的视频流数据存储方法中所涉及的相关数据等。
在一些实施例中,基于块文件的视频流数据存储装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图6中示出的结构并不构成对基于块文件的视频流数据存储装置的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的基于块文件的视频流数据存储装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:基于块文件的视频流数据存储方法。
本申请实施例所提供的基于块文件的视频流数据存储装置,不再存储离散的对象的元数据,通过将对象存储提供的存储空间抽象为多个块文件,基于元数据较小的块文件将离散的视频流数据关联起来,不受对象大小的影响,将视频流数据以顺序追加的方式流式存储到块文件上,避免采用对象存储影响视频数据间的关联性,保证了数据读写的性能,以及存储数据层写入物理设备的性能。同时,基于块文件的流式存储还可避免大量数据的丢失,并节约存储空间。
最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本申请所提供的一种基于块文件的视频流数据存储方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种基于块文件的视频流数据存储方法,其特征在于,包括:
将对象存储提供的存储空间抽象为目标数量的块文件;
定义所述块文件的元数据;
基于所述元数据创建所述块文件;
在接收到数据写入指令后,通过映射算法定位待写入块文件中目标写入对象在所述待写入块文件中的具***置以便将目标数据写入所述待写入块文件。
2.根据权利要求1所述的基于块文件的视频流数据存储方法,其特征在于,定义的元数据包括块文件标识和元数据相关属性,所述基于所述元数据创建所述块文件包括:
获取存储空间大小、存储节点总数和所述块文件的预设大小;
基于所述存储空间大小、所述存储节点总数和所述预设大小的块文件构建不同存储节点中的块文件标识;
初始化所述元数据相关属性以完成所述块文件的创建。
3.根据权利要求2所述的基于块文件的视频流数据存储方法,其特征在于,所述基于所述存储空间大小、所述存储节点总数和所述预设大小构建不同存储节点中的块文件标识包括:
根据所述存储空间大小和所述存储节点总数计算各所述存储节点上平均可用存储空间;
通过自加运算定义出各存储节点上的块文件名;
将各所述存储节点的节点名和对应的块文件名进行组合得到不同存储节点中的块文件标识。
4.根据权利要求1所述的基于块文件的视频流数据存储方法,其特征在于,所述将对象存储提供的存储空间抽象为目标数量的块文件包括:
获取存储空间大小和所述块文件的预设大小;
根据所述存储空间大小和所述预设大小计算所述目标数量;
将所述存储空间抽象为所述目标数量的块文件。
5.根据权利要求1所述的基于块文件的视频流数据存储方法,其特征在于,所述通过映射算法定位待写入块文件中目标写入对象在所述待写入块文件中的具***置以便将目标数据写入所述待写入块文件包括:
将块文件相关信息存储至所述待写入块文件的固定位置中;其中,所述块文件相关信息至少包括所述待写入块文件的大小,对象大小,以及摄像机通道标识;
基于所述块文件相关信息的存储位置,更新所述待写入块文件的当前结束偏移量;
在接收到所述目标数据后,按照帧头、帧数据的顺序缓存所述目标数据得到缓存数据;
根据所述当前结束偏移量和所述缓存数据的大小,通过所述映射算法确定所述目标写入对象的具***置;
将所述缓存数据写入所述目标写入对象的具***置。
6.根据权利要求5所述的基于块文件的视频流数据存储方法,其特征在于,在所述将所述缓存数据写入所述目标写入对象的具***置之后还包括:
将所述目标数据对应的各关键帧存储时间,以及关键帧在对应块文件中的偏移量作为时间段元数据信息进行记录。
7.根据权利要求6所述的基于块文件的视频流数据存储方法,其特征在于,还包括:
在接收到数据读取指令之后,通过待读取数据对应的目标时间段元数据信息定位存储所述待读取数据的目标块文件;
确定所述目标时间段元数据信息中存储时间范围内存储时间最早的关键帧对应的目标偏移量;
根据所述目标块文件和所述目标偏移量连续读取所述待读取数据。
8.一种基于块文件的视频流数据存储装置,其特征在于,包括:
抽象模块,用于将对象存储提供的存储空间抽象为目标数量的块文件;
定义模块,用于定义所述块文件的元数据;
创建模块,用于基于所述元数据创建所述块文件;
定位模块,用于在接收到数据写入指令后,通过映射算法定位待写入块文件中目标写入对象在所述待写入块文件中的具***置以便将目标数据写入所述待写入块文件。
9.一种基于块文件的视频流数据存储装置,其特征在于,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的基于块文件的视频流数据存储方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于块文件的视频流数据存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310017981.XA CN115934999A (zh) | 2023-01-06 | 2023-01-06 | 一种基于块文件的视频流数据存储方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310017981.XA CN115934999A (zh) | 2023-01-06 | 2023-01-06 | 一种基于块文件的视频流数据存储方法、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934999A true CN115934999A (zh) | 2023-04-07 |
Family
ID=86557652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310017981.XA Pending CN115934999A (zh) | 2023-01-06 | 2023-01-06 | 一种基于块文件的视频流数据存储方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934999A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117880553A (zh) * | 2024-03-13 | 2024-04-12 | 济南浪潮数据技术有限公司 | 流媒体存储方法、***、服务器、电子设备和存储介质 |
-
2023
- 2023-01-06 CN CN202310017981.XA patent/CN115934999A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117880553A (zh) * | 2024-03-13 | 2024-04-12 | 济南浪潮数据技术有限公司 | 流媒体存储方法、***、服务器、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254733B (zh) | 用于存储数据的方法、装置和*** | |
WO2017107414A1 (zh) | 文件操作方法和装置 | |
CN108491333A (zh) | 环形缓冲区的数据写入方法、装置、设备及介质 | |
CN103218224A (zh) | 一种提高存储空间利用率的方法和终端 | |
WO2017050064A1 (zh) | 共享内存数据库的内存管理方法及装置 | |
CN110795400B (zh) | 一种文件的管理方法、装置、设备及介质 | |
CN110908697A (zh) | 一种资源打包方法、装置、服务器及存储介质 | |
JP6715334B2 (ja) | Gpuリソース再構築方法、ユーザー・デバイス、システム及び記憶媒体 | |
CN114217738A (zh) | 一种动态队列式循环存储方法、装置、设备及介质 | |
CN115934999A (zh) | 一种基于块文件的视频流数据存储方法、装置及介质 | |
CN110990356B (zh) | 一种用于逻辑镜像的实时自动扩容方法和*** | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
CN115712500A (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
CN114996173A (zh) | 一种管理存储设备写操作的方法和装置 | |
CN116339643B (zh) | 一种磁盘阵列的格式化方法、装置、设备和介质 | |
CN112597102B (zh) | 一种高效的镜像文件***实现方法 | |
CN111966845B (zh) | 图片管理方法、装置、存储节点及存储介质 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN114756523A (zh) | 一种分布式存储方法、装置以及介质 | |
CN111625502B (zh) | 数据读取方法及装置、存储介质、电子装置 | |
CN114861003A (zh) | 一种指定目录下的对象列举方法、装置及其介质 | |
CN111399759B (zh) | 读数据、写数据的方法、以及对象文件*** | |
CN112799592A (zh) | 一种多命名空间的分配方法、装置、设备及可读介质 | |
CN102541878B (zh) | 一种非线性编辑中工程文件的存储方法及装置 | |
CN114722261A (zh) | 一种资源的处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |