CN105306860A - 一种录像数据存储方法及装置 - Google Patents
一种录像数据存储方法及装置 Download PDFInfo
- Publication number
- CN105306860A CN105306860A CN201510659390.8A CN201510659390A CN105306860A CN 105306860 A CN105306860 A CN 105306860A CN 201510659390 A CN201510659390 A CN 201510659390A CN 105306860 A CN105306860 A CN 105306860A
- Authority
- CN
- China
- Prior art keywords
- blocks
- video recording
- files
- frame
- time period
- 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.)
- Granted
Links
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明提供了一种录像数据存储方法及装置。其中,该方法包括:接收录像通道传输的数据帧,根据录像通道的通道标识判断数据帧是否为录像通道首次传输的数据帧;如果是,在磁盘中为录像通道创建对应的录像块,将数据帧顺序存储在创建的录像块中;如果否,根据通道标识将数据帧顺序存储在磁盘中通道标识对应的录像块中;获取数据帧对应的元数据,将元数据存储在内存中的元数据库中。本发明通过录像通道的通道标识来集中管理多个录像通道的数据存储,降低存储成本。将数据帧存储在磁盘中,将元数据存储在内存中。避免了磁盘的磁头在元数据和录像数据区来回跳动,提高了录像数据存储的性能及存储的稳定性。
Description
技术领域
本发明涉及视频存储技术领域,具体而言,涉及一种录像数据存储方法及装置。
背景技术
目前,视频监控系统在社会安全管理中起到至关重要的作用,视频监控系统每天都会产生大量的录像数据,因此录像数据的存储成为视频监控系统中所需解决的重要问题。
当前,相关技术中提供了一种存储录像数据的方法,包括:在磁盘中预先为视频通道分配的存储区域。接收一视频通道传输的待存储数据包,在磁盘中确定该视频通道对应的存储区域,获取待存储数据包的元数据,将待存储数据包及其元数据集中存储于上述确定的存储区域中。
上述相关技术为视频通道预先分配了存储区域,导致写入性能有限制,元数据不好管理,将元数据和待存储数据包集中存储在一起,导致磁盘的磁头在元数据和录像数据区来回跳动,降低了磁盘性能,耗存过度。
发明内容
有鉴于此,本发明实施例的目的在于提供一种录像数据存储方法及装置,实现通过录像通道的通道标识来集中管理多个录像通道的数据存储。将数据帧存储在磁盘中,将元数据存储在内存中。避免了磁盘的磁头在元数据和录像数据区来回跳动。
第一方面,本发明实施例提供了一种录像数据存储方法,所述方法包括:
接收录像通道传输的数据帧,根据所述录像通道的通道标识判断所述数据帧是否为所述录像通道首次传输的数据帧;
如果是,在磁盘中为所述录像通道创建对应的录像块,将所述数据帧顺序存储在创建的所述录像块中;
如果否,根据所述通道标识将所述数据帧顺序存储在磁盘中所述通道标识对应的录像块中;
获取所述数据帧对应的元数据,将所述元数据存储在内存中的元数据库中。
结合第一方面,本发明实施例提供了上述第一方面的第一种可能的实现方式,其中,所述接收录像通道传输的数据帧之前,还包括:
根据预设的块大小从磁盘的存储空间中划分出预设数量个文件块,为每个文件块分配块名称,并记录每个文件块的块路径,将每个文件块的块名称、块路径及每个文件块对应存储在空闲块列表中;
相应地,所述在磁盘中为所述录像通道创建对应的录像块包括:
从所述空闲块列表中获取指定数量的文件块,将所述指定数量的文件块分配给所述录像通道,为所述录像通道创建一个时间段,将分配给所述录像通道的文件块组成所述时间段对应的录像块。
结合第一方面的第一种可能的实现方式,本发明实施例提供了上述第一方面的第二种可能的实现方式,其中,所述将分配给所述录像通道的文件块组成所述时间段对应的录像块之后,还包括:
将所述录像通道的通道标识、录像类型、所述时间段对应的录像块包括的文件块的块名称、所述时间段对应的录像块中第一个数据帧的长度、所述时间段的开始时间和结束时间组成时间段信息,将所述时间段信息存储在时间段列表中。
结合第一方面的第二种可能的实现方式,本发明实施例提供了上述第一方面的第三种可能的实现方式,其中,所述根据所述通道标识将所述数据帧顺序存储在磁盘中所述通道标识对应的录像块中,包括:
根据所述通道标识,判断所述时间段列表中是否存在所述录像通道对应的正在写数据的当前时间段;
若存在所述当前时间段,则将所述数据帧顺序存储在磁盘中所述当前时间段对应的录像块中;
若不存在所述当前时间段,则创建新的时间段,及为所述新的时间段分配录像块,将所述数据帧顺序存储在所述新的时间段对应的录像块中。
结合第一方面的第三种可能的实现方式,本发明实施例提供了上述第一方面的第四种可能的实现方式,其中,所述方法还包括:
判断所述当前时间段的时间间隔是否达到预设的间隔阈值,如果是,则关闭所述当前时间段,并创建一个新的时间段;
实时监测所述当前时间段存储的数据帧,当监测到存储的数据帧的录像类型发生变化或监测到录像断开时,关闭所述当前时间段,并创建一个新的时间段。
结合第一方面的第三种可能的实现方式,本发明实施例提供了上述第一方面的第五种可能的实现方式,其中,所述将所述数据帧顺序存储在磁盘中所述当前时间段对应的录像块中,包括:
判断所述当前时间段对应的录像块中是否存在空闲的文件块,如果是,则将所述数据帧顺序存储在所述空闲的文件块中;
若所述当前时间段对应的录像块中不存在空闲的文件块,则从所述空闲块列表中获取空闲的文件块,将获取的所述空闲的文件块追加在所述录像块中,将所述数据帧顺序存储在所述追加的空闲的文件块中。
结合第一方面的第五种可能的实现方式,本发明实施例提供了上述第一方面的第六种可能的实现方式,其中,在所述当前时间段对应的录像块中不存在空闲的文件块,且从所述空闲块列表中未获取到空闲的文件块时,所述方法还包括:
查看所述录像通道对应的所有录像块对应的时间段,将时间段满足预设时间淘汰条件的录像块清空,将清空得到的空闲的文件块追加到所述当前时间段对应的录像块中。
结合第一方面,本发明实施例提供了上述第一方面的第七种可能的实现方式,其中,所述方法还包括:
当检测到一数据帧的元数据损毁时,根据所述数据帧的帧头信息和所述数据帧的存储位置,重新生成所述数据帧的元数据,将重新生成的所述元数据存储在内存中的元数据库中。
第二方面,本发明实施例提供了一种录像数据存储装置,所述装置包括:
判断模块,用于接收录像通道传输的数据帧,根据所述录像通道的通道标识判断所述数据帧是否为所述录像通道首次传输的数据帧;
第一存储模块,用于在所述判断模块判断出所述数据帧是所述录像通道首次传输的数据帧时,在磁盘中为所述录像通道创建对应的录像块,将所述数据帧顺序存储在创建的所述录像块中;
第二存储模块,用于在所述判断模块判断出所述数据帧不是所述录像通道首次传输的数据帧时,根据所述通道标识将所述数据帧顺序存储在磁盘中所述通道标识对应的录像块中;
元数据存储模块,用于获取所述数据帧对应的元数据,将所述元数据存储在内存中的元数据库中。
结合第二方面,本发明实施例提供了上述第二方面的第一种可能的实现方式,其中,所述装置还包括:
空闲块列表创建模块,用于根据预设的块大小从磁盘的存储空间中划分出预设数量个文件块,为每个文件块分配块名称,并记录每个文件块的块路径,将每个文件块的块名称、块路径及每个文件块对应存储在空闲块列表中;
相应地,所述第一存储模块,用于从所述空闲块列表中获取指定数量的文件块,将所述指定数量的文件块分配给所述录像通道,为所述录像通道创建一个时间段,将分配给所述录像通道的文件块组成所述时间段对应的录像块。
结合第二方面的第一种可能的实现方式,本发明实施例提供了上述第二方面的第二种可能的实现方式,其中,所述装置还包括:
时间段列表创建模块,用于将所述录像通道的通道标识、录像类型、所述时间段对应的录像块包括的文件块的块名称、所述时间段对应的录像块中第一个数据帧的长度、所述时间段的开始时间和结束时间组成时间段信息,将所述时间段信息存储在时间段列表中。
结合第二方面的第二种可能的实现方式,本发明实施例提供了上述第二方面的第三种可能的实现方式,其中,所述第二存储模块包括:
判断单元,用于根据所述通道标识,判断所述时间段列表中是否存在所述录像通道对应的正在写数据的当前时间段;
第一存储单元,用于当所述判断单元判断出存在所述当前时间段时,将所述数据帧顺序存储在磁盘中所述当前时间段对应的录像块中;
第二存储单元,用于当所述判断单元判断出不存在所述当前时间段时,创建新的时间段,及为所述新的时间段分配录像块,将所述数据帧顺序存储在所述新的时间段对应的录像块中。
结合第二方面的第三种可能的实现方式,本发明实施例提供了上述第二方面的第四种可能的实现方式,其中,所述装置还包括:
创建模块,用于判断所述当前时间段的时间间隔是否达到预设的间隔阈值,如果是,则关闭所述当前时间段,并创建一个新的时间段;实时监测所述当前时间段存储的数据帧,当监测到存储的数据帧的录像类型发生变化或监测到录像断开时,关闭所述当前时间段,并创建一个新的时间段。
结合第二方面的第三种可能的实现方式,本发明实施例提供了上述第二方面的第五种可能的实现方式,其中,所述第一存储单元包括:
判断子单元,用于判断所述当前时间段对应的录像块中是否存在空闲的文件块;
存储子单元,用于当所述判断子单元判断出存在空闲的文件块时,将所述数据帧顺序存储在所述空闲的文件块中;当所述判断子单元判断出不存在空闲的文件块时,从所述空闲块列表中获取空闲的文件块,将获取的所述空闲的文件块追加在所述录像块中,将所述数据帧顺序存储在所述追加的空闲的文件块中。
结合第二方面的第五种可能的实现方式,本发明实施例提供了上述第二方面的第六种可能的实现方式,其中,在所述当前时间段对应的录像块中不存在空闲的文件块,且从所述空闲块列表中未获取到空闲的文件块时,所述装置还包括:
清空模块,用于查看所述录像通道对应的所有录像块对应的时间段,将时间段满足预设时间淘汰条件的录像块清空,将清空得到的空闲的文件块追加到所述当前时间段对应的录像块中。
结合第二方面,本发明实施例提供了上述第二方面的第七种可能的实现方式,其中,所述装置还包括:
元数据重建模块,用于当检测到一数据帧的元数据损毁时,根据所述数据帧的帧头信息和所述数据帧的存储位置,重新生成所述数据帧的元数据,将重新生成的所述元数据存储在内存中的元数据库中。
在本发明实施例提供的方法及装置中,接收录像通道传输的数据帧,根据录像通道的通道标识判断数据帧是否为录像通道首次传输的数据帧;如果是,在磁盘中为录像通道创建对应的录像块,将数据帧顺序存储在创建的录像块中;如果否,根据通道标识将数据帧顺序存储在磁盘中通道标识对应的录像块中;获取数据帧对应的元数据,将元数据存储在内存中的元数据库中。本发明通过录像通道的通道标识来集中管理多个录像通道的数据存储,降低存储成本。将数据帧存储在磁盘中,将元数据存储在内存中。避免了磁盘的磁头在元数据和录像数据区来回跳动,提高了录像数据存储的性能及存储的稳定性。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1A示出了本发明实施例1所提供的一种录像数据存储方法的流程图;
图1B示出了本发明实施例1所提供的一种录像块的结构示意图;
图2示出了本发明实施例2所提供的一种录像数据存储装置的结构示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到相关技术中为视频通道预先分配了存储区域,导致写入性能有限制,元数据不好管理,将元数据和待存储数据包集中存储在一起,导致磁盘的磁头在元数据和录像数据区来回跳动,降低了磁盘性能,耗存过度。基于此,本发明实施例提供了一种录像数据存储方法及装置。下面通过实施例进行描述。
实施例1
本发明实施例提供了一种录像数据存储方法。本发明实施例的执行主体为服务器或用于存储录像数据的存储设备。在存储录像数据之前,通过如下操作来划分用于存储录像数据的文件块,以及创建空闲块列表,具体包括:
根据预设的块大小从磁盘的存储空间中划分出预设数量个文件块,为每个文件块分配块名称,并记录每个文件块的块路径,将每个文件块的块名称、块路径及每个文件块对应存储在空闲块列表中。
上述预设的块大小可以为4K或8K等。上述预设数量可以为预先设置的上述空闲块列表中的文件块数量的最大阈值。为文件块分配的块名称可以为数值编号,如001或111等。文件块的块路径为该文件块在磁盘中的位置。
在本发明实施例中,服务器或用于存储录像数据的存储设备可以存储多个录像通道的录像数据,多个录像通道共享上述空闲块列表中的文件块,并不事先为录像通道划分存储区域,而是动态地为录像通道分配文件块,实现对多个录像通道数据存储的集中管理,提高了存储效率,降低了存储成本。
由于录像通道的录像数据都是按帧生成的,所以本发明实施例提供的录像数据的存储方法也是一种基于帧的录像数据存储方法。通过上述方式划分出文件块,并创建空闲块列表后,参见图1A,通过如下步骤101-105的操作来存储录像通道传输的数据帧。
步骤101:接收录像通道传输的数据帧;
录像通道在传输数据帧的同时也会传输该录像通道的描述信息,该描述信息包括录像通道的通道标识和录像周期等信息。
步骤102:根据录像通道的通道标识判断该数据帧是否为录像通道首次传输的数据帧,如果是,则执行步骤103,如果否,则执行步骤104;
由于可能会有多个录像通道需要存储录像数据,所以为了便于对多个录像通道的集中管理,在服务器或用于存储录像数据的存储设备中维护了一个通道信息列表,该通道信息列表中包括存储过数据帧的录像通道的通道信息,录像通道的通道信息至少包括该录像通道的通道标识。
当接收到一录像通道传输的数据帧时,首先根据该录像通道的描述信息包括的通道标识,查看通道信息列表中是否包含该通道标识,若包含,则确定该数据帧并不是该录像通道首次传输的数据帧。若不包含,则确定该数据帧为该录像通道首次传输的数据帧。
步骤103:在磁盘中为录像通道创建对应的录像块,将数据帧顺序存储在创建的录像块中,后续执行步骤105;
本发明实施例在存储录像数据时,引入了录像块及时间段的机制。一个录像块由多个文件块组成,且录像块对应于一个时间段。
当确定该数据帧为该录像通道首次传输的数据帧时,从空闲块列表中获取指定数量的文件块,将指定数量的文件块分配给该录像通道,为该录像通道创建一个时间段,将分配给录像通道的文件块组成该时间段对应的录像块。
另外,为了便于管理每个录像通道的时间段,还维护了一个时间段列表。通过上述方式为该录像通道创建一个时间段之后,还将该录像通道的通道标识、录像类型、该时间段对应的录像块包括的文件块的块名称、该时间段对应的录像块中第一个数据帧的长度、该时间段的开始时间和结束时间组成时间段信息,将该时间段信息存储在时间段列表中。对于正在写数据的时间段,还在该时间段的时间段信息中设置用于指示正在写数据的预设指示符。
其中,该时间段的结束时间可以在该时间段结束关闭时写入时间段列表中。本发明实施例中,预先设置了时间段的预设间隔阈值,当时间段的时长达到该预设间隔阈值时,就关闭该时间段。或者当检测到该时间段内存储的数据帧的录像类型发生改变时就关闭该时间段。或者当检测到该时间段内发生录像断开时就关闭该时间段。录像类型可以为手动录像、定时录像、事件录像和预录像等。录像断开是指录像数据在时间上不连续,出现时间间断的情况。
进一步地,在本发明实施例中,当确定该数据帧为该录像通道首次传输的数据帧时,还记录该录像通道的通道信息,并将该录像通道的通道信息添加到通道信息列表中。录像通道的通道信息还包括该录像通道对应的时间段信息、是否循环的标识、录像周期、正在写数据的当前录像块及在当前录像块上的偏移。
其中,录像周期用于指示该录像通道传输数据帧的周期,如录像周期为1小时,则表示该录像通道每次持续1小时传输数据帧进行存储。是否循环的标识用于指示该录像通道是否不断产生录像数据并循环传输数据帧。正在写数据的当前录像块指该录像通道中尚未写满的录像块,在当前录像块上的偏移指当前录像块中已存储了数据帧的文件块与未存储数据的文件块的分界点。
有时录像通道在录像过程中,由于断电或断网等故障导致录像通道中断传输数据帧,此时还在该录像通道的通道信息中记录录像断网时数据帧存储的录像块及在该录像块上的偏移。
步骤104:根据该录像通道的通道标识将数据帧顺序存储在磁盘中该通道标识对应的录像块中;
根据该录像通道的通道标识,判断时间段列表中是否存在该录像通道对应的正在写数据的当前时间段。具体地,根据该录像通道的通道标识,从时间段列表中获取该通道标识对应的所有时间段信息,查询获取的所有时间段信息中是否存在包含用于指示正在写数据的预设指示符的时间段信息,若存在,则判断出时间段列表中存在该录像通道对应的正在写数据的当前时间段,若不存在,则判断出不存在上述当前时间段。
若存在当前时间段,则将数据帧顺序存储在磁盘中当前时间段对应的录像块中。具体地,判断当前时间段对应的录像块中是否存在空闲的文件块,如果是,则将数据帧顺序存储在空闲的文件块中;若当前时间段对应的录像块中不存在空闲的文件块,则从空闲块列表中获取空闲的文件块,将获取的空闲的文件块追加在录像块中,将数据帧顺序存储在追加的空闲的文件块中。
在本发明实施例中,存在当前时间段对应的录像块中不存在空闲的文件块,且从空闲块列表中未获取到空闲的文件块的情况,所以本发明实施例提供了旧块淘汰的机制。具体地,根据该录像通道的通道标识,查看时间段列表中该录像通道对应的所有录像块对应的时间段的时间段信息,将时间段的时间段信息包括的开始时间和结束时间满足预设时间淘汰条件的录像块清空,将清空得到的空闲的文件块追加到当前时间段对应的录像块中。
若存储某一录像通道的录像数据的时间超过了该录像通道的录像周期,则也采用上述旧块淘汰机制来情况满意预设时间淘汰条件的录像块。
上述预设时间淘汰条件可以为时间段的起始时间与结束时间组成的时间区间位于预设时间点之前,或者,时间段的结束时间位于预设时间点之前。
若时间段列表中不存在该录像通道对应的正在写数据的当前时间段,则创建新的时间段,及为新的时间段分配录像块,将该数据帧顺序存储在新的时间段对应的录像块中。
本发明实施例中,采用在录像块中按时间顺序从前往后顺序追加数据帧的方式来存储录像数据,提高了录像数据的读写性能,以及提高了存储录像数据的稳定性。
在本发明实施例中,将数据帧存储在录像块中时,按照如图1B所示的录像块中的结构进行存储。在录像块的开始存储文件头,该文件头包括录像通道的通道标识、录像类型及该录像块对应的时间段的开始时间等信息。在上述文件头之后存储数据帧,每个数据帧都按照帧头、帧数据和帧尾的结构进行存储。由于录像块是由多个文件块组成的,文件块的大小可能小于一个数据帧的长度,所以一个数据帧需要存储到多个文件块中,且可能会存在数据帧存储的最后一个文件块未全部存满的情况,此时该文件块剩余的空间也不能再存储其它数据帧。例如,假设文件块的大小为4K,一数据帧的长度为23K,则该数据帧需要存储在6个文件块中,且最后一个文件块中仅存储了3K的数据,但最后一个文件块中剩余的1K空间不能再被其它数据帧使用。
在向当前时间段对应的录像块中存储数据帧时,还需要实时判断是否需要关闭该当前时间段并创建一个新的时间段。具体地,判断当前时间段的时间间隔是否达到预设的间隔阈值,如果是,则关闭当前时间段,并创建一个新的时间段。
另外,实时监测当前时间段存储的数据帧,当监测到存储的数据帧的录像类型发生变化时则需要关闭该当前时间段,此时判断当前需要存储的数据帧是否为关键帧,如果是,则关闭该当前时间段,并创建一个新的时间段,将该关键帧作为第一帧存入该新的时间段对应的录像块中。如果当前需要存储的数据帧为非关键帧,则将该非关键帧继续存储在当前时间段对应的录像块中,直到接收到关键帧时,关闭该当前时间段,并创建一个新的时间段,将接收的关键帧作为第一帧存入该新的时间段对应的录像块中。
在本发明实施例中,在当前需要存储的数据帧为非关键帧时,也可以直接将该非关键帧丢弃,直到接收到关键帧时,关闭该当前时间段,并创建一个新的时间段,将接收的关键帧作为第一帧存入该新的时间段对应的录像块中。
另外,本发明实施例还实时监测录像通道传输数据帧时是否出现录像断开的情况,当监测到录像断开时,将该断开点作为当前时间段的结束时间,关闭当前时间段,并创建一个新的时间段。
在当前时间段的时间间隔未达到预设的间隔阈值,录像类型也没有改变,且录像也没有发生断开的情况时,若当前时间段对应的录像块被存满,此时将存储该录像块中最后一个数据帧的时间作为当前时间段的结束时间,关闭当前时间段,并创建一个新的时间段。
在通过上述步骤101-104的操作将接收的数据帧存储在磁盘中之后,通过如下步骤105的操作将该数据帧的元数据存储在内存中。
步骤105:获取该数据帧对应的元数据,将元数据存储在内存中的元数据库中。
本发明实施例,使用REDIS(键-值存储系统)数据库在内存中创建了元数据库。
从该数据帧的帧头信息中获取该数据帧的帧类型、帧数据长度和时间戳等信息,以及获取该数据帧在磁盘中的存储位置,该存储位置包括其存储的文件块的块名称、块路径以及其存储的录像块对应的时间段的开始时间和结束时间等信息。将获取的上述信息组成该数据帧的元数据,将该数据帧的元数据顺序存储在内存中的元数据库中。
由于在内存中创建了元数据库,所以本发明可以实现元数据的导入和导出。元数据的存储顺序与其对应的数据帧的存储顺序相同,且将数据帧存储在磁盘中,而将数据帧的元数据存储在内存中,避免了磁盘的磁头在元数据和录像数据区来回跳动,提高了存储录像数据的写性能。
由于在存储元数据的过程中可能会存储元数据损毁的情况,为了避免元数据缺损,导致影响后续录像数据的读取,本发明实施例中当检测到一数据帧的元数据损毁时,从根据该元数据前后相邻的元数据,从磁盘中定位出损毁的该元数据对应的数据帧,根据定位出的该数据帧的帧头信息和数据帧的存储位置,重新生成该数据帧的元数据,将重新生成的元数据存储在内存的元数据库中该损毁的元数据对应的位置处。
本发明实施例还对空闲块列表中空闲的文件块进行管理,周期性地查看空闲块列表中空闲的文件块的数量,若该数量小于预设的数量下限值时,根据预设的块大小,从磁盘中划分新的文件块,将划分的新的文件块添加到空闲块列表中。另外,当释放录像通道对应的录像块中的文件块时,首先把释放的文件块添加到空闲块列表中,若此时空闲块列表中空闲的文件块的数量超过了预设数量,则将该释放的文件块提交给系统。
在本发明实施例中,接收录像通道传输的数据帧,根据录像通道的通道标识判断数据帧是否为录像通道首次传输的数据帧;如果是,在磁盘中为录像通道创建对应的录像块,将数据帧顺序存储在创建的录像块中;如果否,根据通道标识将数据帧顺序存储在磁盘中通道标识对应的录像块中;获取数据帧对应的元数据,将元数据存储在内存中的元数据库中。本发明通过录像通道的通道标识来集中管理多个录像通道的数据存储,降低存储成本。将数据帧存储在磁盘中,将元数据存储在内存中。避免了磁盘的磁头在元数据和录像数据区来回跳动,提高了录像数据存储的性能及存储的稳定性。
实施例2
参见图2,本发明实施例提供了一种录像数据存储装置,该装置用于执行上述实施例1提供的录像数据存储方法。该装置具体包括:
判断模块201,用于接收录像通道传输的数据帧,根据录像通道的通道标识判断数据帧是否为录像通道首次传输的数据帧;
第一存储模块202,用于在判断模块201判断出数据帧是录像通道首次传输的数据帧时,在磁盘中为录像通道创建对应的录像块,将数据帧顺序存储在创建的录像块中;
第二存储模块203,用于在判断模块201判断出数据帧不是录像通道首次传输的数据帧时,根据通道标识将数据帧顺序存储在磁盘中通道标识对应的录像块中;
元数据存储模块204,用于获取数据帧对应的元数据,将元数据存储在内存中的元数据库中。
在该装置存储录像数据之前,通过如下空闲块列表创建模块来划分用于存储录像数据的文件块,并创建空闲块列表。
空闲块列表创建模块,用于根据预设的块大小从磁盘的存储空间中划分出预设数量个文件块,为每个文件块分配块名称,并记录每个文件块的块路径,将每个文件块的块名称、块路径及每个文件块对应存储在空闲块列表中。
相应地,第一存储模块202,用于从空闲块列表中获取指定数量的文件块,将指定数量的文件块分配给录像通道,为录像通道创建一个时间段,将分配给录像通道的文件块组成时间段对应的录像块。
为了便于管理每个录像通道的时间段,还通过时间段列表创建模块维护了一个时间段列表。该时间段列表创建模块,用于将录像通道的通道标识、录像类型、时间段对应的录像块包括的文件块的块名称、时间段对应的录像块中第一个数据帧的长度、时间段的开始时间和结束时间组成时间段信息,将时间段信息存储在时间段列表中。
在判断模块201判断出数据帧不是录像通道首次传输的数据帧时,第二存储模块203通过判断单元、第一存储单元和第二存储单元来存储该数据帧。
判断单元,用于根据通道标识,判断时间段列表中是否存在录像通道对应的正在写数据的当前时间段;
第一存储单元,用于当判断单元判断出存在当前时间段时,将数据帧顺序存储在磁盘中当前时间段对应的录像块中;
第二存储单元,用于当判断单元判断出不存在当前时间段时,创建新的时间段,及为新的时间段分配录像块,将数据帧顺序存储在新的时间段对应的录像块中。
上述第一存储单元通过判断子单元和存储子单元来存储数据帧。
判断子单元,用于判断当前时间段对应的录像块中是否存在空闲的文件块;
存储子单元,用于当判断子单元判断出存在空闲的文件块时,将数据帧顺序存储在空闲的文件块中;当判断子单元判断出不存在空闲的文件块时,从空闲块列表中获取空闲的文件块,将获取的空闲的文件块追加在录像块中,将数据帧顺序存储在追加的空闲的文件块中。
在当前时间段对应的录像块中不存在空闲的文件块,且从空闲块列表中未获取到空闲的文件块时,通过清空模块来获取空闲的文件块。该清空模块,用于查看录像通道对应的所有录像块对应的时间段,将时间段满足预设时间淘汰条件的录像块清空,将清空得到的空闲的文件块追加到当前时间段对应的录像块中。
在向当前时间段对应的录像块中存储数据帧时,还需要通过创建模块来实时判断是否需要关闭该当前时间段并创建一个新的时间段。该创建模块,用于判断当前时间段的时间间隔是否达到预设的间隔阈值,如果是,则关闭当前时间段,并创建一个新的时间段;实时监测当前时间段存储的数据帧,当监测到存储的数据帧的录像类型发生变化或监测到录像断开时,关闭当前时间段,并创建一个新的时间段。
由于在存储元数据的过程中可能会存储元数据损毁的情况,为了避免元数据缺损,导致影响后续录像数据的读取,对于损毁的元数据,还通过元数据重建模块来重建损毁的元数据。
元数据重建模块,用于当检测到一数据帧的元数据损毁时,根据数据帧的帧头信息和数据帧的存储位置,重新生成数据帧的元数据,将重新生成的元数据存储在内存中的元数据库中。
在本发明实施例中,接收录像通道传输的数据帧,根据录像通道的通道标识判断数据帧是否为录像通道首次传输的数据帧;如果是,在磁盘中为录像通道创建对应的录像块,将数据帧顺序存储在创建的录像块中;如果否,根据通道标识将数据帧顺序存储在磁盘中通道标识对应的录像块中;获取数据帧对应的元数据,将元数据存储在内存中的元数据库中。本发明通过录像通道的通道标识来集中管理多个录像通道的数据存储,降低存储成本。将数据帧存储在磁盘中,将元数据存储在内存中。避免了磁盘的磁头在元数据和录像数据区来回跳动,提高了录像数据存储的性能及存储的稳定性。
本发明实施例所提供的录像数据存储装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的模块、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程。
在本申请所提供的几个实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (16)
1.一种录像数据存储方法,其特征在于,所述方法包括:
接收录像通道传输的数据帧,根据所述录像通道的通道标识判断所述数据帧是否为所述录像通道首次传输的数据帧;
如果是,在磁盘中为所述录像通道创建对应的录像块,将所述数据帧顺序存储在创建的所述录像块中;
如果否,根据所述通道标识将所述数据帧顺序存储在磁盘中所述通道标识对应的录像块中;
获取所述数据帧对应的元数据,将所述元数据存储在内存中的元数据库中。
2.根据权利要求1所述的方法,其特征在于,所述接收录像通道传输的数据帧之前,还包括:
根据预设的块大小从磁盘的存储空间中划分出预设数量个文件块,为每个文件块分配块名称,并记录每个文件块的块路径,将每个文件块的块名称、块路径及每个文件块对应存储在空闲块列表中;
相应地,所述在磁盘中为所述录像通道创建对应的录像块包括:
从所述空闲块列表中获取指定数量的文件块,将所述指定数量的文件块分配给所述录像通道,为所述录像通道创建一个时间段,将分配给所述录像通道的文件块组成所述时间段对应的录像块。
3.根据权利要求2所述的方法,其特征在于,所述将分配给所述录像通道的文件块组成所述时间段对应的录像块之后,还包括:
将所述录像通道的通道标识、录像类型、所述时间段对应的录像块包括的文件块的块名称、所述时间段对应的录像块中第一个数据帧的长度、所述时间段的开始时间和结束时间组成时间段信息,将所述时间段信息存储在时间段列表中。
4.根据权利要求3所述的方法,其特征在于,所述根据所述通道标识将所述数据帧顺序存储在磁盘中所述通道标识对应的录像块中,包括:
根据所述通道标识,判断所述时间段列表中是否存在所述录像通道对应的正在写数据的当前时间段;
若存在所述当前时间段,则将所述数据帧顺序存储在磁盘中所述当前时间段对应的录像块中;
若不存在所述当前时间段,则创建新的时间段,及为所述新的时间段分配录像块,将所述数据帧顺序存储在所述新的时间段对应的录像块中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
判断所述当前时间段的时间间隔是否达到预设的间隔阈值,如果是,则关闭所述当前时间段,并创建一个新的时间段;
实时监测所述当前时间段存储的数据帧,当监测到存储的数据帧的录像类型发生变化或监测到录像断开时,关闭所述当前时间段,并创建一个新的时间段。
6.根据权利要求4所述的方法,其特征在于,所述将所述数据帧顺序存储在磁盘中所述当前时间段对应的录像块中,包括:
判断所述当前时间段对应的录像块中是否存在空闲的文件块,如果是,则将所述数据帧顺序存储在所述空闲的文件块中;
若所述当前时间段对应的录像块中不存在空闲的文件块,则从所述空闲块列表中获取空闲的文件块,将获取的所述空闲的文件块追加在所述录像块中,将所述数据帧顺序存储在所述追加的空闲的文件块中。
7.根据权利要求6所述的方法,其特征在于,在所述当前时间段对应的录像块中不存在空闲的文件块,且从所述空闲块列表中未获取到空闲的文件块时,所述方法还包括:
查看所述录像通道对应的所有录像块对应的时间段,将时间段满足预设时间淘汰条件的录像块清空,将清空得到的空闲的文件块追加到所述当前时间段对应的录像块中。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到一数据帧的元数据损毁时,根据所述数据帧的帧头信息和所述数据帧的存储位置,重新生成所述数据帧的元数据,将重新生成的所述元数据存储在内存中的元数据库中。
9.一种录像数据存储装置,其特征在于,所述装置包括:
判断模块,用于接收录像通道传输的数据帧,根据所述录像通道的通道标识判断所述数据帧是否为所述录像通道首次传输的数据帧;
第一存储模块,用于在所述判断模块判断出所述数据帧是所述录像通道首次传输的数据帧时,在磁盘中为所述录像通道创建对应的录像块,将所述数据帧顺序存储在创建的所述录像块中;
第二存储模块,用于在所述判断模块判断出所述数据帧不是所述录像通道首次传输的数据帧时,根据所述通道标识将所述数据帧顺序存储在磁盘中所述通道标识对应的录像块中;
元数据存储模块,用于获取所述数据帧对应的元数据,将所述元数据存储在内存中的元数据库中。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
空闲块列表创建模块,用于根据预设的块大小从磁盘的存储空间中划分出预设数量个文件块,为每个文件块分配块名称,并记录每个文件块的块路径,将每个文件块的块名称、块路径及每个文件块对应存储在空闲块列表中;
相应地,所述第一存储模块,用于从所述空闲块列表中获取指定数量的文件块,将所述指定数量的文件块分配给所述录像通道,为所述录像通道创建一个时间段,将分配给所述录像通道的文件块组成所述时间段对应的录像块。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
时间段列表创建模块,用于将所述录像通道的通道标识、录像类型、所述时间段对应的录像块包括的文件块的块名称、所述时间段对应的录像块中第一个数据帧的长度、所述时间段的开始时间和结束时间组成时间段信息,将所述时间段信息存储在时间段列表中。
12.根据权利要求11所述的装置,其特征在于,所述第二存储模块包括:
判断单元,用于根据所述通道标识,判断所述时间段列表中是否存在所述录像通道对应的正在写数据的当前时间段;
第一存储单元,用于当所述判断单元判断出存在所述当前时间段时,将所述数据帧顺序存储在磁盘中所述当前时间段对应的录像块中;
第二存储单元,用于当所述判断单元判断出不存在所述当前时间段时,创建新的时间段,及为所述新的时间段分配录像块,将所述数据帧顺序存储在所述新的时间段对应的录像块中。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
创建模块,用于判断所述当前时间段的时间间隔是否达到预设的间隔阈值,如果是,则关闭所述当前时间段,并创建一个新的时间段;实时监测所述当前时间段存储的数据帧,当监测到存储的数据帧的录像类型发生变化或监测到录像断开时,关闭所述当前时间段,并创建一个新的时间段。
14.根据权利要求12所述的装置,其特征在于,所述第一存储单元包括:
判断子单元,用于判断所述当前时间段对应的录像块中是否存在空闲的文件块;
存储子单元,用于当所述判断子单元判断出存在空闲的文件块时,将所述数据帧顺序存储在所述空闲的文件块中;当所述判断子单元判断出不存在空闲的文件块时,从所述空闲块列表中获取空闲的文件块,将获取的所述空闲的文件块追加在所述录像块中,将所述数据帧顺序存储在所述追加的空闲的文件块中。
15.根据权利要求14所述的装置,其特征在于,在所述当前时间段对应的录像块中不存在空闲的文件块,且从所述空闲块列表中未获取到空闲的文件块时,所述装置还包括:
清空模块,用于查看所述录像通道对应的所有录像块对应的时间段,将时间段满足预设时间淘汰条件的录像块清空,将清空得到的空闲的文件块追加到所述当前时间段对应的录像块中。
16.根据权利要求9所述的装置,其特征在于,所述装置还包括:
元数据重建模块,用于当检测到一数据帧的元数据损毁时,根据所述数据帧的帧头信息和所述数据帧的存储位置,重新生成所述数据帧的元数据,将重新生成的所述元数据存储在内存中的元数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510659390.8A CN105306860B (zh) | 2015-10-12 | 2015-10-12 | 一种录像数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510659390.8A CN105306860B (zh) | 2015-10-12 | 2015-10-12 | 一种录像数据存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105306860A true CN105306860A (zh) | 2016-02-03 |
CN105306860B CN105306860B (zh) | 2019-01-22 |
Family
ID=55203556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510659390.8A Active CN105306860B (zh) | 2015-10-12 | 2015-10-12 | 一种录像数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105306860B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106961569A (zh) * | 2017-03-21 | 2017-07-18 | 深圳英飞拓科技股份有限公司 | 一种录像覆盖方法、装置及网络硬盘录像机 |
CN107147865A (zh) * | 2017-06-09 | 2017-09-08 | 上海天跃科技股份有限公司 | 数模混合硬盘录像机 |
CN108174242A (zh) * | 2018-01-09 | 2018-06-15 | 武汉斗鱼网络科技有限公司 | 直播数据复用方法、装置、存储介质及设备 |
CN108491161A (zh) * | 2018-03-13 | 2018-09-04 | 深圳市图敏智能视频股份有限公司 | 一种高效多通道预分配磁盘录像方法 |
CN109858622A (zh) * | 2019-01-31 | 2019-06-07 | 福州瑞芯微电子股份有限公司 | 深度学习神经网络的数据搬运电路和方法 |
CN110708355A (zh) * | 2019-09-05 | 2020-01-17 | 北京浪潮数据技术有限公司 | 一种文件上传的方法、系统、设备及可读存储介质 |
CN111405220A (zh) * | 2019-09-30 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 视频预录方法及云存储系统 |
CN112416257A (zh) * | 2020-12-02 | 2021-02-26 | 北京中指讯博数据信息技术有限公司 | 资源存储方法及装置 |
CN112771624A (zh) * | 2018-09-20 | 2021-05-07 | 阿比奥梅德公司 | 用于非相接的医疗装置操作数据的数据存储和检索系统 |
CN113741822A (zh) * | 2021-11-05 | 2021-12-03 | 腾讯科技(深圳)有限公司 | 数据存储方法、数据读取方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533416A (zh) * | 2009-04-23 | 2009-09-16 | 杭州华三通信技术有限公司 | 一种音视频文件管理方法及系统 |
US20090310242A1 (en) * | 2006-03-28 | 2009-12-17 | Veracity Uk Limited | Hard disk storage system |
CN101656094A (zh) * | 2009-09-25 | 2010-02-24 | 杭州华三通信技术有限公司 | 数据存储方法和存储设备 |
CN101714391A (zh) * | 2009-11-12 | 2010-05-26 | 北京东方网力科技有限公司 | 一种数据存储方法及装置 |
CN104065906A (zh) * | 2014-07-09 | 2014-09-24 | 珠海全志科技股份有限公司 | 数字录像设备的录像方法及装置 |
-
2015
- 2015-10-12 CN CN201510659390.8A patent/CN105306860B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090310242A1 (en) * | 2006-03-28 | 2009-12-17 | Veracity Uk Limited | Hard disk storage system |
CN101533416A (zh) * | 2009-04-23 | 2009-09-16 | 杭州华三通信技术有限公司 | 一种音视频文件管理方法及系统 |
CN101656094A (zh) * | 2009-09-25 | 2010-02-24 | 杭州华三通信技术有限公司 | 数据存储方法和存储设备 |
CN101714391A (zh) * | 2009-11-12 | 2010-05-26 | 北京东方网力科技有限公司 | 一种数据存储方法及装置 |
CN104065906A (zh) * | 2014-07-09 | 2014-09-24 | 珠海全志科技股份有限公司 | 数字录像设备的录像方法及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106961569B (zh) * | 2017-03-21 | 2020-06-16 | 深圳英飞拓科技股份有限公司 | 一种录像覆盖方法、装置及网络硬盘录像机 |
CN106961569A (zh) * | 2017-03-21 | 2017-07-18 | 深圳英飞拓科技股份有限公司 | 一种录像覆盖方法、装置及网络硬盘录像机 |
CN107147865A (zh) * | 2017-06-09 | 2017-09-08 | 上海天跃科技股份有限公司 | 数模混合硬盘录像机 |
CN108174242A (zh) * | 2018-01-09 | 2018-06-15 | 武汉斗鱼网络科技有限公司 | 直播数据复用方法、装置、存储介质及设备 |
CN108491161A (zh) * | 2018-03-13 | 2018-09-04 | 深圳市图敏智能视频股份有限公司 | 一种高效多通道预分配磁盘录像方法 |
CN108491161B (zh) * | 2018-03-13 | 2020-12-29 | 深圳市图敏智能视频股份有限公司 | 一种高效多通道预分配磁盘录像方法 |
CN112771624A (zh) * | 2018-09-20 | 2021-05-07 | 阿比奥梅德公司 | 用于非相接的医疗装置操作数据的数据存储和检索系统 |
CN109858622A (zh) * | 2019-01-31 | 2019-06-07 | 福州瑞芯微电子股份有限公司 | 深度学习神经网络的数据搬运电路和方法 |
CN110708355A (zh) * | 2019-09-05 | 2020-01-17 | 北京浪潮数据技术有限公司 | 一种文件上传的方法、系统、设备及可读存储介质 |
CN111405220A (zh) * | 2019-09-30 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 视频预录方法及云存储系统 |
CN111405220B (zh) * | 2019-09-30 | 2022-07-05 | 杭州海康威视系统技术有限公司 | 视频预录方法及云存储系统 |
CN112416257A (zh) * | 2020-12-02 | 2021-02-26 | 北京中指讯博数据信息技术有限公司 | 资源存储方法及装置 |
CN113741822A (zh) * | 2021-11-05 | 2021-12-03 | 腾讯科技(深圳)有限公司 | 数据存储方法、数据读取方法及相关装置 |
CN113741822B (zh) * | 2021-11-05 | 2022-02-15 | 腾讯科技(深圳)有限公司 | 数据存储方法、数据读取方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105306860B (zh) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105306860A (zh) | 一种录像数据存储方法及装置 | |
CN202798798U (zh) | 基于云计算技术的高可用系统 | |
CN100578470C (zh) | 基于裸设备的音视频数据存取方法和装置 | |
CN101753935B (zh) | 一种数据存储设备长时间预录的方法 | |
CN104469310A (zh) | 录像数据的网络存储方法和系统、视频监控平台 | |
KR20120102664A (ko) | 미래 사용 추정에 기반한 저장 메모리 할당 | |
CN103024329A (zh) | 一种监控录像的存储管理方法 | |
CN103927251A (zh) | 一种嵌入式系统的日志管理方法 | |
CN102291256B (zh) | 一种监控数据的查询方法和设备 | |
CN105786401A (zh) | 服务器集群系统中的数据管理方法及装置 | |
CN110442646B (zh) | 一种ceph数据同步模块主端写性能优化系统及方法 | |
US20140156853A1 (en) | Computer and resource retrieval method | |
CN108965010A (zh) | 一种网络链路流控异常监控方法、系统及主机总线适配器 | |
CN108762984A (zh) | 一种连续性数据备份的方法及装置 | |
CN113495889B (zh) | 一种分布式对象存储方法、装置、电子设备及存储介质 | |
CN110515550A (zh) | 一种sata固态硬盘冷热数据分离的方法及其装置 | |
CN102999399A (zh) | 一种jbod阵列自动恢复存储的方法和装置 | |
CN110069371B (zh) | 一种识别固态硬盘性能的方法及固态硬盘 | |
CN104991746A (zh) | 一种存储和读取fat硬盘内录像数据的方法及系统 | |
CN102591594A (zh) | 一种数据的处理方法和设备 | |
CN105242955A (zh) | 一种虚拟机磁盘输入输出调度方法及系统 | |
CN102883143B (zh) | 一种调整raid阵列缓存的方法 | |
CN104601489A (zh) | 一种日志块传输方法及设备 | |
CN105843754A (zh) | 一种固态硬盘的日志信息存储方法 | |
CN116643704A (zh) | 存储管理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right | ||
PP01 | Preservation of patent right |
Effective date of registration: 20220726 Granted publication date: 20190122 |