一種媒體文件錄製異常的修複方法及裝置與流程
2023-05-20 12:22:26 1

本發明涉及媒體文件修復領域,尤指一種媒體文件錄製異常的修複方法及裝置。
背景技術:
媒體文件,例如mp4文件,其結構可分成兩部分,一部分為媒體數據,另一部分為數據描述。由於數據描述部分隨著媒體數據部分內容的不斷增加,會不斷增加及修改,目前通常對媒體文件的實現方式都是在文件結構上把媒體數據部分放在媒體文件的前面部分,把數據描述部分臨時存放在內存中,在執行停止錄製時,將內存中的數據寫到媒體文件的後面部分中。這樣的實現方式,在程序異常退出或者設備異常斷電等無法控制的事件發生時,導致未能在媒體文件的後面部分加上相應的數據描述,導致媒體文件異常,無法被解析使用。
現有技術中解決媒體文件錄製異常的方法通常採用在寫媒體文件時,將數據描述放在媒體文件前面部分,媒體數據放在媒體文件的後面部分。
上述方法是通過改變媒體文件內部的常用排布方式,將文件的結構調整為先數據描述後媒體數據,它的實現機制是在媒體文件的前面部分預留足夠大的區域用於存放數據描述,實時增加及更新數據描述,即使發生異常,由於數據描述實時都存放於文件中,錄製的文件格式不發生異常。這種方法的缺點在於,由於數據描述的大小與媒體數據的量有關,例如,為了使得預留的部分能夠容納不確定大小的數據描述,可能要預留70m左右的磁碟空間用於存儲數據描述,在錄製媒體數據量較小時,比如10分鐘,可能只需使用不到10m的磁碟空間來存儲數據描述,這樣就導致預留磁碟空間的大量浪費。如果錄製文件只需要錄製音頻數據,由於音頻數據量很小,導致文件實際有效部分與文件實際大小比值小,造成很大的浪費。
技術實現要素:
為解決現有技術中媒體文件錄製異常的問題,本發明通過記錄媒體文件錄製操作的方法修復媒體文件。
為了實現上述目的,本發明實施例提供一種媒體文件的錄製方法,該方法包括:
在非易失存儲器中,創建獨立於媒體文件的操作記錄文件;
在所述操作記錄文件中,記錄所述媒體文件錄製的操作步驟。
本發明實施例還提供一種媒體文件的修複方法,該方法包括:
在非易失存儲器中,查找獨立於媒體文件的操作記錄文件;
根據所述操作記錄文件的內容,還原所述媒體文件的數據描述部分;
根據所述數據描述部分及媒體數據,修復所述媒體文件。
本發明實施例還提供一種媒體文件的錄製裝置,所述裝置包括:
一創建模塊,用於在非易失存儲器中,創建獨立於媒體文件的操作記錄文件;
一記錄模塊,用於在所述操作記錄文件中,記錄所述媒體文件錄製的操作步驟。
本發明實施例還提供一種媒體文件的修復裝置,所述裝置包括:
一查找模塊,用於在非易失存儲器中,查找獨立於媒體文件的操作記錄文件;
一還原模塊,用於根據所述操作記錄文件的內容,還原所述媒體文件的數據描述部分;
一修復模塊,用於根據所述數據描述部分及媒體數據,修復所述媒體文件。
本發明實施例還提供一種計算機可讀存儲介質,其包括存儲的電腦程式,當運行電腦程式時控制終端設備執行如下操作:
在非易失存儲器中,創建獨立於媒體文件的操作記錄文件;
在所述操作記錄文件中,記錄所述媒體文件錄製的操作步驟。
本發明實施例還提供另一種計算機可讀存儲介質,其包括存儲的電腦程式,當運行電腦程式時控制終端設備執行如下操作:
在非易失存儲器中,查找獨立於媒體文件的操作記錄文件;
根據所述操作記錄文件的內容,還原所述媒體文件的數據描述部分;
根據所述數據描述部分及媒體數據,修復所述媒體文件。
本發明實施例還提供一種媒體文件錄製異常的修複方法,該方法包括:
當記錄媒體文件錄製操作時,具體包括:
在非易失存儲器中,創建獨立於所述媒體文件的操作記錄文件;
在所述操作記錄文件中,記錄所述媒體文件錄製的操作步驟;
當修復媒體文件時,具體包括:
在非易失存儲器中,查找所述操作記錄文件;
根據所述操作記錄文件的內容,還原所述媒體文件的數據描述部分;
根據所述數據描述部分及媒體數據,修復所述媒體文件。
本發明採用記錄媒體文件錄製操作的方法,創建獨立於媒體文件的操作記錄文件,在發生異常情況時,操作記錄文件不丟失,再次啟動程序時,根據所述操作記錄文件的內容,修復媒體文件。通過本發明的方法,在避免由於異常情況導致媒體文件損壞的同時,又可以避免浪費存儲器空間資源,達到可靠有效的修復媒體文件的效果。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例一種媒體文件的錄製方法的流程圖;
圖2為本發明實施例一種媒體文件的錄製裝置的結構示意圖;
圖3為本發明實施例一種媒體文件的修複方法的流程圖;
圖4為本發明實施例一種媒體文件的修復裝置的結構示意圖;
圖5為本發明實施例一種媒體文件錄製異常的修複方法的具體流程圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
如圖1所示為本發明實施例一種媒體文件的錄製方法的流程圖,在非易失存儲器中創建操作記錄文件,所述操作記錄文件獨立於媒體文件,將媒體文件錄製的操作步驟記錄在所述操作記錄文件中。
本圖中方法具體包括,步驟101,在非易失存儲器中,創建獨立於媒體文件的操作記錄文件。
步驟102,在所述操作記錄文件中,記錄所述媒體文件錄製的操作步驟。
其中,所述非易失存儲器可以包括例如機械硬碟、固態硬碟等,當然本實施例中的機械硬碟、固態硬碟只是一個舉例,還可以有其他的非易失存儲器。
在本實施例中,所述媒體文件可以包括例如mp4文件,當然本實施例中的mp4文件只是一個舉例,還可以有其他格式的媒體文件。
在本實施例中,所述操作記錄文件的內容可以包括例如時長、幀長度及時間比例等關鍵參數,當然本實施例中的時長、幀長度及時間比例只是一個舉例,還可以有其他的關鍵參數。
作為本發明的一個實施例,所述方法還包括,
在易失存儲器中,記錄實時更新的所述媒體文件的數據描述部分;
當錄製所述媒體文件完畢後,根據所述數據描述部分及媒體數據,生成所述媒體文件;
刪除所述操作記錄文件。
其中,所述易失存儲器可以包括例如電腦內存等,當然本實施例中的電腦內存只是一個舉例,還可以有其他的易失存儲器。
以上實施例是上述操作記錄文件的補充,即,在記錄操作記錄文件的同時還可以在內存中實時記錄更新的媒體文件的數據描述部分,如果錄製媒體文件可以正常完成,則可以使用內存中的數據描述部分和媒體數據生成媒體文件。
在本實施例中,錄製媒體文件時,同時不斷記錄實時更新的所述媒體文件的數據描述部分,當錄製過程中沒有發生異常情況時,執行關閉所述媒體文件的操作,根據記錄的所述數據描述部分及媒體數據,生成媒體文件,並刪除所述操作記錄文件。
通過上述本發明實施例中的方法,可以記錄媒體文件錄製的操作步驟,並且在錄製過程中沒有發生異常情況時,可以生成媒體文件並且刪除操作記錄文件。
如圖2所示為本發明實施例一種媒體文件的錄製裝置的結構示意圖,包括創建模塊201,用於在非易失存儲器中,創建獨立於媒體文件的操作記錄文件。
記錄模塊202,用於在所述操作記錄文件中,記錄所述媒體文件錄製的操作步驟。
其中,所述非易失存儲器可以包括例如機械硬碟、固態硬碟等,當然本實施例中的機械硬碟、固態硬碟只是一個舉例,還可以有其他的非易失存儲器。
在本實施例中,所述媒體文件可以包括例如mp4文件,當然本實施例中的mp4文件只是一個舉例,還可以有其他格式的媒體文件。
通過上述本發明實施例中的裝置,可以記錄媒體文件錄製的操作步驟,並且在錄製過程中沒有發生異常情況時,可以生成媒體文件並且刪除操作記錄文件。
如圖3所示為本發明實施例一種媒體文件的修複方法的流程圖,當媒體文件錄製過程中發生異常情況時,程序再次啟動時,在非易失存儲器中,查找獨立於媒體文件的操作記錄文件,在所述操作記錄文件中記錄了媒體文件錄製過程的操作步驟,根據操作記錄文件的內容,還原所述媒體文件的數據描述部分,根據所述數據描述部分及媒體數據,修復所述媒體文件。
本圖中方法具體包括,步驟301,在非易失存儲器中,查找獨立於媒體文件的操作記錄文件。
步驟302,根據所述操作記錄文件的內容,還原所述媒體文件的數據描述部分。
步驟303,根據所述數據描述部分及媒體數據,修復所述媒體文件。
其中,所述非易失存儲器可以包括例如機械硬碟、固態硬碟等,當然本實施例中的機械硬碟、固態硬碟只是一個舉例,還可以有其他的非易失存儲器。
在本實施例中,所述媒體文件可以包括例如mp4文件,當然本實施例中的mp4文件只是一個舉例,還可以有其他格式的媒體文件。
作為本發明的一個實施例,在查找所述操作記錄文件之前還包括:判斷非易失性內存中是否包括沒有正常錄製完成的媒體文件,當要恢復所述未正常錄製完成的媒體文件時,在非易失存儲器中,查找所述操作記錄文件。
在本實施例中,記錄在所述操作記錄文件中的關鍵參數例如時長,通過操作記錄文件還原所述數據描述部分的過程,具體可以為例如寫視頻數據操作,操作記錄文件中記錄了每一幀的時長,根據所述每一幀的時長,可以還原所述數據描述部分中的幀-幀時間間隔,幀-幀時間間隔為所述數據描述部分的關鍵參數之一,由此可以通過操作記錄文件中的內容一一對應來還原所述數據描述部分。
在本實施例中,當媒體錄製過程時,發生了異常情況而沒有執行關閉所述媒體文件的操作,使媒體文件異常,再次啟動程序時,在非易失存儲器中,查找所述操作記錄文件,根據所述操作記錄文件的內容,還原所述媒體文件的數據描述部分,根據所述數據描述部分及所述媒體數據,修復所述媒體文件。
通過上述本發明實施例中的方法,在媒體文件錄製過程中發生異常時,可以通過查找操作記錄文件,並根據操作記錄文件中的內容,還原所述媒體文件的數據描述部分,根據所述數據描述部分及所述媒體數據,修復所述媒體文件。
如圖4所示為本發明實施例一種媒體文件的修復裝置的結構示意圖,包括查找模塊401,用於在非易失存儲器中,查找獨立於媒體文件的操作記錄文件。
還原模塊402,用於根據所述操作記錄文件的內容,還原所述媒體文件的數據描述部分。
修復模塊403,用於根據所述數據描述部分及媒體數據,修復所述媒體文件。
其中,所述非易失存儲器可以包括例如機械硬碟、固態硬碟等,當然本實施例中的機械硬碟、固態硬碟只是一個舉例,還可以有其他的非易失存儲器。
在本實施例中,所述媒體文件可以包括例如mp4文件,當然本實施例中的mp4文件只是一個舉例,還可以有其他格式的媒體文件。
通過上述本發明實施例中的裝置,在媒體文件錄製過程中發生異常時,可以通過查找操作記錄文件,並根據操作記錄文件中的內容,還原所述媒體文件的數據描述部分,根據所述數據描述部分及所述媒體數據,修復所述媒體文件。
如圖5所示為本發明實施例一種媒體文件錄製異常的修複方法的具體流程圖,通過記錄媒體文件的錄製操作步驟,在錄製發生異常情況時,程序再次啟動後,查找操作記錄文件,根據所述操作記錄文件內容,還原所述媒體文件的數據描述部分,根據所述數據描述部分及媒體數據,修復媒體文件。
本圖中方法具體包括,步驟501,在非易失存儲器中,創建獨立於所述媒體文件的操作記錄文件。
步驟502,在所述操作記錄文件中,記錄所述媒體文件錄製的操作步驟。
步驟503,在非易失存儲器中,查找所述操作記錄文件。
步驟504,根據所述操作記錄文件的內容,還原所述媒體文件的數據描述部分。
步驟505,根據所述數據描述部分及媒體數據,修復所述媒體文件。
其中,所述非易失存儲器可以包括例如機械硬碟、固態硬碟等,當然本實施例中的機械硬碟、固態硬碟只是一個舉例,還可以有其他的非易失存儲器。
在本實施例中,所述媒體文件可以包括例如mp4文件,當然本實施例中的mp4文件只是一個舉例,還可以有其他格式的媒體文件。
作為本發明的一個實施例,所述根據所述操作記錄文件的內容,還原所述媒體文件的數據描述部分包括,根據所述操作記錄文件中的關鍵參數,對應還原所述數據描述部分中的關鍵參數。
其中,所述關鍵參數可以包括例如時長、幀長度及時間比例等等,當然本實施例中的時長、幀長度及時間比例只是一個舉例,還可以有其他的關鍵參數。
在本實施例中,記錄在所述操作記錄文件中的關鍵參數例如時長,通過操作記錄文件還原所述數據描述部分的過程,具體可以為例如寫視頻數據操作,操作記錄文件中記錄了每一幀的時長,根據所述每一幀的時長,可以還原所述數據描述部分中的幀-幀時間間隔,幀-幀時間間隔為所述數據描述部分的關鍵參數之一,由此可以通過操作記錄文件中的內容一一對應來還原所述數據描述部分。
在本實施例中,所述媒體文件可以包括例如mp4文件,以錄製及修復mp4文件為例,在創建mp4文件的同時,在非易失存儲器中,創建獨立於mp4文件的操作記錄文件,在錄製mp4文件時,在所述非易失存儲器中,以一幀音頻數據、一幀視頻數據的交替方式寫入音、視頻數據,同時,在所述操作記錄文件中,記錄每一寫音、視頻的操作及對應每一幀音、視頻數據的時長、幀長度等信息,並且,在內存中記錄實時更新的mp4文件的數據描述部分。當錄製正常結束時,將內存中的mp4文件的數據描述部分寫到mp4文件的後面部分,由此生成完整的mp4文件,同時,刪除所述操作記錄文件;當錄製發生異常時,內存中mp4文件的數據描述部分無法正常寫到mp4文件的後面部分,導致mp4文件異常,再次啟動錄製mp4文件的程序時,掃描上次錄製對應的目錄,查找操作記錄文件,根據操作記錄文件中的時長、幀長度等關鍵參數,對應還原所述數據描述部分中的時間間隔、幀長度等關鍵參數,具體的,可以包括例如在操作記錄文件中的時長、幀長度等,根據每一幀數據的時長,可以得到兩幀數據之間的時間間隔,其中,例如一幀視頻數據的時長為其播放時間,可以為例如40毫秒,由此可以得到數據描述部分中的幀-幀時間間隔,再如由所述操作記錄文件中的記錄的幀長度,對應得到數據描述部分中的幀長度,當然本實施例中的時長、幀長度及時間比例只是一個舉例,還可以有其他的關鍵參數,通過操作記錄文件中的內容一一對應來還原所述數據描述部分中的內容,由此還原所述mp4文件的數據描述部分,將所述數據描述部分寫到mp4文件的後面部分,由此完成修復mp4文件。
通過上述本發明實施例中的方法,在媒體文件錄製過程發生異常情況時,修復由此異常情況導致損壞的媒體文件,同時,又可以避免浪費存儲器空間資源,達到可靠有效的修復媒體文件的效果。
作為本發明一個實施例,一種計算機可讀存儲介質,其包括存儲的電腦程式,當運行電腦程式時控制終端設備執行如下操作,
在非易失存儲器中,創建獨立於媒體文件的操作記錄文件;
在所述操作記錄文件中,記錄所述媒體文件錄製的操作步驟。
作為本發明另一個實施例,一種計算機可讀存儲介質,其包括存儲的電腦程式,當運行電腦程式時控制終端設備執行如下操作,
在非易失存儲器中,查找獨立於媒體文件的操作記錄文件;
根據所述操作記錄文件的內容,還原所述媒體文件的數據描述部分;
根據所述數據描述部分及媒體數據,修復所述媒體文件。
通過上述本發明實施例中的方法及裝置,創建獨立於媒體文件的操作記錄文件,在發生異常情況時,操作記錄文件不丟失,再次啟動程序時,根據所述操作記錄文件的內容,修復媒體文件。通過本發明的方法,在避免由於異常情況導致媒體文件損壞的同時,又可以避免浪費存儲器空間資源,達到可靠有效的修復媒體文件的效果。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分步驟可以通過程序來指令相關的硬體來完成,該程序可以存儲於一計算機可讀取存儲介質中,比如rom/ram、磁碟、光碟等。
以上所述的具體實施例,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施例而已,並不用於限定本發明的保護範圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。