本發明涉及計算機領域,特別涉及一種錄像數據保護方法和裝置。
背景技術:
::隨著智能設備的普及以及快速更新換代,用戶對設備錄制視頻也提出了更高的要求,其中,對分辨率的要求就是重要一項。高清分辨率帶來的問題就是導致錄像文件的碼率相當大,容易出現外置存儲設備被寫滿的情況。當外置存儲設備被寫滿時,如果沒有提示信息,往往會導致最后錄制的視頻文件不能正常保存,將產生不良后果。例如所錄制的是安全相關的視頻,如小區監控等,某一時間點的錄制文件消失無疑會帶來安全隱患。再比如錄制游戲相關的視頻,如果在錄制過程出錯導致之前所錄制的游戲視頻無法重放,將嚴重影響用戶的感官體驗。針對上述情況,目前有一種做法是通過采用循環刪除的方法加以解決,即在外置存儲設備被寫滿時,清空外置存儲設備已錄制好的視頻文件,使得視頻文件可以繼續錄制。但這個功能要求用戶事先加以設置,如果用戶沒有設置循環刪除功能時就會出現視頻文件被破壞而無法正常打開的情況。還有一種做法是預先判斷外置存儲設備的容量大小,進而對錄制視頻文件的大小加以限制。由于獲取SD容量大小的時候是在開始錄像之前,要是錄像過程中,用戶有下載或者接收文件,也會出現還沒有達到視頻文件大小就出現存儲設備被寫滿的情況。技術實現要素:為此,需要提供一種錄像數據保護的技術方案,用以解決現有設備在錄制錄像數據時由于存儲設備被寫滿時沒有很好的應對措施,導致錄像文件出錯、無法正常保存、影響用戶體驗、存在安全隱患等問題。發明人提供了一種錄像數據保護裝置,所述裝置包括寫入指令發送單元、存儲單元、檢測單元、寫入單元、處理單元;所述寫入指令發送單元用于對存儲單元發起寫操作指令;所述檢測單元用于檢測當前存儲單元的剩余容量是否大于寫操作指令對應的錄像數據的大小,若是則寫入單元向存儲單元中寫入該寫操作指令對應的錄像數據;否則寫入單元不將該寫操作指令對應的錄像數據寫入存儲單元;所述處理單元用于根據當前存儲單元中已寫入的錄像數據對應的頭文件信息大小,逐一刪除上一次寫入操作所寫入的錄像數據,直至存儲單元所剩余的容量大于頭文件信息大小,而后將頭文件信息寫入存儲單元中。進一步地,所述裝置還包括緩存單元,所述緩存單元用于緩存錄像數據,所述寫入指令發送單元用于在緩存單元存儲已滿時對存儲單元發起寫操作指令,所述檢測單元用于檢測當前存儲單元的剩余容量是否大于緩存單元中所緩存的錄像數據大小。進一步地,所述錄像數據包括音頻數據和視頻數據,所述音頻數據和視頻數據是以基本塊的形式寫入存儲單元中。進一步地,所述裝置還包括狀態設置單元,所述狀態設置單元用于在檢測單元檢測到存儲單元的剩余容量小于寫操作指令對應的錄像數據的大小時,將當前存儲單元的存儲狀態設置為已滿狀態。進一步地,所述頭文件信息包括stsctable、stcotable、stsstable。進一步地,所述處理單元還用于在存儲單元所剩余的容量大于頭文件信息大小后,根據當前存儲單元中的錄像數據更新頭文件信息,并將更新后的頭文件信息寫入存儲單元中。發明人還提供了一種錄像數據保護方法,所述方法應用于錄像數據保護裝置,所述裝置包括寫入指令發送單元、存儲單元、檢測單元、寫入單元、處理單元;所述方法包括以下步驟:寫入指令發送單元對存儲單元發起寫操作指令;檢測單元檢測當前存儲單元的剩余容量是否大于寫操作指令對應的錄像數據的大小,若是則寫入單元向存儲單元中寫入該寫操作指令對應的錄像數據;否則寫入單元不將該寫操作指令對應的錄像數據寫入存儲單元,處理單元根據當前存儲單元中已寫入的錄像數據對應的頭文件信息大小,逐一刪除上一次寫入操作所寫入的錄像數據,直至存儲單元所剩余的容量大于頭文件信息大小,而后將頭文件信息寫入存儲單元中。進一步地,所述裝置還包括緩存單元,所述方法包括:緩存單元緩存錄像數據;寫入指令發送單元在緩存單元存儲已滿時對存儲單元發起寫操作指令,檢測單元檢測當前存儲單元的剩余容量是否大于緩存單元中所緩存的錄像數據大小。進一步地,所述錄像數據包括音頻數據和視頻數據,所述音頻數據和視頻數據是以基本塊的形式寫入存儲單元中。進一步地,所述裝置還包括狀態設置單元,所述方法包括:狀態設置單元在檢測單元檢測到存儲單元的剩余容量小于寫操作指令對應的錄像數據的大小時,將當前存儲單元的存儲狀態設置為已滿狀態。進一步地,所述頭文件信息包括stsctable、stcotable、stsstable。進一步地,所述方法包括:處理單元在存儲單元所剩余的容量大于頭文件信息大小后,根據當前存儲單元中的錄像數據更新頭文件信息,并將更新后的頭文件信息寫入存儲單元中。上述技術方案所述的錄像數據保護方法和裝置,所述裝置包括寫入指令發送單元、存儲單元、檢測單元、寫入單元、處理單元;所述方法包括以下步驟:首先寫入指令發送單元對存儲單元發起寫操作指令;而后檢測單元檢測當前存儲單元的剩余容量是否大于寫操作指令對應的錄像數據的大小,若是則寫入單元向存儲單元中寫入該寫操作指令對應的錄像數據;否則寫入單元不將該寫操作指令對應的錄像數據寫入存儲單元,處理單元根據當前存儲單元中已寫入的錄像數據對應的頭文件信息大小,逐一刪除上一次寫入操作所寫入的錄像數據,直至存儲單元所剩余的容量大于頭文件信息大小,而后將頭文件信息寫入存儲單元中。當存儲單元中的剩余容量不足而此時應用依然正在錄制時,所述裝置首先停止應用繼續錄制,而后根據當前已經錄制好的錄像數據確定需要寫入的頭文件信息大小,并刪除最新寫入的一部分錄像數據,使得存儲單元剩余空間足夠寫入頭文件信息,而后將頭文件信息寫入存儲單元中,使得寫入錄像數據整體形成一個完整的可運行的文件,從而使得錄像文件可以正常保存,提高了用戶體驗。附圖說明圖1為本發明一實施方式涉及的錄像數據保護裝置的示意圖;圖2為本發明一實施方式涉及的錄像數據保護方法的流程圖;附圖標記說明:101、寫入指令發送單元;102、存儲單元;103、檢測單元;104、寫入單元;105、處理單元;106、緩存單元;107、狀態設置單元。具體實施方式為詳細說明技術方案的技術內容、構造特征、所實現目的及效果,以下結合具體實施例并配合附圖詳予說明。請參閱圖1,為本發明一實施方式涉及的錄像數據保護裝置的示意圖。所述裝置包括寫入指令發送單元101、存儲單元102、檢測單元103、寫入單元104、處理單元105;所述寫入指令發送單元101用于對存儲單元發起寫操作指令;所述檢測單元103用于檢測當前存儲單元的剩余容量是否大于寫操作指令對應的錄像數據的大小,若是則寫入單元104向存儲單元中寫入該寫操作指令對應的錄像數據;否則寫入單元104不將該寫操作指令對應的錄像數據寫入存儲單元,所述處理單元105用于根據當前存儲單元中已寫入的錄像數據對應的頭文件信息大小,逐一刪除上一次寫入操作所寫入的錄像數據,直至存儲單元所剩余的容量大于頭文件信息大小,而后將頭文件信息寫入存儲單元中。在使用錄像數據保護裝置時,首先寫入指令發送單元101對存儲單元發起寫操作指令。視頻錄制過程本質上就是向存儲單元中寫入錄像數據的過程,寫入指令發送單元可以通過上層應用實現,寫操作指令即向存儲單元中寫入錄像數據的指令。優選的,在本實施方式中,所述裝置還包括緩存單元106,所述緩存單元106用于緩存錄像數據,所述寫入指令發送單元101用于在緩存單元存儲已滿時對存儲單元發起寫操作指令。通過設置緩存單元,可以有效減少往存儲單元中寫入錄像數據的次數,進而節省功耗。而后檢測單元103檢測當前存儲單元的剩余容量是否大于寫操作指令對應的錄像數據的大小。優選的,在本實施方式中,所述檢測單元用于檢測當前存儲單元的剩余容量是否大于緩存單元中所緩存的錄像數據大小。若是則寫入單元104向存儲單元中寫入該寫操作指令對應的錄像數據;否則寫入單元104不將該寫操作指令對應的錄像數據寫入存儲單元。如果檢測單元所檢測到當前存儲單元的剩余容量大小大于緩存單元中所緩存的錄像數據大小,說明存儲單元的剩余空間充足,可以繼續錄制,往存儲單元中寫入錄像數據。反之,如果檢測單元所檢測到當前存儲單元的剩余容量大小小于緩存單元中所緩存的錄像數據大小,說明存儲單元的剩余空間不足,錄制將終止,即不往存儲單元中寫入錄像數據數據。同時需要對存儲單元的數據進行一定的修復處理,以保證存儲單元所存儲的是一個完整的視頻文件,即需要將頭文件信息寫入到存儲單元中。在本實施方式中。所述錄像數據包括音頻數據和視頻數據,所述音頻數據和視頻數據是以基本塊(chunk)的形式寫入存儲單元中。優選的,所述視頻文件的格式為.mp4文件,所述頭文件信息包括stsctable、stcotable、stsstable。stsc(Sample-To-ChunkAtom),為了優化數據訪問,通常把sample封裝到chunk中,一個chunk可能會包含一個或者幾個sample;Stco(ChunkOffsetAtom),指定了每個chunk在文件中的位置;stss(SyncSampleAtom),標識了媒體流中的關鍵幀,提供了隨機訪問點標記。一個錄制文件只有在寫入了頭信息,即stsctable、stcotable、stsstable后才是一個完整可運行的文件,但是由于當前存儲單元已經被寫滿,因而需要對存儲單元中的錄像數據進行一定的修復處理,將頭文件信息寫入到存儲單元中,以保證錄制數據不丟失且可以正常運行。而后處理單元根據當前存儲單元中已寫入的錄像數據對應的頭文件信息大小,逐一刪除上一次寫入操作所寫入的錄像數據,直至存儲單元所剩余的容量大于頭文件信息大小,而后將頭文件信息寫入存儲單元中。由于頭文件信息是由幾張鏈表組成,其相較于錄像數據而已所占的空間往往較小,即存儲單元中寫入或者刪除某個基本塊數據時,頭文件信息的大小往往變化不大,因而當存儲單元寫滿時,可以先預估需要寫入的頭文件信息大小。為了將頭文件信息寫入到存儲單元中,需要先刪除一些存儲單元中的錄像數據,優選的,可以以基本塊的形式逐一從最新一次寫入的錄像數據開始進行刪除,以保證錄像數據的連貫性。每刪除一個基本塊,將存儲單元剩余的空間與需要寫入的頭文件信息進行比較,如果剩余空間足夠即可停止刪除錄像數據并將頭文件信息寫入到存儲單元中。如果剩余空間不足,則繼續以塊的形式刪除上一寫入的基本塊,直至存儲單元所剩余的容量大于頭文件信息大小。為了減少計算量,可以事先將存儲單元中每個基本塊的大小記錄在鏈表中,并將該鏈表存儲于緩存單元中,這樣只需讀取緩存單元中最新寫入的基本塊的大小,進而跟頭文件信息大小進行比較,如果比頭文件信息來得小,說明需要繼續刪除基本塊,而后將當前基本塊的大小與上一個寫入存儲單元中的基本塊的大小進行累加,再次與頭文件信息大小進行比較,以此類推,直至累加的基本塊大小超過頭文件信息大小為止,而后刪除存儲單元中對應的參加累加計算大小的基本塊即可。在本實施方式中,所述裝置還包括狀態設置單元107,所述狀態設置單元107用于在檢測單元檢測到存儲單元的剩余容量小于寫操作指令對應的錄像數據的大小時,將當前存儲單元的存儲狀態設置為已滿狀態。當存儲狀態為已滿狀態時,為了避免上層應用繼續錄像由于無法寫入而發生錯誤,會發出提示信號至上層應用,上層應用接收提示信號后停止錄像。在本實施方式中,所述處理單元還用于在存儲單元所剩余的容量大于頭文件信息大小后,根據當前存儲單元中的錄像數據更新頭文件信息,并將更新后的頭文件信息寫入存儲單元中。由于頭文件信息所記錄的存儲單元中所存儲的各個基本塊(錄像數據以基本塊形式進行存儲)對應的各個標識信息。當存儲單元中所存儲的錄像數據發生變化時,頭文件信息也會相應變化。例如為了寫入頭文件信息,刪除了最新寫入到存儲單元的基本塊,因而需要對頭文件信息進行一定的處理,即刪除頭文件信息中這幾個基本塊(被刪除了的基本塊)的信息,而后再將處理后的頭文件信息寫入到存儲單元中。如圖2所示,為本發明一實施方式涉及的錄像數據保護方法的流程圖。所示方法包括以下步驟:首先進入步驟S201寫入指令發送單元對存儲單元發起寫操作指令。視頻錄制過程本質上就是向存儲單元中寫入錄像數據的過程,寫入指令發送單元可以通過上層應用實現,寫操作指令即向存儲單元中寫入錄像數據的指令。優選的,在本實施方式中,所述裝置還包括緩存單元106,所述緩存單元106用于緩存錄像數據,所述寫入指令發送單元101用于在緩存單元存儲已滿時對存儲單元發起寫操作指令。通過設置緩存單元,可以有效減少往存儲單元中寫入錄像數據的次數,進而節省功耗。而后進入步驟S202檢測單元檢測當前存儲單元的剩余容量是否大于寫操作指令對應的錄像數據的大小。優選的,在本實施方式中,所述檢測單元用于檢測當前存儲單元的剩余容量是否大于緩存單元中所緩存的錄像數據大小。若是則進入步驟S203寫入單元向存儲單元中寫入該寫操作指令對應的錄像數據;否則進入步驟S204寫入單元不將該寫操作指令對應的錄像數據寫入存儲單元。如果檢測單元所檢測到當前存儲單元的剩余容量大小大于緩存單元中所緩存的錄像數據大小,說明存儲單元的剩余空間充足,可以繼續錄制,往存儲單元中寫入錄像數據。反之,如果檢測單元所檢測到當前存儲單元的剩余容量大小小于緩存單元中所緩存的錄像數據大小,說明存儲單元的剩余空間不足,錄制將終止,即不往存儲單元中寫入錄像數據數據。同時需要對存儲單元的數據進行一定的修復處理,以保證存儲單元所存儲的是一個完整的視頻文件,即需要將頭文件信息寫入到存儲單元中。在本實施方式中。所述錄像數據包括音頻數據和視頻數據,所述音頻數據和視頻數據是以基本塊(chunk)的形式寫入存儲單元中。優選的,所述視頻文件的格式為.mp4文件,所述頭文件信息包括stsctable、stcotable、stsstable。stsc(Sample-To-ChunkAtom),為了優化數據訪問,通常把sample封裝到chunk中,一個chunk可能會包含一個或者幾個sample;Stco(ChunkOffsetAtom),指定了每個chunk在文件中的位置;stss(SyncSampleAtom),標識了媒體流中的關鍵幀,提供了隨機訪問點標記。一個錄制文件只有在寫入了頭信息,即stsctable、stcotable、stsstable后才是一個完整可運行的文件,但是由于當前存儲單元已經被寫滿,因而需要對存儲單元中的錄像數據進行一定的修復處理,將頭文件信息寫入到存儲單元中,以保證錄制數據不丟失且可以正常運行。步驟S204后進入步驟S205處理單元根據當前存儲單元中已寫入的錄像數據對應的頭文件信息大小,逐一刪除上一次寫入操作所寫入的錄像數據,直至存儲單元所剩余的容量大于頭文件信息大小,而后將頭文件信息寫入存儲單元中。由于頭文件信息是由幾張鏈表組成,其相較于錄像數據而已所占的空間往往較小,即存儲單元中寫入或者刪除某個基本塊數據時,頭文件信息的大小往往變化不大,因而當存儲單元寫滿時,可以先預估需要寫入的頭文件信息大小。為了將頭文件信息寫入到存儲單元中,需要先刪除一些存儲單元中的錄像數據,優選的,可以以基本塊的形式逐一從最新一次寫入的錄像數據開始進行刪除,以保證錄像數據的連貫性。每刪除一個基本塊,將存儲單元剩余的空間與需要寫入的頭文件信息進行比較,如果剩余空間足夠即可停止刪除錄像數據并將頭文件信息寫入到存儲單元中。如果剩余空間不足,則繼續以塊的形式刪除上一寫入的基本塊,直至存儲單元所剩余的容量大于頭文件信息大小。為了減少計算量,可以事先將存儲單元中每個基本塊的大小記錄在鏈表中,并將該鏈表存儲于緩存單元中,這樣只需讀取緩存單元中最新寫入的基本塊的大小,進而跟頭文件信息大小進行比較,如果比頭文件信息來得小,說明需要繼續刪除基本塊,而后將當前基本塊的大小與上一個寫入存儲單元中的基本塊的大小進行累加,再次與頭文件信息大小進行比較,以此類推,直至累加的基本塊大小超過頭文件信息大小為止,而后刪除存儲單元中對應的參加累加計算大小的基本塊即可。在本實施方式中,所述裝置還包括狀態設置單元,所述方法包括:狀態設置單元在檢測單元檢測到存儲單元的剩余容量小于寫操作指令對應的錄像數據的大小時,將當前存儲單元的存儲狀態設置為已滿狀態。當存儲狀態為已滿狀態時,為了避免上層應用繼續錄像由于無法寫入而發生錯誤,會發出提示信號至上層應用,上層應用接收提示信號后停止錄像。在本實施方式中,所述方法還包括:處理單元在存儲單元所剩余的容量大于頭文件信息大小后,根據當前存儲單元中的錄像數據更新頭文件信息,并將更新后的頭文件信息寫入存儲單元中。由于頭文件信息所記錄的是存儲單元中各個基本塊(錄像數據以基本塊形式進行存儲)對應的標識信息。當存儲單元中所存儲的錄像數據發生變化時,頭文件信息也會相應變化。例如為了寫入頭文件信息,刪除了最新寫入到存儲單元的基本塊,因而需要對頭文件信息進行一定的處理,即刪除頭文件信息中這幾個基本塊(被刪除了的基本塊)的信息,而后再將更新后的頭文件信息寫入到存儲單元中。上述技術方案所述的錄像數據保護方法和裝置,所述裝置包括寫入指令發送單元、存儲單元、檢測單元、寫入單元、處理單元;所述方法包括以下步驟:首先寫入指令發送單元對存儲單元發起寫操作指令;而后檢測單元檢測當前存儲單元的剩余容量是否大于寫操作指令對應的錄像數據的大小,若是則寫入單元向存儲單元中寫入該寫操作指令對應的錄像數據;否則寫入單元不將該寫操作指令對應的錄像數據寫入存儲單元,處理單元根據當前存儲單元中已寫入的錄像數據對應的頭文件信息大小,逐一刪除上一次寫入操作所寫入的錄像數據,直至存儲單元所剩余的容量大于頭文件信息大小,而后將頭文件信息寫入存儲單元中。當存儲單元中的剩余容量不足而此時應用依然正在錄制時,所述裝置首先停止應用繼續錄制,而后根據當前已經錄制好的錄像數據確定需要寫入的頭文件信息大小,并刪除最新寫入的一部分錄像數據,使得存儲單元剩余空間足夠寫入頭文件信息,而后將頭文件信息寫入存儲單元中,使得寫入錄像數據整體形成一個完整的可運行的文件,從而使得錄像文件可以正常保存,提高了用戶體驗。需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的要素。此外,在本文中,“大于”、“小于”、“超過”等理解為不包括本數;“以上”、“以下”、“以內”等理解為包括本數。本領域內的技術人員應明白,上述各實施例可提供為方法、裝置、或計算機程序產品。這些實施例可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。上述各實施例涉及的方法中的全部或部分步驟可以通過程序來指令相關的硬件來完成,所述的程序可以存儲于計算機設備可讀取的存儲介質中,用于執行上述各實施例方法所述的全部或部分步驟。所述計算機設備,包括但不限于:個人計算機、服務器、通用計算機、專用計算機、網絡設備、嵌入式設備、可編程設備、智能移動終端、智能家居設備、穿戴式智能設備、車載智能設備等;所述的存儲介質,包括但不限于:RAM、ROM、磁碟、磁帶、光盤、閃存、U盤、移動硬盤、存儲卡、記憶棒、網絡服務器存儲、網絡云存儲等。上述各實施例是參照根據實施例所述的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到計算機設備的處理器以產生一個機器,使得通過計算機設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機設備以特定方式工作的計算機設備可讀存儲器中,使得存儲在該計算機設備可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機設備上,使得在計算機設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已經對上述各實施例進行了描述,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改,所以以上所述僅為本發明的實施例,并非因此限制本發明的專利保護范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的
技術領域:
:,均同理包括在本發明的專利保護范圍之內。當前第1頁1 2 3 當前第1頁1 2 3