一種監控錄像異常的保護方法
【專利摘要】本發明涉及視頻編輯技術領域,具體的說是一種監控錄像異常的保護方法。本發明方法針對異常發生時錄像文件由于缺少索引信息而無法播放的問題,在文件開始位置預留索引信息空間,在錄像過程中周期性的向預留的索引信息空間更新錄像文件的索引信息,只要錄像文件中包含任意一次寫入的索引信息,改錄像文件就可以播放。另外,本發明方法通過系統同步sync方法與設置pdflush參數結合的方式解決Linux緩沖機制引起的異常發生時數據丟失問題,在盡量少丟失數據的同時不會使得IO占用過多cpu資源。
【專利說明】
-種監控錄像異常的保護方法
技術領域
[0001] 本發明設及視頻編輯技術領域,具體的說是一種監控錄像異常的保護方法。
【背景技術】
[0002] 監控錄像過程通常需要將音視頻數據編碼后,寫入本地媒體文件,本地媒體文件 多采用MP4或者3GP格式。MP4或者3GP格式一般會在音視頻流數據寫入完成后即錄像結束時 生成索引信息并寫入文件末尾位置,如果缺少索引信息會導致無法播放,所W在錄像過程 中如果有異常情況發生,例如異常斷電,存儲設備斷開連接等情況時,錄像文件就會損壞無 法播放。
[0003] 針對異常情況,還有一個問題需要解決,目前監控錄像設備多基于Linux系統開 發,Linux系統中會啟用緩沖頁機制:在應用層向文件寫入數據時,寫入的數據不會立即寫 到存儲設備硬件中,而是寫到內存緩沖區中,由Linux內核選擇合適的時機將內存緩沖區的 內容同步到存儲設備硬件中,那么在錄像過程中,媒體數據或者索引信息可能只是寫到了 內存緩沖區中,而沒有寫到存儲設備硬件中,此時異常情況發生時,會造成數據丟失。
【發明內容】
[0004] 本發明的目的是為了克服上述現有技術的不足之處,提供一種監控錄像異常的保 護方法,用W解決監控錄像過程中發生異常情況導致視頻無法播放W及數據丟失的問題, 在監控錄像設備發生異常時,使用本方法錄像文件可W直接觀看到異常發生前的畫面。
[0005] 本發明的目的是通過W下技術措施實現的。
[0006] -種監控錄像異常的保護方法,包括W下步驟: (1) 接收到開始錄像指令,創建一個空錄像文件,向該錄像文件中寫入頭信息ftyp box; (2) 在錄像文件緊跟ftyp box后預留索引信息塊moov box,根據估算的索引信息塊的 大小,預留moov box大小,供后續更新索引信息使用,錄像文件索引信息moov box之后的部 分作為媒體數據塊mdat box; (3 )開始通過攝像頭獲取音視頻媒體數據,將媒體數據分組打包,此處將間隔時間ΤΙ內 的數據作為一組進行打包,Τ1的取值范圍為lOOms-lOs; (4)將上述打包的媒體數據寫入錄像文件的媒體數據塊mdat box; 巧)生成索引信息內容,將索引信息內容寫入到錄像文件的索引信息塊moov box,并更 新媒體數據塊mdat box的大小值;每隔時間T2,更新一次索引信息塊moov box,T2的取值范 圍為 100ms-30s; (6)判斷當前錄像時長,如果小于2秒,調用系統同步sync函數來保證頭信息ftyp box、 索引信息塊moov box、媒體數據塊mdat box寫入到存儲設備硬件;如果大于2秒,檢查并設 置pdf lush 的參數,設置pdf lush 中 dirty_expire_centi secs和dirty_wri teback_ centisecs的值,取值范圍為50-3000; (7)重復執行步驟(3)到步驟(6),直至錄像完成。
[0007] 在上述技術方案中,步驟巧)中T2的取值等于T1。
[000引在上述技術方案中,步驟(6)中di;rty_expire_centisecs的取值為150,di;rty_ w;riteback_centisecs 的取值為 100。
[0009]在上述技術方案中,使用本方法生成的MP4文件的結構依次為: 文件頭信息ftyp box; 文件索引信息塊moov box,緊跟文件頭信息ftyp之后; 文件空閑區域free box,為索引信息預留的區域不會全部使用完,未使用的區域作為 free box; 文件媒體數據塊mdat box。
[0010]在上述技術方案中,提到的索引倍島塊moov box內容如下表所示。
[ΟΟ?] 索引信息塊moov box內容
本發明提供了一種監控錄像異常的保護方法,針對異常發生時錄像文件由于缺少索引 信息而無法播放的問題,在文件開始位置預留索引信息空間,在錄像過程中周期性的向預 留的索引信息空間更新錄像文件的索引信息,只要錄像文件中包含任意一次寫入的索引信 息,改錄像文件就可W播放。另外,本方法通過系統同步sync方法與設置pdflush參數結合 的方式解決Linux緩沖機制引起的異常發生時數據丟失問題,在盡量少丟失數據的同時不 會使得10占用過多CPU資源。使用本方法后,在錄像過程中10占用CPU資源沒有明顯升高,而 且發生異常情況(例如斷電,TF卡拔出)時,存儲設備中的錄像文件可W直接播放,而且可W 播放到異常情況發生前1秒左右。
【附圖說明】
[0012] 圖1是本發明方法實施例的流程圖。
【具體實施方式】
[0013] 下面結合附圖對本發明作進一步詳細描述。
[0014] 如圖1所示,本發明實施例提供一種監控錄像異常的保護方法,包括W下步驟: (1) 接收到開始錄像指令,創建一個空錄像文件,向該錄像文件中寫入頭信息ftyp box; (2) 在錄像文件緊跟ftyp box后預留索引信息塊moov box,根據估算的索引信息塊的 大小,預留moov box大小,供后續更新索引信息使用,錄像文件索引信息moov box之后的部 分作為媒體數據塊mdat box; (3 )開始通過攝像頭獲取音視頻媒體數據,將媒體數據分組打包,此處按300ms數據作 為一組進行打包; (4)將上述打包的媒體數據寫入錄像文件的媒體數據塊mdat box; 巧)生成索引信息內容,將索引信息內容寫入到錄像文件的索引信息塊moov box,并更 新媒體數據塊mdat box的大小值;由于步驟(3)中媒體數據按300ms進行打包,那么此處為 每300ms執行一次,即每300ms更新索引信息塊moov box; (6) 判斷當前錄像時長,如果小于2秒,調用系統同步sync函數來保證頭信息ftyp box、 索引信息塊moov box、媒體數據塊mdat box寫入到存儲設備硬件;如果大于2秒,檢查并設 置pdf lush 的參數,設置pdf lush 中 dirty_expire_centi secs和dirty_wri teback_ centisecs的值分別為150和100; (7) 重復執行步驟(3)到步驟(6),直至錄像完成。
[0015] 在上述實施例中,步驟(6)為可選步驟,即為非必要步驟。
[0016] 在上述實施例中,使用本方法生成的MP4文件的結構依次為: 文件頭信息ftyp box; 文件索引信息塊moov box,緊跟文件頭信息ftyp之后; 文件空閑區域free box,為索引信息預留的區域不會全部使用完,未使用的區域作為 free box; 文件媒體數據塊mdat box。
[0017] 在上述實施例中,提到的索引信息塊moov box內容如下表所示。
[0〇1引索引信息塊moov box內容
本說明書中未作詳細描述的內容,屬于本專業技術人員公知的現有技術。
【主權項】
1. 一種監控錄像異常的保護方法,其特征在于該方法包括以下步驟: (1) 接收到開始錄像指令,倉ll建一個空錄像文件,向該錄像文件中寫入頭信息ftyp box; (2) 在錄像文件緊跟ftyp box后預留索引信息塊moov box,根據估算的索引信息塊的 大小,預留moov box大小,供后續更新索引信息使用,錄像文件索引信息moov box之后的部 分作為媒體數據塊mdat box; (3) 開始通過攝像頭獲取音視頻媒體數據,將媒體數據分組打包,此處將間隔時間T1內 的數據作為一組進行打包,Τ1的取值范圍為100ms-10s ; (4) 將上述打包的媒體數據寫入錄像文件的媒體數據塊mdat box; (5) 生成索引信息內容,將索引信息內容寫入到錄像文件的索引信息塊moov box,并更 新媒體數據塊mdat box的大小值;每隔時間T2,更新一次索引信息塊moov box,T2的取值范 圍為 100ms_30s; (6) 判斷當前錄像時長,如果小于2秒,調用系統同步sync函數來保證頭信息ftyp box、 索引信息塊moov box、媒體數據塊mdat box寫入到存儲設備硬件;如果大于2秒,檢查并設 置卩(^111811的參數,設置卩(1;1^111811中(1;[1^_6叉卩;^6_06111:18608和(1;[1^_'\¥1';[七6匕&〇1<_ centisecs的值,取值范圍為50-3000; (7) 重復執行步驟(3)到步驟(6),直至錄像完成。2. 根據權利要求1所述的監控錄像異常的保護方法,其特征是:步驟(5)中T2的取值等 于T1。3. 根據權利要求1所述的監控錄像異常的保護方法,其特征是:步驟(6)中dirty_4. 根據權利要求1所述的監控錄像異常的保護方法,其特征是該方法生成的MP4文件的 結構依次為: 文件頭信息ftyp box; 文件索引信息塊moov box,緊跟文件頭信息ftyp之后; 文件空閑區域free box,為索引信息預留的區域不會全部使用完,未使用的區域作為 free box; 文件媒體數據塊mdat box。
【文檔編號】G06F17/30GK105872484SQ201610386218
【公開日】2016年8月17日
【申請日】2016年6月4日
【發明人】劉汝帥, 何川
【申請人】武漢誠邁科技有限公司