CN117473117A - 一种视频循环存储方法、***及计算机 - Google Patents
一种视频循环存储方法、***及计算机 Download PDFInfo
- Publication number
- CN117473117A CN117473117A CN202311811287.1A CN202311811287A CN117473117A CN 117473117 A CN117473117 A CN 117473117A CN 202311811287 A CN202311811287 A CN 202311811287A CN 117473117 A CN117473117 A CN 117473117A
- Authority
- CN
- China
- Prior art keywords
- volume
- logical
- stock
- logical volumes
- video data
- 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 38
- 125000004122 cyclic group Chemical group 0.000 title description 5
- 238000004590 computer program Methods 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims description 2
- 238000013500 data storage Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/71—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种视频循环存储方法、***及计算机,方法包括:将磁盘划分为若干个逻辑卷,为每一逻辑卷赋予唯一的卷编号;基于若干个逻辑卷,构建包括存量录制编号、元数据及存量序列号的索引目录;获取更新视频数据,提取更新视频数据的当前录制编号,通过当前录制编号、存量录制编号、存量序列号及卷编号确定更新视频数据的存储路径,以自若干个逻辑卷中确定分配卷;获取更新序列号,在分配卷写入更新视频数据,并基于更新序列号及更新视频数据更新索引目录。通过设置索引目录、存量序列号及更新序列号,减少了磁盘的IO操作,且每一次写入视频数据时可有序地写入,使磁盘IO处于较佳的工作状态。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种视频循环存储方法、***及计算机。
背景技术
在面向新一代信息基础设施的物联网体系架构中,云边端是一种近年来流行的架构,其架构中的边缘设备存在可用的计算和存储资源。为应对云平台中的云计算、云存储所面临的业务需求,将云平台的部分存储业务迁移至网络边缘是一种有效的方法,即将云平台的部分存储业务迁移至边缘存储设备,在数据源附近提供边缘服务。
边缘侧设备,如边缘侧视频设备,在日常运转中,每天都会产生大量的视频数据,因此需要高效的将这些视频数据存储起来。传统的存储方法是在磁盘上为每一个视频设备点位建立一个目录,然后在这个目录下每隔一段时间便写入采集到的视频数据文件,当磁盘写满后,删除最早的视频文件,再写入新采集到的视频文件。
但此种存储方法会带来视频文件的频繁删除及创建,导致磁盘的IO效率降低,进而影响写入速度,降低了并发接入能力。且当设备点位过多时,在写入这些设备点位产生的数据时,写入顺序没有被约束,变成了随机写,导致磁盘IO的性能不在最佳状态。
发明内容
本申请实施例提供了一种视频循环存储方法、***及计算机,以在解决现有技术中的边缘侧视频数据存储过程中涉及频繁删除及创建文件,影响写入速度,导致磁盘的IO效率降低,且当设备点位较多时,数据写入变为随机写入,导致磁盘IO性能不佳的问题。
第一方面,本申请实施例提供了一种视频循环存储方法,包括以下步骤:
将磁盘划分为若干个逻辑卷,为每一所述逻辑卷赋予唯一的卷编号;
基于若干个所述逻辑卷,构建包括存量录制编号、元数据及存量序列号的索引目录,所述存量录制编号用于标注存量视频数据的设备来源,所述元数据用于标注所述存量视频数据在所述逻辑卷内的存储顺序及格式,所述存量序列号用于标注所述逻辑卷在存储过程中被写入的顺序;
获取更新视频数据,提取所述更新视频数据的当前录制编号,基于所述索引目录,比对所述当前录制编号及所述存量录制编号;
若存在与所述当前录制编号相同的所述存量录制编号,则将与所述当前录制编号相同的所述存量录制编号判定为待选录制编号,将所有与所述待选录制编号对应的所述逻辑卷划入第一卷组,将剩余的所述逻辑卷划入第二卷组,通过所述存量序列号及所述卷编号确定所述更新视频数据的存储路径,以自所述第一卷组或所述第二卷组中确定分配卷;
获取更新序列号,在所述分配卷写入所述更新视频数据,并基于所述更新序列号及所述更新视频数据更新所述索引目录。
进一步地,所述基于若干个所述逻辑卷,构建包括存量录制编号、元数据及存量序列号的索引目录的步骤包括:
提取所述逻辑卷的所述卷编号,以形成第一索引单元;
自所述逻辑卷内的存量视频数据中获取存量录制编号及元数据,并提取与所述逻辑卷对应的所述存量序列号,以形成第二索引单元;
根据所述第一索引单元及所述第二索引单元,构建所述索引目录。
进一步地,所述获取更新视频数据的步骤之后,还包括:
将所述更新视频数据划分为若干个相同大小的更新视频对象,并提取若干个所述更新视频对象的I帧数据,构建回放目录,所述I帧数据用于记录所述更新视频对象的I帧数量及位置信息;
将所述回放目录的存储点位写入所述元数据。
进一步地,所述基于所述索引目录,比对所述当前录制编号及所述存量录制编号的步骤之后,还包括:
若不存在与所述当前录制编号相同的所述存量录制编号,则判断若干个所述逻辑卷中是否存在未写入的所述逻辑卷;
若若干个所述逻辑卷中存在一个未写入的所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
若若干个所述逻辑卷中存在若干个未写入的所述逻辑卷,则自若干个未写入的所述逻辑卷中选取与最小的所述卷编号对应的所述逻辑卷,以确立为所述分配卷;
若不存在未写入的所述逻辑卷,则自若干个所述逻辑卷中选取与最小的所述存量序列号对应的所述逻辑卷,并确立为所述分配卷。
进一步地,所述以自所述第一卷组或所述第二卷组中确定分配卷的步骤包括:
根据所述元数据判断所述第一卷组是否写满;
若所述第一卷组未写满,则自所述第一卷组中确立所述分配卷;
若所述第一卷组写满,则自所述第二卷组中确立所述分配卷。
进一步地,所述则自所述第一卷组中确立所述分配卷的步骤包括:
若所述第一卷组中仅存在一个所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
若所述第一卷组中存在若干个所述逻辑卷,则比对若干个所述逻辑卷对应的所述存量序列号,选取出与最大的所述存量序列号对应的所述逻辑卷,确立为所述分配卷。
进一步地,所述则自所述第二卷组中确立所述分配卷的步骤包括:
若所述第二卷组中仅存在一个所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
若所述第二卷组中存在若干个所述逻辑卷,则判断若干个所述逻辑卷中是否存在未写入的所述逻辑卷;
若仅存在一个未写入的所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
若存在若干个未写入的所述逻辑卷,则自若干个未写入的所述逻辑卷中选取与最小的所述卷编号对应的所述逻辑卷,并确立为所述分配卷;
若不存在未写入的所述逻辑卷,则自所述第二卷组中的若干个所述逻辑卷中选取与最小的所述存量序列号对应的所述逻辑卷,并确立为所述分配卷。
进一步地,所述获取更新序列号的步骤包括:
提取最大的所述存量序列号的数值,增大所述数值,以得到所述更新序列号。
第二方面,本申请实施例提供了一种视频循环存储***,应用于上述技术方案中的视频循环存储方法,所述***包括:
划分模块,用于将磁盘划分为若干个逻辑卷,为每一所述逻辑卷赋予唯一的卷编号;
目录模块,用于基于若干个所述逻辑卷,构建包括存量录制编号、元数据及存量序列号的索引目录,所述存量录制编号用于标注存量视频数据的设备来源,所述元数据用于标注所述存量视频数据在所述逻辑卷内的存储顺序及格式,所述存量序列号用于标注所述逻辑卷在存储过程中被写入的顺序;
比对模块,用于获取更新视频数据,提取所述更新视频数据的当前录制编号,基于所述索引目录,比对所述当前录制编号及所述存量录制编号;
选定模块,用于若存在与所述当前录制编号相同的所述存量录制编号,则将与所述当前录制编号相同的所述存量录制编号判定为待选录制编号,将所有与所述待选录制编号对应的所述逻辑卷划入第一卷组,将剩余的所述逻辑卷划入第二卷组,通过所述存量序列号及所述卷编号确定所述更新视频数据的存储路径,以自所述第一卷组或所述第二卷组中确定分配卷;
更新模块,用于获取更新序列号,在所述分配卷写入所述更新视频数据,并基于所述更新序列号及所述更新视频数据更新所述索引目录。
第三方面,本申请实施例提供了一种计算机,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的视频循环存储方法。
相比于现有技术,本发明的有益效果在于:通过设置所述索引目录,当获取所述更新视频数据后,进行存储操作时,仅在所述索引目录中进行遍历及比对,减少了磁盘的IO操作;通过设置所述存量序列号及所述更新序列号,以记录各个所述逻辑卷被选取为所述分配卷的顺序,即所述逻辑卷内写入文件的新旧,并使所述更新序列号的数值始终大于所述存量序列号,避免了***因时间异常而无法判断写入文件新旧的问题,配合所述存量录制编号及所述当前录制编号,可根据磁盘内的历史存储情况以及所述存量视频数据的设备来源将所述更新视频数据进行续写、覆盖写或写入空白卷的操作,每一次写入视频数据时可有序地写入,从而使磁盘IO处于较佳的工作状态,将所述更新视频数据写入所述逻辑卷时,仅执行覆盖写入操作,避免频繁删除文件导致磁盘IO资源消耗。
附图说明
图1为本发明第一实施例中视频循环存储方法的流程图;
图2为本发明第二实施例中视频循环存储***的结构框图;
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
请参阅图1,本发明第一实施例中的视频循环存储方法,包括以下:
步骤S1:将磁盘划分为若干个逻辑卷,为每一所述逻辑卷赋予唯一的卷编号;
所述磁盘用于存储,所述卷编号是固定的,优选地,通过预分配技术在所述磁盘初始化时把所述逻辑卷分配好,并在所述磁盘中设置一级索引目录及二级索引目录,以管理所述逻辑卷中写入的数据,便于写入和读取,其中,所述一级索引目录划分为若干个一级索引子目录,每一个所述一级索引子目录对应一个所述逻辑卷,即所述一级索引的数量与所述逻辑卷的数量相等,所述磁盘中的全部所述逻辑卷均大小相等。可以理解地,采用预分配技术将所述磁盘中的逻辑卷文件提前分配,避免了删改文件的操作,减少了文件的碎片化,可以提升文件***的性能。
步骤S2:基于若干个所述逻辑卷,构建包括存量录制编号、元数据及存量序列号的索引目录,所述存量录制编号用于标注存量视频数据的设备来源,所述元数据用于标注所述存量视频数据在所述逻辑卷内的存储顺序及格式,所述存量序列号用于标注所述逻辑卷在存储过程中被写入的顺序;
所述索引目录与所述一级索引目录对应,并缓存在内存中,相同的录制设备所录制的视频数据中可提取到相同的所述存量录制编号,具体地,所述索引目录包括若干个所述索引子目录,所述索引子目录与所述一级索引子目录对应,每一所述索引子目录的大小为4KB,所述索引子目录包括所述存量序列号、通道时间轴描述、所述元数据及CRC校验,进一步地,所述存量序列号及所述通道时间轴描述共占用1KB,所述存量序列号占用8字节,用于判断最早写入文件和当前写入文件,所述通道时间轴描述包括所述存量录制编号及时间段数据,所述元数据及所述CRC校验共占用3KB。具体地,所述步骤S2包括:
S21:提取所述逻辑卷的所述卷编号,以形成第一索引单元;
优选地,初次在所述磁盘中写入数据时,根据所述卷编号来确定写入顺序,从最小的所述卷编号写起,由小至大。
S22:自所述逻辑卷内的存量视频数据中获取存量录制编号及元数据,并提取与所述逻辑卷对应的所述存量序列号,以形成第二索引单元;
优选地,所述通道时间轴描述中的所述存量录制编号占用32字节,所述时间段数据用于记录所述逻辑卷中的所述存量视频数据的时间段个数及每个时间段的时间点位,所述元数据包括视频对象ID及视频对象存储点位,所述存量视频数据在写入时被划分为若干个存量视频对象,并对每一所述存量视频对象赋予一个所述视频对象ID,每一所述存量视频对象在所述逻辑卷内的存储位置由所述视频对象存储点位记录,当所述逻辑卷未写满时,若在所述逻辑卷内续写数据,则根据所述视频对象存储点位来确定数据应续写在哪一位置。
每一所述存量视频对象对应一个二级索引目录,所述二级索引目录随所述存量视频数据构建于所述磁盘内,所述二级索引目录用于记录所述存量视频对象ID、所述存量视频对象的开始时间、所述存量视频对象的结束时间、所述存量视频对象的存储点位、所述存量视频对象的大小、所述存量视频对象的I帧信息描述及校验字段,所述元数据中还包括二级索引目录的存储位置。
可以理解地,当读取所述存量视频数据时,若读取整个视频对象,则使用所述存量视频对象ID进行读取,从所述索引目录中找到所述索引子目录,即所述第二索引单元,从所述索引子目录中找到该对象的所述元数据,从所述元数据中得到所述存量视频对象存储点位,进而调用一次所述磁盘的IO,读取文件;若仅读取部分视频对象,则找到所述元数据后从中获取所述存量视频对象存储点位及所述二级索引目录位置,调用所述磁盘的IO读取所述二级索引目录,找到所述存量视频对象的I帧信息,获取所需帧的存储位置,再调用所述磁盘的IO操作读取该帧的数据。
可以理解地,对某一所述存量录制编号对应的所述存量视频数据进行时间轴查询时,仅需在所述内存中的所述索引目录进行查询,即可获取所述存量视频数据的时间轴信息,无需进行磁盘IO操作。
S23:根据所述第一索引单元及所述第二索引单元,构建所述索引目录。
所述索引目录的创建、查找、更新均在所述内存中进行,可减少所述磁盘的IO操作,提高所述磁盘的IO效率,提升整体写入速度,提升并发接入能力,且当对所述存量视频数据进行查询读取时,先从所述内存中的所述索引目录开始查询,进一步加快查询读取的速度。
步骤S3:获取更新视频数据,提取所述更新视频数据的当前录制编号,基于所述索引目录,比对所述当前录制编号及所述存量录制编号;
优选地,所述当前录制编号及所述存量录制编号均用数字表示,即寻找相同数字即可,由于所述存量录制编号对应所述存量视频数据的设备来源,具体地,对应所述存量视频数据的录制设备,因此当获取到所述更新视频数据时,优先查找判断录制该数据的设备是否已录制过视频,若该设备已录制过视频,则将优先在先前录制的断点后续写所述更新视频数据,若该设备未录制过视频,则在未写入过任何数据的空闲的所述逻辑卷写入所述更新视频数据,或者在最早写入数据的所述逻辑卷中写入所述更新视频数据,将最早的视频文件覆盖,其中,若存在空闲的所述逻辑卷,则优先写空闲的所述逻辑卷。
具体地,所述步骤S3包括:
S31:将所述更新视频数据划分为若干个相同大小的更新视频对象,并提取若干个所述更新视频对象的I帧数据,构建回放目录,所述I帧数据用于记录所述更新视频对象的I帧数量及位置信息;
优选地,所述更新视频对象的视频内容时间长度为30秒,所述I帧数据中,所述I帧数量占用1字节,所述I帧的位置信息占用8字节,所述I帧数据还包括I帧所占用的存储空间大小。
S32:将所述回放目录的存储点位写入所述元数据。
可以理解地,在写入所述更新视频数据时即产生相应的所述回放目录,所述回放目录用于回放视频时读取数据,当所述更新视频数据完成存储且所述索引目录更新后,所述回放目录更新至所述二级索引目录。
具体地,所述步骤S3之后,还包括:
S33:若不存在与所述当前录制编号相同的所述存量录制编号,则判断若干个所述逻辑卷中是否存在未写入的所述逻辑卷;
即录制所述更新视频数据的录像设备在此次录制前并未录制过任何视频,因此优先寻找空闲的所述逻辑卷进行存储。
S34:若若干个所述逻辑卷中存在一个未写入的所述逻辑卷,则将该所述逻辑卷确立为分配卷;
S35:若若干个所述逻辑卷中存在若干个未写入的所述逻辑卷,则自若干个未写入的所述逻辑卷中选取与最小的所述卷编号对应的所述逻辑卷,以确立为所述分配卷;
若只有一个空闲的所述逻辑卷,则在该空闲卷中进行所述更新视频数据的写入,若有多个空闲的所述逻辑卷,则优先在具有最小的所述卷编号的所述逻辑卷中写入数据,以保证仅覆盖最早、最旧的数据,达到循环写的目的,并且使数据的写入始终是有序的。
S36:若不存在未写入的所述逻辑卷,则自若干个所述逻辑卷中选取与最小的所述存量序列号对应的所述逻辑卷,并确立为所述分配卷。
即所述磁盘内的全部所述逻辑卷均已被写过数据,此时寻找最早的数据文件并将其覆盖,具有最小的所述存量序列号的所述逻辑卷则为具有最早的数据文件的所述逻辑卷。
步骤S4:若存在与所述当前录制编号相同的所述存量录制编号,则将与所述当前录制编号相同的所述存量录制编号判定为待选录制编号,将所有与所述待选录制编号对应的所述逻辑卷划入第一卷组,将剩余的所述逻辑卷划入第二卷组,通过所述存量序列号及所述卷编号确定所述更新视频数据的存储路径,以自所述第一卷组或所述第二卷组中确定分配卷;
若所述分配卷内未存入所述存量视频数据,则直接写入所述更新视频数据;若所述分配卷内已存在所述存量视频数据,但并未写满,则在已写入的所述视频对象之后续写所述更新视频数据;若所述分配卷内已写满了所述存量视频数据,则执行覆盖写操作,即不进行删除文件的操作而直接写入,可以理解地,这样可以降低删除文件带来的所述磁盘的IO开销。
若存在与所述当前录制编号相同的所述存量录制编号,则表明所述当前录制编号对应的录制设备已录制过所述存量视频数据并存储在了所述磁盘中,若该录制设备产生的所述存量视频数据较大,则有多个所述逻辑卷用于存储,即有多个所述逻辑卷对应的所述存量录制编号均与所述当前录制编号相同。具体地,所述步骤S4之后包括:
S41:根据所述元数据判断所述第一卷组是否写满;
若所述第一卷组写满,则无法在所述第一卷组中的所述逻辑卷内进行相同录制设备的续写操作,可以理解地,所述第一卷组中的所述逻辑卷内均无断点,应另寻其他所述逻辑卷进存储。
S42:若所述第一卷组未写满,则自所述第一卷组中确立所述分配卷;
所述第一卷组未写满则表明前一次录制并未将所述逻辑卷写满,存在前一次录制的断点,应优先进行续写操作。具体地,所述步骤S42包括:
S421:若所述第一卷组中仅存在一个所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
可以理解地,若所述第一卷组中仅存在一个所述逻辑卷,前一次录制的断点必然存在于该所述逻辑卷内,则直接在该所述逻辑卷中进行续写即可。
S422:若所述第一卷组中存在若干个所述逻辑卷,则比对若干个所述逻辑卷对应的所述存量序列号,选取出与最大的所述存量序列号对应的所述逻辑卷,确立为所述分配卷。
在若干个所述逻辑卷中,具有最大的所述存量序列号的所述逻辑卷即为最后被写入的所述逻辑卷,对于与所述更新录制编号对应的录制设备,该所述逻辑卷中包含所述录制设备前一次录制的视频数据及断点,当所述录制设备录制了所述更新视频数据后,即在该所述逻辑卷中续写文件。
S43:若所述第一卷组写满,则自所述第二卷组中确立所述分配卷。
当所述第一卷组写满,则所述第一卷组内不存在前一次录制的断点,无需进行续写,因此在所述第二卷组中寻找所述逻辑卷进行存储,扩充了与所述更新录制编号对应的录制设备的数据存储的空间。具体地,所述步骤S43包括:
S431:若所述第二卷组中仅存在一个所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
S432:若所述第二卷组中存在若干个所述逻辑卷,则判断若干个所述逻辑卷中是否存在未写入的所述逻辑卷;
S433:若仅存在一个未写入的所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
S434:若存在若干个未写入的所述逻辑卷,则自若干个未写入的所述逻辑卷中选取与最小的所述卷编号对应的所述逻辑卷,并确立为所述分配卷;
S435:若不存在未写入的所述逻辑卷,则自所述第二卷组中的若干个所述逻辑卷中选取与最小的所述存量序列号对应的所述逻辑卷,并确立为所述分配卷。
即若存在未被写入的空闲的所述逻辑卷,则优先将空闲的所述逻辑卷写满,若不存在空闲的所述逻辑卷,则寻找最早被写入的所述逻辑卷进行覆盖写,可以理解地,在所述磁盘中进行循环写,并覆盖尽可能早的文件,尽可能保留较新的文件。
步骤S5:获取更新序列号,在所述分配卷写入所述更新视频数据,并基于所述更新序列号及所述更新视频数据更新所述索引目录。
优选地,对所述更新序列号进行全局维护,可以理解地,传统的存储方法中每一录制设备对应一个目录,每隔一段时间写入一个文件,写入时对***时间进行记录并与文件相关联,根据***时间来判断写入文件的新旧,文件内容为录制设备录制的视频数据,若因***异常而导致***时间被更改,则传统的存储方法中仅依靠文件的时间来判断其存储顺序易导致误判,进而导致错删文件,且当录制设备的数量过多时,大量来自不同录制设备的文件的写入缺少约束,变成了随机写,而采用所述更新序列号并对其进行全局维护,及时将所述更新序列号在每次写入新的视频数据时进行分配,使所述视频循环存储方法始终有序,且对于视频数据的写入顺序的判断始终正确。
进一步地,更新所述索引目录时,若所述索引目录内已有内容,则清空所述索引目录再写入新的数据,由于所述索引目录缓存于内存中,因此清空的操作并不会影响所述磁盘的速度。具体地,所述步骤S5包括:
S51:提取最大的所述存量序列号的数值,增大所述数值,以得到所述更新序列号。
优选地,在最大的所述存量序列号的数值上加1以得到所述更新序列号,可以理解地,所述更新序列号始终递增并且无重复,写入数据时将当前所述更新序列号写入对应的所述索引目录中的所述索引子目录,形成所述存量序列号,每一已存入数据的所述逻辑卷均对应唯一的所述存量序列号,可通过所述存量序列号的大小来判断写入数据的新旧。
请参阅图2,本发明第二实施例提供了一种视频循环存储***,该***应用于上述实施例中所述的视频循环存储方法,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
所述***包括:
划分模块10,用于将磁盘划分为若干个逻辑卷,为每一所述逻辑卷赋予唯一的卷编号;
目录模块20,用于基于若干个所述逻辑卷,构建包括存量录制编号、元数据及存量序列号的索引目录,所述存量录制编号用于标注存量视频数据的设备来源,所述元数据用于标注所述存量视频数据在所述逻辑卷内的存储顺序及格式,所述存量序列号用于标注所述逻辑卷在存储过程中被写入的顺序;
所述目录模块20包括:
第一单元,用于提取所述逻辑卷的所述卷编号,以形成第一索引单元;
第二单元,用于自所述逻辑卷内的存量视频数据中获取存量录制编号及元数据,并提取与所述逻辑卷对应的所述存量序列号,以形成第二索引单元;
第三单元,用于根据所述第一索引单元及所述第二索引单元,构建所述索引目录;
比对模块30,用于获取更新视频数据,提取所述更新视频数据的当前录制编号,基于所述索引目录,比对所述当前录制编号及所述存量录制编号;
所述比对模块30包括:
第四单元,用于将所述更新视频数据划分为若干个相同大小的更新视频对象,并提取若干个所述更新视频对象的I帧数据,构建回放目录,所述I帧数据用于记录所述更新视频对象的I帧数量及位置信息;
第五单元,用于将所述回放目录的存储点位写入所述元数据;
第六单元,用于若不存在与所述当前录制编号相同的所述存量录制编号,则判断若干个所述逻辑卷中是否存在未写入的所述逻辑卷;
第七单元,用于若若干个所述逻辑卷中存在一个未写入的所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
第八单元,用于若若干个所述逻辑卷中存在若干个未写入的所述逻辑卷,则自若干个未写入的所述逻辑卷中选取与最小的所述卷编号对应的所述逻辑卷,以确立为所述分配卷;
第九单元,用于若不存在未写入的所述逻辑卷,则自若干个所述逻辑卷中选取与最小的所述存量序列号对应的所述逻辑卷,并确立为所述分配卷;
选定模块40,用于若存在与所述当前录制编号相同的所述存量录制编号,则将与所述当前录制编号相同的所述存量录制编号判定为待选录制编号,将所有与所述待选录制编号对应的所述逻辑卷划入第一卷组,将剩余的所述逻辑卷划入第二卷组,通过所述存量序列号及所述卷编号确定所述更新视频数据的存储路径,以自所述第一卷组或所述第二卷组中确定分配卷;
所述选定模块40包括:
第十单元,用于根据所述元数据判断所述第一卷组是否写满;
第十一单元,用于若所述第一卷组未写满,则自所述第一卷组中确立所述分配卷;
所述第十一单元具体用于若所述第一卷组中仅存在一个所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
若所述第一卷组中存在若干个所述逻辑卷,则比对若干个所述逻辑卷对应的所述存量序列号,选取出与最大的所述存量序列号对应的所述逻辑卷,确立为所述分配卷;
第十二单元,用于若所述第一卷组写满,则自所述第二卷组中确立所述分配卷。
所述第十二单元具体用于若所述第二卷组中仅存在一个所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
若所述第二卷组中存在若干个所述逻辑卷,则判断若干个所述逻辑卷中是否存在未写入的所述逻辑卷;
若仅存在一个未写入的所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
若存在若干个未写入的所述逻辑卷,则自若干个未写入的所述逻辑卷中选取与最小的所述卷编号对应的所述逻辑卷,并确立为所述分配卷;
若不存在未写入的所述逻辑卷,则自所述第二卷组中的若干个所述逻辑卷中选取与最小的所述存量序列号对应的所述逻辑卷,并确立为所述分配卷。
更新模块50,用于获取更新序列号,在所述分配卷写入所述更新视频数据,并基于所述更新序列号及所述更新视频数据更新所述索引目录。
所述更新模块50包括:
第十三单元,用于提取最大的所述存量序列号的数值,增大所述数值,以得到所述更新序列号。
本发明还提供了一种计算机,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述技术方案中所述的视频循环存储方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种视频循环存储方法,其特征在于,包括以下步骤:
将磁盘划分为若干个逻辑卷,为每一所述逻辑卷赋予唯一的卷编号;
基于若干个所述逻辑卷,构建包括存量录制编号、元数据及存量序列号的索引目录,所述存量录制编号用于标注存量视频数据的设备来源,所述元数据用于标注所述存量视频数据在所述逻辑卷内的存储顺序及格式,所述存量序列号用于标注所述逻辑卷在存储过程中被写入的顺序;
获取更新视频数据,提取所述更新视频数据的当前录制编号,基于所述索引目录,比对所述当前录制编号及所述存量录制编号;
若存在与所述当前录制编号相同的所述存量录制编号,则将与所述当前录制编号相同的所述存量录制编号判定为待选录制编号,将所有与所述待选录制编号对应的所述逻辑卷划入第一卷组,将剩余的所述逻辑卷划入第二卷组,通过所述存量序列号及所述卷编号确定所述更新视频数据的存储路径,以自所述第一卷组或所述第二卷组中确定分配卷;
获取更新序列号,在所述分配卷写入所述更新视频数据,并基于所述更新序列号及所述更新视频数据更新所述索引目录。
2.根据权利要求1所述的视频循环存储方法,其特征在于,所述基于若干个所述逻辑卷,构建包括存量录制编号、元数据及存量序列号的索引目录的步骤包括:
提取所述逻辑卷的所述卷编号,以形成第一索引单元;
自所述逻辑卷内的存量视频数据中获取存量录制编号及元数据,并提取与所述逻辑卷对应的所述存量序列号,以形成第二索引单元;
根据所述第一索引单元及所述第二索引单元,构建所述索引目录。
3.根据权利要求1所述的视频循环存储方法,其特征在于,所述获取更新视频数据的步骤之后,还包括:
将所述更新视频数据划分为若干个相同大小的更新视频对象,并提取若干个所述更新视频对象的I帧数据,构建回放目录,所述I帧数据用于记录所述更新视频对象的I帧数量及位置信息;
将所述回放目录的存储点位写入所述元数据。
4.根据权利要求1所述的视频循环存储方法,其特征在于,所述基于所述索引目录,比对所述当前录制编号及所述存量录制编号的步骤之后,还包括:
若不存在与所述当前录制编号相同的所述存量录制编号,则判断若干个所述逻辑卷中是否存在未写入的所述逻辑卷;
若若干个所述逻辑卷中存在一个未写入的所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
若若干个所述逻辑卷中存在若干个未写入的所述逻辑卷,则自若干个未写入的所述逻辑卷中选取与最小的所述卷编号对应的所述逻辑卷,以确立为所述分配卷;
若不存在未写入的所述逻辑卷,则自若干个所述逻辑卷中选取与最小的所述存量序列号对应的所述逻辑卷,并确立为所述分配卷。
5.根据权利要求1所述的视频循环存储方法,其特征在于,所述以自所述第一卷组或所述第二卷组中确定分配卷的步骤包括:
根据所述元数据判断所述第一卷组是否写满;
若所述第一卷组未写满,则自所述第一卷组中确立所述分配卷;
若所述第一卷组写满,则自所述第二卷组中确立所述分配卷。
6.根据权利要求5所述的视频循环存储方法,其特征在于,所述则自所述第一卷组中确立所述分配卷的步骤包括:
若所述第一卷组中仅存在一个所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
若所述第一卷组中存在若干个所述逻辑卷,则比对若干个所述逻辑卷对应的所述存量序列号,选取出与最大的所述存量序列号对应的所述逻辑卷,确立为所述分配卷。
7.根据权利要求5所述的视频循环存储方法,其特征在于,所述则自所述第二卷组中确立所述分配卷的步骤包括:
若所述第二卷组中仅存在一个所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
若所述第二卷组中存在若干个所述逻辑卷,则判断若干个所述逻辑卷中是否存在未写入的所述逻辑卷;
若仅存在一个未写入的所述逻辑卷,则将该所述逻辑卷确立为所述分配卷;
若存在若干个未写入的所述逻辑卷,则自若干个未写入的所述逻辑卷中选取与最小的所述卷编号对应的所述逻辑卷,并确立为所述分配卷;
若不存在未写入的所述逻辑卷,则自所述第二卷组中的若干个所述逻辑卷中选取与最小的所述存量序列号对应的所述逻辑卷,并确立为所述分配卷。
8.根据权利要求1所述的视频循环存储方法,其特征在于,所述获取更新序列号的步骤包括:
提取最大的所述存量序列号的数值,增大所述数值,以得到所述更新序列号。
9.一种视频循环存储***,应用于如权利要求1~8任一项所述的视频循环存储方法,其特征在于,所述***包括:
划分模块,用于将磁盘划分为若干个逻辑卷,为每一所述逻辑卷赋予唯一的卷编号;
目录模块,用于基于若干个所述逻辑卷,构建包括存量录制编号、元数据及存量序列号的索引目录,所述存量录制编号用于标注存量视频数据的设备来源,所述元数据用于标注所述存量视频数据在所述逻辑卷内的存储顺序及格式,所述存量序列号用于标注所述逻辑卷在存储过程中被写入的顺序;
比对模块,用于获取更新视频数据,提取所述更新视频数据的当前录制编号,基于所述索引目录,比对所述当前录制编号及所述存量录制编号;
选定模块,用于若存在与所述当前录制编号相同的所述存量录制编号,则将与所述当前录制编号相同的所述存量录制编号判定为待选录制编号,将所有与所述待选录制编号对应的所述逻辑卷划入第一卷组,将剩余的所述逻辑卷划入第二卷组,通过所述存量序列号及所述卷编号确定所述更新视频数据的存储路径,以自所述第一卷组或所述第二卷组中确定分配卷;
更新模块,用于获取更新序列号,在所述分配卷写入所述更新视频数据,并基于所述更新序列号及所述更新视频数据更新所述索引目录。
10.一种计算机,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8中任一项所述的视频循环存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311811287.1A CN117473117A (zh) | 2023-12-27 | 2023-12-27 | 一种视频循环存储方法、***及计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311811287.1A CN117473117A (zh) | 2023-12-27 | 2023-12-27 | 一种视频循环存储方法、***及计算机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117473117A true CN117473117A (zh) | 2024-01-30 |
Family
ID=89635074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311811287.1A Pending CN117473117A (zh) | 2023-12-27 | 2023-12-27 | 一种视频循环存储方法、***及计算机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117473117A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117931098A (zh) * | 2024-03-22 | 2024-04-26 | 江西云眼视界科技股份有限公司 | 边缘侧事件存储方法、***、存储介质及计算机 |
-
2023
- 2023-12-27 CN CN202311811287.1A patent/CN117473117A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117931098A (zh) * | 2024-03-22 | 2024-04-26 | 江西云眼视界科技股份有限公司 | 边缘侧事件存储方法、***、存储介质及计算机 |
CN117931098B (zh) * | 2024-03-22 | 2024-06-07 | 江西云眼视界科技股份有限公司 | 边缘侧事件存储方法、***、存储介质及计算机 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7610434B2 (en) | File recording apparatus | |
CN102436420B (zh) | 使用辅助存储器的低ram空间、高吞吐量的持久键值存储 | |
CN102508784B (zh) | 视频监控设备中闪存卡的数据存储方法及其*** | |
US20050231765A1 (en) | Information recording medium, data processing apparatus and data processing method | |
CN107577436B (zh) | 一种数据存储方法及装置 | |
CN111522507B (zh) | 一种低延迟的文件***地址空间管理方法、***及介质 | |
US6604170B1 (en) | Information processing apparatus and method, and computer readable memory | |
JP2008242503A (ja) | メモリ管理装置及び方法、並びにプログラム | |
CN117473117A (zh) | 一种视频循环存储方法、***及计算机 | |
CN110134645B (zh) | 文件***存储管理方法、读取方法、管理装置和读取装置 | |
CN102609492B (zh) | 一种支持表模式可变的元数据管理方法 | |
EP1091295B1 (en) | Data management system using a plurality of data operation modules | |
US8239427B2 (en) | Disk layout method for object-based storage devices | |
KR20050070117A (ko) | 메인 파일 시스템 영역과 가상 파일 시스템 영역을 갖는기록매체 | |
CN101303667B (zh) | 建立磁盘空簇表及查找磁盘空簇的方法和装置 | |
CN106709014B (zh) | 一种文件***转换方法及装置 | |
US20060004969A1 (en) | High-speed accessible memory featuring reduced data movement | |
WO2021238408A1 (zh) | 对象存储平台以及对象聚合方法、装置和服务器 | |
JP4130808B2 (ja) | フォーマット方法 | |
US9535796B2 (en) | Method, apparatus and computer for data operation | |
CN103246718A (zh) | 文件访问方法、装置和设备 | |
US20050149493A1 (en) | Data recording apparatus and data recording method | |
US20220365677A1 (en) | Storage management device, storage management method, and program | |
CN112597102B (zh) | 一种高效的镜像文件***实现方法 | |
CN109656881B (zh) | 一种基于fat16技术实现文件动态管理的方法和*** |
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 |