一種防止磁盤碎片產(chǎn)生的多路音視頻流存儲(chǔ)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及存儲(chǔ)技術(shù)領(lǐng)域,特別設(shè)及一種防止磁盤碎片產(chǎn)生的多路音視頻流存儲(chǔ) 方法。
【背景技術(shù)】
[0002] 傳統(tǒng)的硬盤錄像機(jī)、網(wǎng)絡(luò)硬盤錄像機(jī)需要實(shí)時(shí)音視頻存儲(chǔ)的工作方式:某一路開 始錄像時(shí)創(chuàng)建一個(gè)文件,將該路音視頻流的數(shù)據(jù)填充到該文件中,規(guī)定的時(shí)間到(如5分 鐘),結(jié)束對(duì)該文件的填充,緊接著創(chuàng)建新的文件,繼續(xù)該路音視頻流的數(shù)據(jù)填充到新文件 中,如此循環(huán)。在不斷的新建、刪除、寫入等文件操作后,磁盤就會(huì)產(chǎn)生碎片,影響系統(tǒng)的性 能,也影響磁盤的壽命。
[0003] 中國專利200510050829. 3公開了一種防止文件碎片產(chǎn)生的硬盤錄像機(jī)文件管理 方法,提出一種防止文件碎片產(chǎn)生的硬盤錄像機(jī)文件管理方法,該方法在多路音視頻流的 情況下,使用或覆蓋的過程是按順序在所有的數(shù)據(jù)文件中無差別地選擇使用或覆蓋。因此, 當(dāng)各路音視頻流的數(shù)據(jù)流大小、需存儲(chǔ)的時(shí)間等存儲(chǔ)參數(shù)不同的情況下,無法準(zhǔn)確控制每 一路音視頻數(shù)據(jù)流的總錄像時(shí)間。
[0004] 中國專利201210495293. 6提出一種降低磁盤碎片的方法,在NVR初次使用時(shí)將磁 盤預(yù)先分配好一定數(shù)量的文件,將該些文件信息寫入數(shù)據(jù)庫,在需要錄像時(shí),從數(shù)據(jù)庫中查 詢當(dāng)前可用的文件,然后往該文件寫數(shù)據(jù),通過錄像文件中文件名對(duì)應(yīng)的攝像頭信息的數(shù) 據(jù)庫記錄來保持?jǐn)?shù)據(jù)的完整性與一致性,而不需要修改FAT表中額文件信息,但該方法并 沒有設(shè)及有關(guān)多路音視頻流的存儲(chǔ)及管理的問題。
[0005] 中國專利201310401372. 0公開了一種簡(jiǎn)單防止磁盤碎片產(chǎn)生錄像文件的管理方 法和設(shè)備,在該發(fā)明中,音視頻數(shù)據(jù)每寫入一次便要更新一次相應(yīng)數(shù)據(jù)庫記錄,覆蓋音視頻 文件時(shí)需要進(jìn)行刪除數(shù)據(jù)庫記錄、音視頻文件更名、插入記錄數(shù)據(jù)庫記錄=步操作。因此, 在多路音視頻流的情況下,該發(fā)明頻繁進(jìn)行操作數(shù)據(jù)庫的所需要的時(shí)間則變得不可忽略, 其容易造成在存儲(chǔ)過程中出現(xiàn)本可避免的丟帖,數(shù)據(jù)庫更新延遲或失敗等不可預(yù)測(cè)的情 況。
【發(fā)明內(nèi)容】
[0006] 針對(duì)現(xiàn)有技術(shù)的不足之處,本發(fā)明的所要解決的技術(shù)問題在于提供一種不產(chǎn)生磁 盤碎片、提高音視頻流文件的訪問效率、準(zhǔn)確控制每一路音視頻數(shù)據(jù)流的總錄像時(shí)間的防 止磁盤碎片產(chǎn)生的多路音視頻流存儲(chǔ)方法。
[0007] 為了解決上述技術(shù)問題,本發(fā)明可W通過W下技術(shù)措施實(shí)現(xiàn);一種防止磁盤碎片 產(chǎn)生的多路音視頻,包括W下步驟:
[000引S1、創(chuàng)建用于存儲(chǔ)音視頻流的數(shù)據(jù)文件,進(jìn)一步包括:
[0009] S1-1、格式化硬盤并創(chuàng)建S個(gè)存儲(chǔ)分區(qū);
[0010] S1-2、設(shè)數(shù)據(jù)文件的固定大小為m,第i個(gè)存儲(chǔ)分區(qū)存儲(chǔ)文件個(gè)數(shù)為n;,依次n;個(gè) 創(chuàng)建數(shù)據(jù)文件并在"總文件表"中插入其數(shù)據(jù)庫記錄,其中niXm不得大于該分區(qū)的剩余空 間,i=1,2,…,S;
[0011] "總文件表"包括;"數(shù)據(jù)文件"、"所屬音視頻流"、"分配標(biāo)識(shí)"等至少3項(xiàng)屬性,其 中"分配標(biāo)識(shí)"中的0表示未分配,1表示已分配;
[0012] S2、分配多路音視頻流存儲(chǔ)的數(shù)據(jù)文件;
[0013]S3、啟動(dòng)音視頻存儲(chǔ);
[0014]S4、存儲(chǔ)多路音視頻流;
[0015]S5、判斷是否停止,若否,執(zhí)行步驟S4,若是,執(zhí)行步驟S6;
[0016] S6、停止,結(jié)束。
[0017] 作為本發(fā)明防止磁盤碎片產(chǎn)生的多路音視頻流存儲(chǔ)方法的優(yōu)選實(shí)施方式,所述的 步驟S2,進(jìn)一步包括:
[001引 S2-1、設(shè)有I。12,…,Ip共P路音視頻流,分別設(shè)置其所需存儲(chǔ)空間為R。R2,…,Rp;
[0019] S2-2、按公式(1)計(jì)算li所需數(shù)據(jù)文件個(gè)數(shù)Ki;
[0020]
(1)
[002U其中i=l,2,…,p;
[0022]S2-3、連接數(shù)據(jù)庫的"總文件表",返回未分配的數(shù)據(jù)文件相關(guān)信息,包括未分配的 數(shù)據(jù)文件的個(gè)數(shù)N,未分配的數(shù)據(jù)文件ki,k,,…,kw;
[0023]S2-4、如果公式(2)成立,執(zhí)行步驟S2-5,否則,執(zhí)行步驟S2-1;
[0024]
0)
[002引 S2-5、在未分配數(shù)據(jù)文件ki,k2,…,1%中,分配…&『神,文件為li的數(shù)據(jù) 文件,更新^+1,Az;+a-,在"總文件表"的信息,同時(shí)為li創(chuàng)建"Ii數(shù)據(jù)文件信息表"并 插入A7;+l'A7;+:'…'A^パ,的數(shù)據(jù)庫記錄,其中K。=0,Ti由公式(3)計(jì)算可得,i=l,2,…,p;
[0026]
(對(duì)
[0027] "I激據(jù)文件信息表"包括;"數(shù)據(jù)文件VH己錄開始時(shí)間V'記錄結(jié)束時(shí)間"、"已記 錄大小"、"文件使用標(biāo)識(shí)"、"文件狀態(tài)標(biāo)識(shí)"等至少6項(xiàng)屬性,其中"文件使用標(biāo)識(shí)"中的0 表示未使用、1表示已使用,"文件狀態(tài)標(biāo)識(shí)"中的0表示文件處于打開狀態(tài)、1表示處于文件 關(guān)閉狀態(tài)。
[002引作為本發(fā)明防止磁盤碎片產(chǎn)生的多路音視頻流存儲(chǔ)方法的優(yōu)選實(shí)施方式,所述的 步驟S4,進(jìn)一步包括;對(duì)于任意一路音視頻流If(i= 1, 2,…,P),
[0029]S4-1、連接數(shù)據(jù)庫的"li數(shù)據(jù)文件信息表",返回未使用的記錄開始時(shí)間最早的數(shù) 據(jù)文件,設(shè)為當(dāng)前數(shù)據(jù)文件,更新其數(shù)據(jù)庫信息,其中(i=1,2,…,P);
[0030]S4-2、往當(dāng)前數(shù)據(jù)文件填充或覆蓋音視頻數(shù)據(jù);
[0031]S4-3、判斷當(dāng)前數(shù)據(jù)文件是否寫滿,若是,執(zhí)行步驟S4-4,若否,執(zhí)行步驟S4-8;
[0032]S4-4、更新當(dāng)前數(shù)據(jù)文件的數(shù)據(jù)庫信息;
[0033] S4-5、判斷是否Ki個(gè)數(shù)據(jù)文件都已使用,若否,執(zhí)行步驟S4-6,若是,執(zhí)行步驟 S4-7 ;
[0034] S4-6、連接數(shù)據(jù)庫的"li數(shù)據(jù)文件信息表",返回未使用的記錄開始時(shí)間最早的數(shù) 據(jù)文件,設(shè)為當(dāng)前數(shù)據(jù)文件,更新其數(shù)據(jù)庫記錄,執(zhí)行步驟S4-8;
[0035] S4-7、連接數(shù)據(jù)庫的"li數(shù)據(jù)文件信息表",返回已使用的記錄開始時(shí)間最早的數(shù) 據(jù)文件,設(shè)為當(dāng)前數(shù)據(jù)文件,更新其數(shù)據(jù)庫信息,執(zhí)行步驟S4-8;
[0036] S4-8、判斷是否停止li的音視頻存儲(chǔ),若是,執(zhí)行步驟S-9,若否,執(zhí)行步驟S4-2 ;
[0037]S4-9、更新當(dāng)前數(shù)據(jù)文件的數(shù)據(jù)庫信息,結(jié)束。
[003引實(shí)施本發(fā)明的防止磁盤碎片產(chǎn)生的多路音視頻流存儲(chǔ)方法的技術(shù)方案具有如下 有益效果:
[0039] (1)不產(chǎn)生磁盤碎片,音視頻流存儲(chǔ)效率不會(huì)隨著時(shí)間增加而降低;
[0040] (2)準(zhǔn)確控制每一路音視頻數(shù)據(jù)流的總錄像時(shí)間;
[0041] (3)每路音視頻流數(shù)據(jù)文件占用的磁盤空間是連續(xù)的,提高音視頻流文件的訪問 效率。
[0042] 上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段, 而可依照說明書的內(nèi)容予W實(shí)施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)能夠 更明顯易懂,W下結(jié)合優(yōu)選實(shí)施例,并配合附圖,詳細(xì)說明如下。
【附圖說明】
[0043] 利用附圖對(duì)本發(fā)明作進(jìn)一步說明,但附圖中的實(shí)施例不構(gòu)成對(duì)本發(fā)明的任何限 制。
[0044] 圖1是本發(fā)明的防止磁盤碎片產(chǎn)生的多路音視頻流存儲(chǔ)方法的工作流程圖。
[0045] 圖2是本發(fā)明的分配面向多路音視頻流存儲(chǔ)的數(shù)據(jù)文件的流程圖。
[0046] 圖3是本發(fā)明的存儲(chǔ)多路音視頻流的流程圖。
【具體實(shí)施方式】
[0047] 下面結(jié)合附圖詳細(xì)說明本發(fā)明的【具體實(shí)施方式】,其作為本說明書的一部分,通過 實(shí)施例來說明本發(fā)明的原理,本發(fā)明的其他方面、特征及其優(yōu)點(diǎn)通過該詳細(xì)說明將會(huì)變得 一目了然。在所參照的附圖中,不同的圖中相同或相似的部件使用相同的附圖標(biāo)號(hào)來表示。 為使本發(fā)明更加容易理解,下面將進(jìn)一步闡述本發(fā)明的具體實(shí)施例。
[0048] 如圖1-3所示,本發(fā)明的一種防止磁盤碎片產(chǎn)生的多路音視頻流存儲(chǔ)方法包括W 下步驟:
[0049] 第1步、創(chuàng)建用于存儲(chǔ)音視頻流的數(shù)據(jù)文件。
[0050] 進(jìn)一步,步驟S1包括;
[0化1] S1-1、格式化硬盤并創(chuàng)建S個(gè)存儲(chǔ)分區(qū)。
[0052] S1-2、設(shè)數(shù)據(jù)文件的固定大小為m(W兆字節(jié)為單位),第i個(gè)存儲(chǔ)分區(qū)存儲(chǔ)文件個(gè) 數(shù)為心依次n,個(gè)創(chuàng)建數(shù)據(jù)文件并在"總文件表"中插入其數(shù)據(jù)庫記錄,其中niXm不得大 于該分區(qū)的剩余空間,i=1,2,…,s;
[0化3] 假設(shè),創(chuàng)建2個(gè)500M的存儲(chǔ)分區(qū),數(shù)據(jù)文件的固定大小為100M。第1個(gè)分區(qū)創(chuàng)建 3個(gè)數(shù)據(jù)文件kl、k2、k3,在"總文件表"插入kl、k2、k3的數(shù)據(jù)庫記錄;第2個(gè)分區(qū)創(chuàng)建3 個(gè)數(shù)據(jù)文件,分別k4、k5、k6,在"總文件表"插入k4、k5、k6的數(shù)據(jù)庫記錄。
[0054]"總文件表"包括;"數(shù)據(jù)文件"、"所屬音視頻流"、"分配標(biāo)識(shí)"等至少3項(xiàng)屬性,其 中"分配標(biāo)識(shí)"中的0表示未分配,1表示已分配;
[0化5]其中,W數(shù)據(jù)文件kl為例,在"總文件表"插入的數(shù)據(jù)庫記錄;"數(shù)據(jù)文件"為 "D: \\kl.data","所屬音視頻流"為"0","分配標(biāo)識(shí)"為"0"。
[0056]第2步、分配多路音視頻流存儲(chǔ)的數(shù)據(jù)文件。
[0化7] 所述的步驟S2,進(jìn)一步包括:
[0化引 S2-1、設(shè)有I。12,…,Ip共P路音視頻流,分別設(shè)置其所需存儲(chǔ)空間為R^R2,…,Rp;
[0化9] S2-2、按公式(1)計(jì)算li所需數(shù)據(jù)文件個(gè)數(shù)K1。
[0060] K. =[/?, /"」+ ! U)
[006U其中i=l,2,…,P;
[0062]S2-3、連接數(shù)據(jù)庫的"總文件表",返回未分配的數(shù)據(jù)文件相關(guān)信息,包括未分配的 數(shù)據(jù)文件的個(gè)數(shù)N,未分配的數(shù)據(jù)文件ki,k,,…,kw。
[0063]S2-4、如果公式(2)成立,執(zhí)行步驟S2-5,否則,執(zhí)行步驟S2-1。
[0064]
(2)
[0065]S2-5、在未分配數(shù)據(jù)文件ki,k2,…,1%中,分配' &r,+; '…文件為li的數(shù)據(jù) 文件,更新在"總文件表"的信息,同時(shí)為I御建"Ii數(shù)據(jù)文件信息表"并 插入的數(shù)據(jù)庫記錄,其中K〇= 0,Ti由公式(3)計(jì)算可得,i= 1,2,…,P;
[0066]
(3)
[0067] 數(shù)據(jù)文件信息表"包括;"數(shù)據(jù)文件"、"記錄開始時(shí)間"、"記錄結(jié)束時(shí)