本技術(shù)涉及數(shù)據(jù)處理,尤其涉及一種錄像數(shù)據(jù)處理方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、對圖像采集設(shè)備的編碼器采集的圖像數(shù)據(jù)進行存儲時,由于實時流連續(xù)不間斷,需要把碼流數(shù)據(jù)打包成獨立的錄像文件,方便文件下載及播放。打包的錄像文件在解碼播放時,需要從i幀(即關(guān)鍵幀)開始,如果一個錄像文件的數(shù)據(jù)部分不是從i幀開始,那么該錄像文件的i幀前面的數(shù)據(jù)幀是無法解碼播放的。所以當錄像文件打包后,必須要等待下一個i幀才能創(chuàng)建新的錄像文件,因此,新的碼流數(shù)據(jù)必須緩存到內(nèi)存中,等待下一個i幀的到來,然而內(nèi)存資源有限,當緩存空間不足時,碼流就會丟幀。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供了一種錄像數(shù)據(jù)處理方法、裝置、設(shè)備及介質(zhì),用以在對采集的錄像數(shù)據(jù)進行錄像文件打包的過程中,避免占用過多的緩存空間導(dǎo)致出現(xiàn)丟幀現(xiàn)象,保證打包生成的錄像文件具有完整的視頻幀,以及使得待打包的錄像文件可以被隨時訪問,從而使得采集的錄像數(shù)據(jù)可以被實時查詢、下載、回放等,提高訪問錄像數(shù)據(jù)的工作效率。
2、本技術(shù)實施例提供的一種錄像數(shù)據(jù)處理方法,包括:
3、將實時采集的圖像幀數(shù)據(jù)寫入預(yù)設(shè)的第一類型錄像文件中,所述預(yù)設(shè)的第一類型錄像文件用于寫入至少一個圖像組gop序列;
4、當所述預(yù)設(shè)的第一類型錄像文件中完成寫入至少一個完整的gop序列時,將所述預(yù)設(shè)的第一類型錄像文件中的至少一個完整的gop序列,寫入預(yù)設(shè)的第二類型錄像文件中,所述預(yù)設(shè)的第二類型錄像文件為待打包的錄像文件;
5、當所述第二類型錄像文件滿足預(yù)設(shè)的打包條件時,將所述預(yù)設(shè)的第二類型錄像文件進行打包,生成第三類型錄像文件,以及創(chuàng)建新的第二類型錄像文件。
6、本技術(shù)實施例提供的錄像數(shù)據(jù)處理方法,將實時采集的圖像幀數(shù)據(jù)寫入預(yù)設(shè)的第一類型錄像文件中,所述預(yù)設(shè)的第一類型錄像文件用于寫入至少一個圖像組gop序列,由于所述gop序列需要占用的存儲空間較小,從而可以避免新的碼流數(shù)據(jù)必須緩存到內(nèi)存中,并等待下一個i幀到來才能將緩存中的數(shù)據(jù)打包的情況,進而避免了內(nèi)存資源有限導(dǎo)致的當緩存空間不足時,碼流丟幀的情況發(fā)生;當所述預(yù)設(shè)的第一類型錄像文件中完成寫入至少一個完整的gop序列時,將所述預(yù)設(shè)的第一類型錄像文件中的至少一個完整的gop序列,寫入預(yù)設(shè)的第二類型錄像文件中,所述預(yù)設(shè)的第二類型錄像文件為待打包的錄像文件;因此,本技術(shù)實施例能夠以最新的gop序列作為最小單元進行存儲并寫入待打包的錄像文件中,即本技術(shù)實施例中所述的第一類型錄像文件以gop序列作為最小存儲單元即可,無需龐大的文件存儲錄像數(shù)據(jù)。當所述第二類型錄像文件滿足預(yù)設(shè)的打包條件時,將所述預(yù)設(shè)的第二類型錄像文件進行打包,生成第三類型錄像文件,以及創(chuàng)建新的第二類型錄像文件,最終生成的第三類型錄像文件中包含完整的視頻幀,即本技術(shù)實施例保證了打包生成的錄像文件具有完整的視頻幀。并且,由于本技術(shù)實施例中以完整的gop序列為單位,執(zhí)行寫入錄像文件的操作,gop序列的結(jié)構(gòu)包括一個關(guān)鍵幀和多個非關(guān)鍵幀,并且是以一個關(guān)鍵幀開始,所以gop序列可以作為獨立的解碼單元,可以獨立解碼顯示。因此,本技術(shù)實施例中不斷執(zhí)行錄像數(shù)據(jù)寫入操作的第二類型錄像文件,也可以隨時被訪問,例如可以被查詢、下載以及視頻回放等操作,因此提高了訪問錄像數(shù)據(jù)的工作效率。
7、在一些實施例中,所述將實時采集的圖像幀數(shù)據(jù)寫入預(yù)設(shè)的第一類型錄像文件中,包括:
8、獲取當前幀錄像數(shù)據(jù);
9、若所述當前幀錄像數(shù)據(jù)不是關(guān)鍵幀錄像數(shù)據(jù),則將所述當前幀錄像數(shù)據(jù)寫入預(yù)設(shè)的第一類型錄像文件中;
10、若所述當前幀錄像數(shù)據(jù)是關(guān)鍵幀錄像數(shù)據(jù),則判斷當前是否存在預(yù)設(shè)的第一類型錄像文件;
11、如果是,則若所述第二類型錄像文件不滿足預(yù)設(shè)的打包條件,則將所述當前幀錄像數(shù)據(jù)寫入預(yù)設(shè)的第一類型錄像文件中;若所述第二類型錄像文件滿足預(yù)設(shè)的打包條件,則將所述預(yù)設(shè)的第二類型錄像文件進行打包,生成第三類型錄像文件,以及創(chuàng)建新的第二類型錄像文件,將所述預(yù)設(shè)的第一類型錄像文件中的至少一個完整的gop序列,寫入所述新的第二類型錄像文件之后,將所述當前幀錄像數(shù)據(jù)寫入所述預(yù)設(shè)的第一類型錄像文件中;
12、否則,創(chuàng)建第一類型錄像文件,將所述當前幀錄像數(shù)據(jù)寫入預(yù)設(shè)的第一類型錄像文件中。
13、在一些實施例中,所述方法還包括:
14、若當前存在預(yù)設(shè)的第一類型錄像文件,則判斷當前是否存在預(yù)設(shè)的第二類型錄像文件;
15、如果是,則判斷所述第二類型錄像文件是否滿足預(yù)設(shè)的打包條件;
16、否則,在創(chuàng)建第二類型錄像文件后,判斷所述第二類型錄像文件是否滿足預(yù)設(shè)的打包條件。
17、在一些實施例中,所述將所述預(yù)設(shè)的第一類型錄像文件中的至少一個完整的gop序列,寫入預(yù)設(shè)的第二類型錄像文件中,包括:
18、以gop序列為單位,將所述第一類型錄像文件中的至少一個完整的gop序列,逐個追加寫入所述第二類型錄像文件中。
19、在一些實施例中,所述預(yù)設(shè)的打包條件包括:
20、所述第二類型錄像文件中的錄像數(shù)據(jù)時長,與所述第一類型錄像文件中的錄像數(shù)據(jù)時長的總和,大于預(yù)設(shè)的時長閾值;和/或,
21、所述第二類型錄像文件中的錄像數(shù)據(jù)的數(shù)據(jù)量,與所述第一類型錄像文件中的錄像數(shù)據(jù)的數(shù)據(jù)量的總和,大于預(yù)設(shè)的數(shù)據(jù)量閾值。
22、在一些實施例中,將所述預(yù)設(shè)的第二類型錄像文件進行打包,生成第三類型錄像文件,包括:
23、更新所述第二類型錄像文件的文件頭;
24、將更新了文件頭的第二類型錄像文件,按照預(yù)設(shè)規(guī)則進行重命名,得到第三類型錄像文件。
25、在一些實施例中,所述方法還包括:
26、獲取針對所述第二類型錄像文件的訪問請求;
27、根據(jù)針對所述第二類型錄像文件的訪問請求,提供所述第二類型錄像文件中的錄像數(shù)據(jù)。
28、本技術(shù)實施例提供的一種錄像數(shù)據(jù)處理裝置,包括:
29、第一單元,用于將實時采集的圖像幀數(shù)據(jù)寫入預(yù)設(shè)的第一類型錄像文件中,所述預(yù)設(shè)的第一類型錄像文件用于寫入至少一個圖像組gop序列;
30、第二單元,用于當所述預(yù)設(shè)的第一類型錄像文件中完成寫入至少一個完整的gop序列時,將所述預(yù)設(shè)的第一類型錄像文件中的至少一個完整的gop序列,寫入預(yù)設(shè)的第二類型錄像文件中,所述預(yù)設(shè)的第二類型錄像文件為待打包的錄像文件;
31、第三單元,用于當所述第二類型錄像文件滿足預(yù)設(shè)的打包條件時,將所述預(yù)設(shè)的第二類型錄像文件進行打包,生成第三類型錄像文件,以及創(chuàng)建新的第二類型錄像文件。
32、本技術(shù)另一實施例提供了一種電子設(shè)備,其包括存儲器和處理器,其中,所述存儲器用于存儲程序指令,所述處理器用于調(diào)用所述存儲器中存儲的程序指令,按照獲得的程序執(zhí)行上述任一種方法。
33、本技術(shù)另一實施例提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令用于使所述計算機執(zhí)行上述任一種方法。