一种防止磁盘碎片产生的多路音视频流存储方法

文档序号:9249925阅读:987来源:国知局
一种防止磁盘碎片产生的多路音视频流存储方法
【技术领域】
[0001] 本发明设及存储技术领域,特别设及一种防止磁盘碎片产生的多路音视频流存储 方法。
【背景技术】
[0002] 传统的硬盘录像机、网络硬盘录像机需要实时音视频存储的工作方式:某一路开 始录像时创建一个文件,将该路音视频流的数据填充到该文件中,规定的时间到(如5分 钟),结束对该文件的填充,紧接着创建新的文件,继续该路音视频流的数据填充到新文件 中,如此循环。在不断的新建、删除、写入等文件操作后,磁盘就会产生碎片,影响系统的性 能,也影响磁盘的寿命。
[0003] 中国专利200510050829. 3公开了一种防止文件碎片产生的硬盘录像机文件管理 方法,提出一种防止文件碎片产生的硬盘录像机文件管理方法,该方法在多路音视频流的 情况下,使用或覆盖的过程是按顺序在所有的数据文件中无差别地选择使用或覆盖。因此, 当各路音视频流的数据流大小、需存储的时间等存储参数不同的情况下,无法准确控制每 一路音视频数据流的总录像时间。
[0004] 中国专利201210495293. 6提出一种降低磁盘碎片的方法,在NVR初次使用时将磁 盘预先分配好一定数量的文件,将该些文件信息写入数据库,在需要录像时,从数据库中查 询当前可用的文件,然后往该文件写数据,通过录像文件中文件名对应的摄像头信息的数 据库记录来保持数据的完整性与一致性,而不需要修改FAT表中额文件信息,但该方法并 没有设及有关多路音视频流的存储及管理的问题。
[0005] 中国专利201310401372. 0公开了一种简单防止磁盘碎片产生录像文件的管理方 法和设备,在该发明中,音视频数据每写入一次便要更新一次相应数据库记录,覆盖音视频 文件时需要进行删除数据库记录、音视频文件更名、插入记录数据库记录=步操作。因此, 在多路音视频流的情况下,该发明频繁进行操作数据库的所需要的时间则变得不可忽略, 其容易造成在存储过程中出现本可避免的丢帖,数据库更新延迟或失败等不可预测的情 况。

【发明内容】

[0006] 针对现有技术的不足之处,本发明的所要解决的技术问题在于提供一种不产生磁 盘碎片、提高音视频流文件的访问效率、准确控制每一路音视频数据流的总录像时间的防 止磁盘碎片产生的多路音视频流存储方法。
[0007] 为了解决上述技术问题,本发明可W通过W下技术措施实现;一种防止磁盘碎片 产生的多路音视频,包括W下步骤:
[000引S1、创建用于存储音视频流的数据文件,进一步包括:
[0009] S1-1、格式化硬盘并创建S个存储分区;
[0010] S1-2、设数据文件的固定大小为m,第i个存储分区存储文件个数为n;,依次n;个 创建数据文件并在"总文件表"中插入其数据库记录,其中niXm不得大于该分区的剩余空 间,i=1,2,…,S;
[0011] "总文件表"包括;"数据文件"、"所属音视频流"、"分配标识"等至少3项属性,其 中"分配标识"中的0表示未分配,1表示已分配;
[0012] S2、分配多路音视频流存储的数据文件;
[0013]S3、启动音视频存储;
[0014]S4、存储多路音视频流;
[0015]S5、判断是否停止,若否,执行步骤S4,若是,执行步骤S6;
[0016] S6、停止,结束。
[0017] 作为本发明防止磁盘碎片产生的多路音视频流存储方法的优选实施方式,所述的 步骤S2,进一步包括:
[001引 S2-1、设有I。12,…,Ip共P路音视频流,分别设置其所需存储空间为R。R2,…,Rp;
[0019] S2-2、按公式(1)计算li所需数据文件个数Ki;
[0020]
(1)
[002U其中i=l,2,…,p;
[0022]S2-3、连接数据库的"总文件表",返回未分配的数据文件相关信息,包括未分配的 数据文件的个数N,未分配的数据文件ki,k,,…,kw;
[0023]S2-4、如果公式(2)成立,执行步骤S2-5,否则,执行步骤S2-1;
[0024]
0)
[002引 S2-5、在未分配数据文件ki,k2,…,1%中,分配…&『神,文件为li的数据 文件,更新^+1,Az;+a-,在"总文件表"的信息,同时为li创建"Ii数据文件信息表"并 插入A7;+l'A7;+:'…'A^パ,的数据库记录,其中K。=0,Ti由公式(3)计算可得,i=l,2,…,p;
[0026]
(对
[0027] "I激据文件信息表"包括;"数据文件VH己录开始时间V'记录结束时间"、"已记 录大小"、"文件使用标识"、"文件状态标识"等至少6项属性,其中"文件使用标识"中的0 表示未使用、1表示已使用,"文件状态标识"中的0表示文件处于打开状态、1表示处于文件 关闭状态。
[002引作为本发明防止磁盘碎片产生的多路音视频流存储方法的优选实施方式,所述的 步骤S4,进一步包括;对于任意一路音视频流If(i= 1, 2,…,P),
[0029]S4-1、连接数据库的"li数据文件信息表",返回未使用的记录开始时间最早的数 据文件,设为当前数据文件,更新其数据库信息,其中(i=1,2,…,P);
[0030]S4-2、往当前数据文件填充或覆盖音视频数据;
[0031]S4-3、判断当前数据文件是否写满,若是,执行步骤S4-4,若否,执行步骤S4-8;
[0032]S4-4、更新当前数据文件的数据库信息;
[0033] S4-5、判断是否Ki个数据文件都已使用,若否,执行步骤S4-6,若是,执行步骤 S4-7 ;
[0034] S4-6、连接数据库的"li数据文件信息表",返回未使用的记录开始时间最早的数 据文件,设为当前数据文件,更新其数据库记录,执行步骤S4-8;
[0035] S4-7、连接数据库的"li数据文件信息表",返回已使用的记录开始时间最早的数 据文件,设为当前数据文件,更新其数据库信息,执行步骤S4-8;
[0036] S4-8、判断是否停止li的音视频存储,若是,执行步骤S-9,若否,执行步骤S4-2 ;
[0037]S4-9、更新当前数据文件的数据库信息,结束。
[003引实施本发明的防止磁盘碎片产生的多路音视频流存储方法的技术方案具有如下 有益效果:
[0039] (1)不产生磁盘碎片,音视频流存储效率不会随着时间增加而降低;
[0040] (2)准确控制每一路音视频数据流的总录像时间;
[0041] (3)每路音视频流数据文件占用的磁盘空间是连续的,提高音视频流文件的访问 效率。
[0042] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予W实施,并且为了让本发明的上述和其他目的、特征和优点能够 更明显易懂,W下结合优选实施例,并配合附图,详细说明如下。
【附图说明】
[0043] 利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限 制。
[0044] 图1是本发明的防止磁盘碎片产生的多路音视频流存储方法的工作流程图。
[0045] 图2是本发明的分配面向多路音视频流存储的数据文件的流程图。
[0046] 图3是本发明的存储多路音视频流的流程图。
【具体实施方式】
[0047] 下面结合附图详细说明本发明的【具体实施方式】,其作为本说明书的一部分,通过 实施例来说明本发明的原理,本发明的其他方面、特征及其优点通过该详细说明将会变得 一目了然。在所参照的附图中,不同的图中相同或相似的部件使用相同的附图标号来表示。 为使本发明更加容易理解,下面将进一步阐述本发明的具体实施例。
[0048] 如图1-3所示,本发明的一种防止磁盘碎片产生的多路音视频流存储方法包括W 下步骤:
[0049] 第1步、创建用于存储音视频流的数据文件。
[0050] 进一步,步骤S1包括;
[0化1] S1-1、格式化硬盘并创建S个存储分区。
[0052] S1-2、设数据文件的固定大小为m(W兆字节为单位),第i个存储分区存储文件个 数为心依次n,个创建数据文件并在"总文件表"中插入其数据库记录,其中niXm不得大 于该分区的剩余空间,i=1,2,…,s;
[0化3] 假设,创建2个500M的存储分区,数据文件的固定大小为100M。第1个分区创建 3个数据文件kl、k2、k3,在"总文件表"插入kl、k2、k3的数据库记录;第2个分区创建3 个数据文件,分别k4、k5、k6,在"总文件表"插入k4、k5、k6的数据库记录。
[0054]"总文件表"包括;"数据文件"、"所属音视频流"、"分配标识"等至少3项属性,其 中"分配标识"中的0表示未分配,1表示已分配;
[0化5]其中,W数据文件kl为例,在"总文件表"插入的数据库记录;"数据文件"为 "D: \\kl.data","所属音视频流"为"0","分配标识"为"0"。
[0056]第2步、分配多路音视频流存储的数据文件。
[0化7] 所述的步骤S2,进一步包括:
[0化引 S2-1、设有I。12,…,Ip共P路音视频流,分别设置其所需存储空间为R^R2,…,Rp;
[0化9] S2-2、按公式(1)计算li所需数据文件个数K1。
[0060] K. =[/?, /"」+ ! U)
[006U其中i=l,2,…,P;
[0062]S2-3、连接数据库的"总文件表",返回未分配的数据文件相关信息,包括未分配的 数据文件的个数N,未分配的数据文件ki,k,,…,kw。
[0063]S2-4、如果公式(2)成立,执行步骤S2-5,否则,执行步骤S2-1。
[0064]
(2)
[0065]S2-5、在未分配数据文件ki,k2,…,1%中,分配' &r,+; '…文件为li的数据 文件,更新在"总文件表"的信息,同时为I御建"Ii数据文件信息表"并 插入的数据库记录,其中K〇= 0,Ti由公式(3)计算可得,i= 1,2,…,P;
[0066]
(3)
[0067] 数据文件信息表"包括;"数据文件"、"记录开始时间"、"记录结束时
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1