CN111966632B - 一种流式数据存储方法、读取方法、设备及可读存储介质 - Google Patents
一种流式数据存储方法、读取方法、设备及可读存储介质 Download PDFInfo
- Publication number
- CN111966632B CN111966632B CN202011126421.0A CN202011126421A CN111966632B CN 111966632 B CN111966632 B CN 111966632B CN 202011126421 A CN202011126421 A CN 202011126421A CN 111966632 B CN111966632 B CN 111966632B
- Authority
- CN
- China
- Prior art keywords
- streaming data
- file
- continuous
- information
- data storage
- 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.)
- Active
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000010586 diagram Methods 0.000 description 16
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本申请公开了一种流式数据存储方法、读取方法、设备及可读存储介质,该流式数据存储方法包括:创建一个连续流式数据文件,其中,连续流式数据文件至少包括若干数据帧;当连续流式数据文件关闭并重新打开时,在连续流式数据文件后面创建空洞信息帧,其中,空洞信息帧记录连续流式数据文件的文件信息偏移地址;在创建空洞信息帧后,继续写入数据帧,形成另一个连续流式数据文件;将连续的连续流式数据文件组成一个流式数据存储文件。上述方案,能够将大量连续流式数据文件汇聚成一个流式数据存储文件,达到减少文件总数的目的。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种流式数据存储方法、读取方法、设备及可读存储介质。
背景技术
目前的录像存放方式汇总,通常每隔一段时间生产一个录像文件,在正常情况下每个录像文件在时间上是连续的。如果由于网络抖动或者其他原因录像中断就会立即关闭该文件,此时该文件的时间范围可能小于预设的时间长度。待录像恢复后存放到另外一个文件,那么录像中断前后的文件在时间上是中断的。
在这种方式下,如果网络抖动很频繁,会重复执行以下流程:创建大文件、写入数据、关闭文件,并且每个文件的数据很小,但是会产生占用大文件句柄的海量小文件。这种文件会占用底层存储的大文件数量,大文件数量达到底层存储上限后将无法在写入文件。海量的小文件,也带来了沉重的元数据管理压力,甚至会影响整个底层存储系统的性能。
发明内容
本申请至少提供一种流式数据存储方法、读取方法、设备及可读存储介质。
本申请第一方面提供了一种流式数据存储方法,所述流式数据存储方法包括:
创建一个连续流式数据文件,其中,所述连续流式数据文件至少包括若干数据帧;
当所述连续流式数据文件关闭并重新打开时,在所述连续流式数据文件后面创建空洞信息帧,其中,所述空洞信息帧记录所述连续流式数据文件的文件信息偏移地址;
在创建所述空洞信息帧后,继续写入数据帧,形成另一个连续流式数据文件;
将连续的所述连续流式数据文件组成一个流式数据存储文件。
其中,所述流式数据存储方法还包括:
创建一个所述连续流式数据文件;
当所述连续流式数据文件关闭时,在所述连续流式数据文件尾部增加第一总索引信息和第一当前文件描述信息。
其中,所述在所述空洞信息帧后继续写入数据帧的步骤,还包括:
当所述连续流式数据文件重新打开时,在所述第一当前文件描述信息后面创建所述空洞信息帧;
在所述空洞信息帧后按照预设周期写入索引,所述索引记录所述数据帧中I帧的索引信息,以及所述空洞信息帧在所述流式数据存储文件的偏移信息。
其中,所述索引包括一级索引和二级索引,所述预设周期包括第一预设周期和第二预设周期,其中,所述第一预设周期小于所述第二预设周期;
所述在所述空洞信息帧后按照预设周期写入索引的步骤,包括:
在所述空洞信息帧后按照所述第一预设周期写入所述二级索引,所述二级索引记录所述数据帧中I帧的索引信息,以及上一个所述一级索引的地址;
在所述空洞信息帧后按照所述第二预设周期写入所述一级索引,所述一级索引存储时间在前的所述二级索引的地址,以及所述空洞信息帧在所述流式数据存储文件的偏移信息。
其中,在所述空洞信息帧后预设数量的所述二级索引还记录所述空洞信息帧在所述流式数据存储文件的偏移信息。
其中,所述创建在所述空洞信息帧后,继续写入数据帧,形成另一个连续流式数据文件的步骤之后,所述流式数据存储方法还包括:
当所述另一个连续流式数据文件关闭时,在所述另一个连续流式数据文件尾部增加第二总索引信息和第二当前文件描述信息,其中,所述第二总索引信息记录所述另一个连续流式数据文件中连续写入的I帧信息,以及所述空洞信息帧在所述流式数据存储文件的偏移信息。
其中,所述流式数据存储方法还包括:
当所述连续流式数据文件关闭并重新打开时,判断所述连续流式数据文件的存储时长是否达到所述流式数据储存文件的存储时长;
若否,则在所述连续流式数据文件后面创建空洞信息帧。
本申请第二方面提供了一种流式数据读取方法,所述流式数据读取方法包括:
获取流式数据存储文件,并判断所述流式数据存储文件是否正在追加写入,其中,所述流式数据存储文件至少包括一个连续流式数据文件;
若否,则读取所述流式数据存储文件尾部的总索引信息,获取对应的空洞信息帧在所述流式数据存储文件的偏移信息;
基于所述空洞信息帧的偏移信息获取所述连续流式数据文件的总索引信息;
根据所述连续流式数据文件的总索引信息获取所述流式数据存储文件中的所有空洞信息帧。
其中,所述流式数据读取方法还包括:
当所述流式数据存储文件正在追加写入时,读取写入位置对应的索引;
根据所述写入位置对应的索引获取当前连续流式数据文件的空洞信息帧在所述流式数据存储文件的偏移信息;
基于所述当前连续流式数据文件空洞信息帧的偏移信息获取前一个连续流式数据文件的总索引信息,以此获取前一个连续流式数据的空洞信息帧在所述流式数据存储文件的偏移信息,直至获取所述流式数据存储文件中的所有空洞信息帧。
其中,所述索引包括一级索引和二级索引;
所述根据所述写入位置对应的索引获取当前连续流式数据文件的空洞信息帧在所述流式数据存储文件的偏移信息的步骤,包括:
读取所述写入位置对应的二级索引;
当可以基于所述二级索引获取对应的一级索引时,通过所述一级索引查找所述当前连续流式数据文件的空洞信息帧在所述流式数据存储文件的偏移信息;
或者,无法基于所述二级索引获取对应的一级索引时,直接通过所述二级索引查找所述当前连续流式数据文件的空洞信息帧在所述流式数据存储文件的偏移信息。
本申请第三方面提供了一种终端设备,包括相互耦接的存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述第一方面中的流式数据存储方法和/或第二方面中的流式数据读取方法。
本申请第四方面提供了一种流式数据存储设备,所述流式数据存储设备包括:
文件创建模块,用于创建一个连续流式数据文件,其中,所述连续流式数据文件至少包括若干数据帧;
信息帧创建模块,用于当所述连续流式数据文件关闭并重新打开时,在所述连续流式数据文件后面创建空洞信息帧,其中,所述空洞信息帧记录所述连续流式数据文件的文件信息偏移地址;
数据帧写入模块,用于在创建所述空洞信息帧后,继续写入数据帧,形成另一个连续流式数据文件;
文件存储模块,用于将连续的所述连续流式数据文件组成一个流式数据存储文件。
本申请第五方面提供了一种流式数据读取设备,所述流式数据读取设备包括:
文件获取模块,用于获取流式数据存储文件;
偏移信息获取模块,用于在所述流式数据存储文件不在追加写入时,读取所述流式数据存储文件尾部的总索引信息,获取对应的空洞信息帧在所述流式数据存储文件的偏移信息,其中,所述流式数据存储文件至少包括一个连续流式数据文件;
索引信息获取模块,用于基于所述空洞信息帧的偏移信息获取所述连续流式数据文件的总索引信息;
文件读取模块,用于根据所述连续流式数据文件的总索引信息获取所述流式数据存储文件中的所有空洞信息帧。
本申请第六方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述第一方面中的流式数据存储方法和/或第二方面中的流式数据读取方法。
本申请中,终端设备创建一个连续流式数据文件,其中,连续流式数据文件至少包括若干数据帧;当连续流式数据文件关闭并重新打开时,在连续流式数据文件后面创建空洞信息帧,其中,空洞信息帧记录连续流式数据文件的文件信息偏移地址;在创建空洞信息帧后,继续写入数据帧,形成另一个连续流式数据文件;将连续的连续流式数据文件组成一个流式数据存储文件。上述方案,能够将大量连续流式数据文件汇聚成一个流式数据存储文件,达到减少文件总数的目的。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1是本申请提供的流式数据存储方法一实施例的流程示意图;
图2是本申请提供的流式数据存储方法另一实施例的流程示意图;
图3是本申请提供的追加写入场景一实施例的框架示意图;
图4是本申请提供的追加写入场景另一实施例的框架示意图;
图5是本申请提供的流式数据存储文件的结构示意图;
图6是本申请提供的流式数据读取方法一实施例的流程示意图;
图7是本申请提供的流式数据读取方法另一实施例的流程示意图;
图8是本申请提供的流式数据存储设备一实施例的框架示意图;
图9是本申请提供的流式数据读取设备一实施例的框架示意图;
图10是本申请提供的终端设备一实施例的框架示意图;
图11是本申请提供的计算机可读存储介质一实施例的框架示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
请参阅图1,图1是本申请提供的流式数据存储方法一实施例的流程示意图。
本申请提供的流式数据存储方法应用于一种存储装置,其中,本申请的存储装置可以为服务器,也可以为终端设备,还可以为由服务器和终端设备相互配合的系统。相应地,存储装置包括的各个部分,例如各个单元、子单元、模块、子模块可以全部设置于服务器中,也可以全部设置于终端设备中,还可以分别设置于服务器和终端设备中。
进一步地,上述服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块,例如用来提供分布式服务器的软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。
本申请提出流式数据存储方法用于解决目前方案中因网络频繁抖动而导致的频繁切换文件带来的海量小文件存储管理,以及对底层存储资源消耗的问题,其核心是将大量小文件,按照时间维度汇聚成一个大文件,管理时间空洞,达到减少文件总数的目的。具体而言,本公开实施例的流式数据存储方法包括以下步骤:
步骤S11:创建一个连续流式数据文件,其中,连续流式数据文件至少包括若干数据帧。
其中,存储装置按照正常流式数据写入场景创建连续多帧的数据帧,以组成连续流式数据文件。存储装置按照用户输入的指令提前预设一个流式数据存储文件的存储时长,一般将存储时长设置为1个小时,在其他可能的实施例中,也可以将存储时长设置为其他数值。在存储装置写入连续流式数据文件的过程中,存储装置记录连续流式数据文件的存储时长;一旦连续流式数据文件的存储时长达到预设的存储时长时,即将连续流式数据文件存储为流式数据存储文件,并将后续写入的数据帧存储到下一个流式数据存储文件。
步骤S12:当连续流式数据文件关闭并重新打开时,在连续流式数据文件后面创建空洞信息帧,其中,空洞信息帧记录连续流式数据文件的文件信息偏移地址。
其中,在连续流式数据文件的存储时长未达到预设的存储时长的情况下,连续流式数据文件关闭后重新打开,存储装置在该连续流式数据文件后追加写入数据帧。
具体地,存储装置在该连续流式数据文件后面创建空洞信息帧,其中,空洞信息帧通过封装为流媒体帧的方式记录空洞时间(即连续数据量写入中断的时间间隔)信息,空洞信息帧封装为流式帧的方式,与前面的连续流式数据文件写入同一个流式数据存储文件中,方便流式数据写入和读取,不再需要单独的索引文件。
其中,空洞信息帧的记录内容为当前上一个连续流式数据文件的文件信息偏移地址。
步骤S13:在创建空洞信息帧后,继续写入数据帧,形成另一个连续流式数据文件。
其中,存储装置在创建空洞信息帧后,继续写入数据帧。需要说明的是,空洞信息帧以及后续写入的数据帧属于当前连续流式数据文件,与当前上一个连续流式数据文件存在时间上的连续关系。
存储装置一直写入数据帧,直至当前连续流式数据文件关闭,或者当前上一个连续流式数据文件与当前连续流式数据文件的存储时长达到预设的存储时长时,即生成当前连续流式数据文件。
步骤S14:将连续的连续流式数据文件组成一个流式数据存储文件。
其中,存储装置重复上述步骤S11~步骤S13,直至所有连续流式存数据文件总的存储时长达到预设的存储时长时,存储装置将所有连续流式存储数据文件组成一个流式数据存储文件,从而将多个小文件通过一个大文件的方式进行存储,有效减少文件总数。
在本公开实施例中,存储装置创建一个连续流式数据文件,其中,连续流式数据文件至少包括若干数据帧;当连续流式数据文件关闭并重新打开时,在连续流式数据文件后面创建空洞信息帧,其中,空洞信息帧记录连续流式数据文件的文件信息偏移地址;在创建空洞信息帧后,继续写入数据帧,形成另一个连续流式数据文件;将连续的连续流式数据文件组成一个流式数据存储文件。上述方案,能够将大量连续流式数据文件汇聚成一个流式数据存储文件,达到减少文件总数的目的。
请继续参阅图2~图4,图2是本申请提供的流式数据存储方法另一实施例的流程示意图,图3是本申请提供的追加写入场景一实施例的框架示意图,图4是本申请提供的追加写入场景另一实施例的框架示意图。
具体而言,本公开实施例的流式数据存储方法包括以下步骤:
步骤S21:创建一个连续流式数据文件,其中,连续流式数据文件至少包括若干数据帧。
其中,存储装置按照正常流式数据写入场景创建连续多帧的数据帧,以组成连续流式数据文件。
步骤S22:当连续流式数据文件关闭时,在连续流式数据文件尾部增加第一总索引信息和第一当前文件描述信息。
其中,请参阅图3和图4,在当前的连续流式数据文件关闭时,存储装置在当前的连续流式数据文件尾部增加第一总索引信息和第一当前文件描述信息。
其中,总索引信息记录当前连续写入的流式数据片段中所有的I帧信息,以及记录最近一次空洞信息帧的位置信息,即在大文件中的偏移信息,方便后续读取时快速查找。当前文件描述信息记录当前连续流式数据文件的存储时长等信息。
步骤S23:当连续流式数据文件重新打开时,在第一当前文件描述信息后面创建空洞信息帧。
其中,当连续流式数据文件重新打开时,存储装置即创建另一个新的连续流式数据文件,并在新的连续流式数据文件的开头,也就是前一个连续流式数据文件的第一当前文件描述信息后面创建空洞信息帧。
步骤S24:在空洞信息帧后按照预设周期写入索引,索引记录数据帧中I帧的索引信息,以及空洞信息帧在流式数据存储文件的偏移信息。
其中,本公开实施例的索引主要包括一级索引和二级索引。需要说明的是,在不同的追加写入场景,存储装置写入索引的种类也不同。例如,存储装置根据用户输入的指令预先设置一持续时间阈值,并以该持续时间阈值划分追加写入场景。具体地,如果新追加写入数据帧的持续时间小于持续时间阈值,如图3的追加写入场景,则存储装置不需要使用一级索引;如果新追加写入数据帧的持续时间大于持续时间阈值,如图4的追加写入场景,则存储装置需要同时使用一级索引和二级索引。
具体地,一级索引记录持续时间阈值内的所有二级索引地址,以及最近一次空洞信息帧的位置,即在大文件中的偏移信息。二级索引记录当前I帧的索引信息,以及上一个一级索引的地址信息;对于部分二级索引,即新写入连续流式数据文件的前N个二级索引,还可以记录最近一个空洞信息帧的位置,其中,N为大于0的整数。
下面,结合图3和图4的追加写入场景对一级索引和二级索引的写入规则进行说明:
考虑到追加写入场景的持续时间不可预知,存储装置在每次新追加写入的第一个预设时间阈值内,以60秒为例,采用如下的机制:存储装置先记录空洞信息帧,其中,空洞信息帧记录上一个连续流式数据文件的总索引偏移地址,如图3场景中的(1);然后,存储装置再写入流式数据帧,在前60秒的二级索引中,记录最近一个空洞信息帧在大文件中的偏移,方便即存即放时能够快速索引定位和空洞信息帧读取,如图3场景中的(2)。
具体请参阅图3,如果新追加写入的数据帧,最终持续时间低于60秒,此时不存在一级索引,则在关闭连续流式数据文件时,总索引同样也记录最近一次空洞信息帧在大文件中的偏移,如图3场景中的(3)。
具体请参阅图4,如果新追加写入的数据帧,最终持续时间超过60秒,此时会存在一级索引,则所有一级索引中增加记录最近一次空洞信息帧在大文件中的偏移地址,如图4场景中的(3),在此场景下60秒之后的二级索引不再需要记录空洞信息帧在大文件中的偏移地址。
步骤S25:当另一个连续流式数据文件关闭时,在另一个连续流式数据文件尾部增加第二总索引信息和第二当前文件描述信息。
其中,第二总索引信息记录另一个连续流式数据文件中连续写入的I帧信息,以及空洞信息帧在流式数据存储文件的偏移信息。
步骤S26:将连续的连续流式数据文件组成一个流式数据存储文件。
其中,存储装置通过上述两种追加写入场景组合,可以管理大量流失数据汇聚写入到一个大文件中,具体请参阅图5,图5是本申请提供的流式数据存储文件的结构示意图。
请继续参阅图6,图6是本申请提供的流式数据读取方法一实施例的流程示意图。
具体而言,本公开实施例的流式数据读取方法包括以下步骤:
步骤S31:获取流式数据存储文件,并判断流式数据存储文件是否正在追加写入。
其中,流式数据存储文件至少包括一个连续流式数据文件。在流式数据存储文件不在追加写入的情况下,进入步骤S32。
步骤S32:读取流式数据存储文件尾部的总索引信息,获取对应的空洞信息帧在流式数据存储文件的偏移信息。
步骤S33:基于空洞信息帧的偏移信息获取连续流式数据文件的总索引信息。
步骤S34:根据连续流式数据文件的总索引信息获取流式数据存储文件中的所有空洞信息帧。
请继续参阅图7,图7是本申请提供的流式数据读取方法另一实施例的流程示意图。
具体而言,本公开实施例的流式数据读取方法包括以下步骤:
步骤S41:获取流式数据存储文件,并判断流式数据存储文件是否正在追加写入。
其中,流式数据存储文件至少包括一个连续流式数据文件。在流式数据存储文件正在追加写入的情况下,进入步骤S42。
步骤S42:读取写入位置对应的索引。
步骤S43:根据写入位置对应的索引获取当前连续流式数据文件的空洞信息帧在流式数据存储文件的偏移信息。
其中,本公开实施例的索引主要包括一级索引和二级索引,对于一级索引和二级索引的记录内容以及使用规则请参阅上述实施例的说明,在此不再赘述。
存储装置读取所述写入位置对应的二级索引,根据读取结果可以划分为以下两种不同的读取场景:
场景一:当可以基于所述二级索引获取对应的一级索引时,通过述一级索引查找当前连续流式数据文件的空洞信息帧在流式数据存储文件的偏移信息。
场景二:无法基于所述二级索引获取对应的一级索引时,直接通过二级索引查找当前连续流式数据文件的空洞信息帧在流式数据存储文件的偏移信息。
步骤S44:基于当前连续流式数据文件空洞信息帧的偏移信息获取前一个连续流式数据文件的总索引信息,以此获取前一个连续流式数据的空洞信息帧在流式数据存储文件的偏移信息,直至获取流式数据存储文件中的所有空洞信息帧。
请参阅图8,图8是本申请提供的流式数据存储设备一实施例的框架示意图。其中,流式数据存储设备60包括:
文件创建模块61,用于创建一个连续流式数据文件,其中,连续流式数据文件至少包括若干数据帧。
信息帧创建模块62,用于当连续流式数据文件关闭并重新打开时,在连续流式数据文件后面创建空洞信息帧,其中,空洞信息帧记录连续流式数据文件的文件信息偏移地址。
数据帧写入模块63,用于在创建空洞信息帧后,继续写入数据帧,形成另一个连续流式数据文件。
文件存储模块64,用于将连续的连续流式数据文件组成一个流式数据存储文件。
请参阅图9,图9是本申请提供的流式数据读取设备一实施例的框架示意图。其中,流式数据读取设备70包括:
文件获取模块71,用于获取流式数据存储文件。
偏移信息获取模块72,用于在流式数据存储文件不在追加写入时,读取流式数据存储文件尾部的总索引信息,获取对应的空洞信息帧在流式数据存储文件的偏移信息,其中,流式数据存储文件至少包括一个连续流式数据文件。
索引信息获取模块73,用于基于空洞信息帧的偏移信息获取连续流式数据文件的总索引信息。
文件读取模块74,用于根据连续流式数据文件的总索引信息获取流式数据存储文件中的所有空洞信息帧。
请参阅图10,图10是本申请提供的终端设备一实施例的框架示意图。终端设备80包括相互耦接的存储器81和处理器82,处理器82用于执行存储器81中存储的程序指令,以实现上述任一流式数据存储方法和/或流式数据读取方法实施例中的步骤。在一个具体的实施场景中,终端设备80可以包括但不限于:微型计算机、服务器,此外,终端设备80还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
具体而言,处理器82用于控制其自身以及存储器81以实现上述任一流式数据存储方法和/或流式数据读取方法实施例中的步骤。处理器82还可以称为CPU(CentralProcessing Unit,中央处理单元)。处理器82可能是一种集成电路芯片,具有信号的处理能力。处理器82还可以是通用处理器、数字信号处理器(Digital Signal Processor, DSP)、专用集成电路(Application Specific Integrated Circuit, ASIC)、现场可编程门阵列(Field-Programmable Gate Array, FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器82可以由集成电路芯片共同实现。
请参阅图11,图11是本申请提供的计算机可读存储介质一实施例的框架示意图。计算机可读存储介质90存储有能够被处理器运行的程序指令901,程序指令901用于实现上述任一流式数据存储方法和/或流式数据读取方法实施例中的步骤。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (12)
1.一种流式数据存储方法,其特征在于,所述流式数据存储方法包括:
创建一个连续流式数据文件,其中,所述连续流式数据文件至少包括若干数据帧;
当所述连续流式数据文件关闭并重新打开时,在所述连续流式数据文件后面创建空洞信息帧,其中,所述空洞信息帧记录所述连续流式数据文件的文件信息偏移地址;
在创建所述空洞信息帧后,继续写入数据帧,形成另一个连续流式数据文件;
将连续的所述连续流式数据文件组成一个流式数据存储文件;
所述流式数据存储方法还包括:当所述连续流式数据文件关闭时,在所述连续流式数据文件尾部增加第一总索引信息和第一当前文件描述信息;
其中,所述流式数据存储方法还包括:当所述连续流式数据文件关闭并重新打开时,判断所述连续流式数据文件的存储时长是否达到所述流式数据存储文件的存储时长,若否,则在所述连续流式数据文件后面创建空洞信息帧。
2.根据权利要求1所述的流式数据存储方法,其特征在于,
所述在所述空洞信息帧后继续写入数据帧的步骤,还包括:
当所述连续流式数据文件重新打开时,在所述第一当前文件描述信息后面创建所述空洞信息帧;
在所述空洞信息帧后按照预设周期写入索引,所述索引记录所述数据帧中I帧的索引信息,以及所述空洞信息帧在所述流式数据存储文件的偏移信息。
3.根据权利要求2所述的流式数据存储方法,其特征在于,所述索引包括一级索引和二级索引,所述预设周期包括第一预设周期和第二预设周期,其中,所述第一预设周期小于所述第二预设周期;
所述在所述空洞信息帧后按照预设周期写入索引的步骤,包括:
在所述空洞信息帧后按照所述第一预设周期写入所述二级索引,所述二级索引记录所述数据帧中I帧的索引信息,以及上一个所述一级索引的地址;
在所述空洞信息帧后按照所述第二预设周期写入所述一级索引,所述一级索引存储时间在前的所述二级索引的地址,以及所述空洞信息帧在所述流式数据存储文件的偏移信息。
4.根据权利要求3所述的流式数据存储方法,其特征在于,
在所述空洞信息帧后预设数量的所述二级索引还记录所述空洞信息帧在所述流式数据存储文件的偏移信息。
5.根据权利要求1所述的流式数据存储方法,其特征在于,
在创建所述空洞信息帧后,继续写入数据帧,形成另一个连续流式数据文件的步骤之后,所述流式数据存储方法还包括:
当所述另一个连续流式数据文件关闭时,在所述另一个连续流式数据文件尾部增加第二总索引信息和第二当前文件描述信息,其中,所述第二总索引信息记录所述另一个连续流式数据文件中连续写入的I帧信息,以及所述空洞信息帧在所述流式数据存储文件的偏移信息。
6.一种流式数据存储设备,其特征在于,所述流式数据存储设备包括:
文件创建模块,用于创建一个连续流式数据文件,其中,所述连续流式数据文件至少包括若干数据帧;
信息帧创建模块,用于当所述连续流式数据文件关闭并重新打开时,在所述连续流式数据文件后面创建空洞信息帧,其中,所述空洞信息帧记录所述连续流式数据文件的文件信息偏移地址;
数据帧写入模块,用于在创建所述空洞信息帧后,继续写入数据帧,形成另一个连续流式数据文件;
文件存储模块,用于将连续的所述连续流式数据文件组成一个流式数据存储文件;
其中,所述文件创建模块还用于创建一个所述连续流式数据文件;当所述连续流式数据文件关闭时,在所述连续流式数据文件尾部增加第一总索引信息和第一当前文件描述信息;
其中,所述文件创建模块还用于当所述连续流式数据文件关闭并重新打开时,判断所述连续流式数据文件的存储时长是否达到所述流式数据储存文件的存储时长,若否,则在所述连续流式数据文件后面创建空洞信息帧。
7.一种流式数据读取方法,其特征在于,所述流式数据读取方法包括:
获取流式数据存储文件,并判断所述流式数据存储文件是否正在追加写入,其中,所述流式数据存储文件至少包括一个连续流式数据文件;
若否,则读取所述流式数据存储文件尾部的总索引信息,获取对应的空洞信息帧在所述流式数据存储文件的偏移信息;
基于所述空洞信息帧的偏移信息获取所述连续流式数据文件的总索引信息;
根据所述连续流式数据文件的总索引信息获取所述流式数据存储文件中的所有空洞信息帧。
8.根据权利要求7所述的流式数据读取方法,其特征在于,所述流式数据读取方法还包括:
当所述流式数据存储文件正在追加写入时,读取写入位置对应的索引;
根据所述写入位置对应的索引获取当前连续流式数据文件的空洞信息帧在所述流式数据存储文件的偏移信息;
基于所述当前连续流式数据文件空洞信息帧的偏移信息获取前一个连续流式数据文件的总索引信息,以此获取前一个连续流式数据的空洞信息帧在所述流式数据存储文件的偏移信息,直至获取所述流式数据存储文件中的所有空洞信息帧。
9.根据权利要求8所述的流式数据读取方法,其特征在于,所述索引包括一级索引和二级索引;
所述根据所述写入位置对应的索引获取当前连续流式数据文件的空洞信息帧在所述流式数据存储文件的偏移信息的步骤,包括:
读取所述写入位置对应的二级索引;
当可以基于所述二级索引获取对应的一级索引时,通过所述一级索引查找所述当前连续流式数据文件的空洞信息帧在所述流式数据存储文件的偏移信息;
或者,无法基于所述二级索引获取对应的一级索引时,直接通过所述二级索引查找所述当前连续流式数据文件的空洞信息帧在所述流式数据存储文件的偏移信息。
10.一种流式数据读取设备,其特征在于,所述流式数据读取设备包括:
文件获取模块,用于获取流式数据存储文件;
偏移信息获取模块,用于在所述流式数据存储文件不在追加写入时,读取所述流式数据存储文件尾部的总索引信息,获取对应的空洞信息帧在所述流式数据存储文件的偏移信息,其中,所述流式数据存储文件至少包括一个连续流式数据文件;
索引信息获取模块,用于基于所述空洞信息帧的偏移信息获取所述连续流式数据文件的总索引信息;
文件读取模块,用于根据所述连续流式数据文件的总索引信息获取所述流式数据存储文件中的所有空洞信息帧。
11.一种终端设备,其特征在于,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现权利要求1至5任一项所述的流式数据存储方法或权利要求7至9任一项所述的流式数据读取方法。
12.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行时实现权利要求1至5任一项所述的流式数据存储方法或权利要求7至9任一项所述的流式数据读取方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011126421.0A CN111966632B (zh) | 2020-10-20 | 2020-10-20 | 一种流式数据存储方法、读取方法、设备及可读存储介质 |
PCT/CN2021/125071 WO2022083655A1 (en) | 2020-10-20 | 2021-10-20 | Systems and methods for data storage and retrieval |
EP21882070.2A EP4204980A4 (en) | 2020-10-20 | 2021-10-20 | SYSTEMS AND METHODS FOR DATA STORAGE AND RECOVERY |
US18/190,109 US20230239549A1 (en) | 2020-10-20 | 2023-03-26 | Systems and methods for data storage and retrieval |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011126421.0A CN111966632B (zh) | 2020-10-20 | 2020-10-20 | 一种流式数据存储方法、读取方法、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111966632A CN111966632A (zh) | 2020-11-20 |
CN111966632B true CN111966632B (zh) | 2021-02-19 |
Family
ID=73387665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011126421.0A Active CN111966632B (zh) | 2020-10-20 | 2020-10-20 | 一种流式数据存储方法、读取方法、设备及可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230239549A1 (zh) |
EP (1) | EP4204980A4 (zh) |
CN (1) | CN111966632B (zh) |
WO (1) | WO2022083655A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966632B (zh) * | 2020-10-20 | 2021-02-19 | 浙江大华技术股份有限公司 | 一种流式数据存储方法、读取方法、设备及可读存储介质 |
CN113038248B (zh) * | 2021-03-25 | 2023-03-31 | 浙江大华技术股份有限公司 | 文件处理方法和装置、视频播放方法和装置及电子装置 |
CN114374875B (zh) * | 2021-12-31 | 2024-05-28 | 浙江大华技术股份有限公司 | 一种mp4文件的录制方法、装置及可读存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2223230B1 (en) * | 2007-11-16 | 2019-02-20 | Sonic IP, Inc. | Chunk header incorporating binary flags and correlated variable-length fields |
CN100589562C (zh) * | 2008-01-03 | 2010-02-10 | 中兴通讯股份有限公司 | 一种管理监控录像的方法 |
CN105138525B (zh) * | 2014-05-30 | 2019-10-01 | 株式会社日立制作所 | 交通视频处理装置和方法及检索装置和方法 |
CN104217726A (zh) * | 2014-09-01 | 2014-12-17 | 东莞中山大学研究院 | 一种无损音频压缩编码方法及其解码方法 |
CN104702874B (zh) * | 2015-03-05 | 2018-02-16 | 安徽清新互联信息科技有限公司 | 一种面向视频监控的文件存储方法 |
US9426543B1 (en) * | 2015-12-18 | 2016-08-23 | Vuclip (Singapore) Pte. Ltd. | Server-based video stitching |
CN106657857B (zh) * | 2017-01-16 | 2019-05-24 | 浙江大华技术股份有限公司 | 一种摄像机的录像回放方法、录像方法及其装置 |
CN106874459B (zh) * | 2017-02-14 | 2020-07-10 | 北京奇虎科技有限公司 | 流式数据存储方法及装置 |
EP3711299A1 (en) * | 2017-11-14 | 2020-09-23 | Qualcomm Incorporated | Unified merge candidate list usage |
CN111966632B (zh) * | 2020-10-20 | 2021-02-19 | 浙江大华技术股份有限公司 | 一种流式数据存储方法、读取方法、设备及可读存储介质 |
-
2020
- 2020-10-20 CN CN202011126421.0A patent/CN111966632B/zh active Active
-
2021
- 2021-10-20 EP EP21882070.2A patent/EP4204980A4/en active Pending
- 2021-10-20 WO PCT/CN2021/125071 patent/WO2022083655A1/en unknown
-
2023
- 2023-03-26 US US18/190,109 patent/US20230239549A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022083655A1 (en) | 2022-04-28 |
CN111966632A (zh) | 2020-11-20 |
EP4204980A1 (en) | 2023-07-05 |
US20230239549A1 (en) | 2023-07-27 |
EP4204980A4 (en) | 2024-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966632B (zh) | 一种流式数据存储方法、读取方法、设备及可读存储介质 | |
CN108076317B (zh) | 视频数据存储方法及系统、视频接入方法及节点 | |
WO2018076952A1 (zh) | 一种视频文件的存储、定位播放方法及装置 | |
US20070124679A1 (en) | Video summary service apparatus and method of operating the apparatus | |
US7337297B2 (en) | Method and apparatus for recording data with pseudo-merge | |
US11100956B2 (en) | MP4 file processing method and related device | |
US10313712B2 (en) | Method, device, and server for producing video frame set | |
CN102118539B (zh) | 一种多媒体播放终端及其文件拖动播放方法和装置 | |
US10341710B2 (en) | Program recording method and device, and set top box | |
US11250888B1 (en) | Flash memory and method for storing and retrieving embedded audio video data | |
CN112954244A (zh) | 监控录像的存储实现方法、装置、设备及存储介质 | |
US8868429B2 (en) | Method and device for storing audio data | |
CN104702874B (zh) | 一种面向视频监控的文件存储方法 | |
CN110381128B (zh) | 一种适用于流媒体文件的上传方法和云存储模型 | |
CN101895736B (zh) | 媒体流数据处理方法及其装置 | |
CN107885859A (zh) | 一种文件个数配额的方法、装置和计算机可读存储介质 | |
US20070294324A1 (en) | Techniques to manage media files | |
CN110502540A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20210258230A1 (en) | Systems and methods for pattern-based quality of service (qos) violation prediction | |
CN103761194B (zh) | 一种内存管理方法及装置 | |
WO2014200539A1 (en) | Remultiplexing bitstreams of encoded video for video playback | |
CN114143486A (zh) | 视频流同步方法、装置、计算机设备和存储介质 | |
US20160150270A1 (en) | Storing method and Processing Device Thereof | |
CN113038248B (zh) | 文件处理方法和装置、视频播放方法和装置及电子装置 | |
EP3223478A1 (en) | Packet processing method and device, and storage medium |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |