本發(fā)明涉及多媒體設(shè)備技術(shù)領(lǐng)域,特別涉及一種媒體文件的錄制播放方法及終端。
背景技術(shù):
行車記錄儀是用于記錄行車路況的電子設(shè)備,其可將拍攝得到的影像聲音信息存儲為多媒體文件。出現(xiàn)交通事故時(shí),多媒體文件可作為還原事故現(xiàn)場的證據(jù)。根據(jù)已有技術(shù)可知,正常使用時(shí),行車記錄儀可啟動保存流程保存包含媒體屬性信息的多媒體文件,并根據(jù)媒體屬性信息解碼播放多媒體文件。而在出現(xiàn)斷電等意外事故時(shí),行車記錄儀無法啟動保存流程將媒體屬性信息保存至多媒體文件中。由于沒有相應(yīng)的媒體屬性信息作為參考,行車記錄儀也就無法解碼播放多媒體文件。
現(xiàn)有技術(shù)提供一種對缺失媒體屬性信息的多媒體文件進(jìn)行恢復(fù)的方法,這種方法先采用相同設(shè)備錄制參考文件,再根據(jù)參考文件的媒體屬性信息恢復(fù)前述多媒體文件。而因?yàn)槎嗝襟w文件恢復(fù)需要進(jìn)行大量文件信息讀取和數(shù)據(jù)計(jì)算,前述多媒體文件恢復(fù)方法僅能應(yīng)用在硬件配置較高的設(shè)備中。在出現(xiàn)交通事故等突發(fā)事件時(shí),有采用行車記錄儀等終端快速播放媒體文件、還原事故現(xiàn)場的需求;而由于行車記錄儀等終端硬件配置并不高,所以前述多媒體文件恢復(fù)方法并不能滿足前述需求。
技術(shù)實(shí)現(xiàn)要素:
為解決行車記錄儀等硬件配置較低的終端在出現(xiàn)斷電等意外事故,不能快速方便地恢復(fù)多媒體文件、繼而快速還原現(xiàn)場的問題,本發(fā)明提供一種媒體文件的錄制播放方法,另本發(fā)明還提供一種實(shí)現(xiàn)前述方法的媒體文件的錄制播放終端。
本發(fā)明提供一種媒體文件的錄制播放方法,包括以下步驟:
采集視頻數(shù)據(jù)、按照第一編碼規(guī)則將所述視頻數(shù)據(jù)編碼為視頻清流數(shù)據(jù),采集音頻數(shù)據(jù)、按照第二編碼規(guī)則將所述音頻數(shù)據(jù)編碼為音頻清流數(shù)據(jù);
將視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)封裝存儲為多媒體文件;
將所述視頻清流數(shù)據(jù)存儲為視頻清流文件和/或?qū)⑺鲆纛l清流數(shù)據(jù)存儲為音頻清流文件;
若接收到異常指令,則選擇所述視頻清流文件和/或所述音頻清流文件作為目標(biāo)文件;
若接收到錄制停止指令,則根據(jù)封裝存儲到所述多媒體文件中的所述視頻清流數(shù)據(jù)和所述音頻清流數(shù)據(jù)生成媒體屬性信息,并將所述媒體屬性信息存儲至所述多媒體文件,以及選擇包含所述媒體屬性信息的多媒體文件作為目標(biāo)文件;
接收到播放指令后,播放所述目標(biāo)文件。
可選的,將所述媒體屬性信息存儲至所述多媒體文件后,還包括:
刪除所述視頻清流文件和/或所述音頻清流文件。
可選的,所述刪除所述視頻清流文件和/或所述音頻清流文件包括件:
校驗(yàn)所述多媒體文件中的所述媒體屬性信息是否正確存儲;
若所述媒體屬性信息正確存儲,則刪除所述視頻清流文件和/或所述音頻清流文件。
可選的,播放所述目標(biāo)文件具體為:
若所述目標(biāo)文件為所述視頻清流文件和/或所述音頻清流文件,則按照與所述第一編碼規(guī)則對應(yīng)的解碼規(guī)則解碼播放所述視頻清流文件,和/或,按照與所述第二編碼規(guī)則對應(yīng)的解碼規(guī)則解碼播放所述音頻清流文件;
若所述目標(biāo)文件為所述多媒體文件,則根據(jù)所述媒體屬性信息解碼播放所述多媒體文件。
本發(fā)明還提供一種媒體文件的錄制播放終端,包括:
視頻采集單元,用于采集視頻數(shù)據(jù);
音頻采集單元,用于采集音頻數(shù)據(jù);
視頻編碼單元,用于按照第一編碼規(guī)則將所述視頻數(shù)據(jù)編碼為視頻清流數(shù)據(jù);
音頻編碼單元,用于按照第二編碼規(guī)則將所述音頻數(shù)據(jù)編碼為音頻清流數(shù)據(jù);
多媒體文件存儲單元,用于將所述視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)封裝存儲為多媒體文件;
清流存儲單元,用于將所述視頻清流數(shù)據(jù)存儲為視頻清流文件和/或?qū)⑺鲆纛l清流數(shù)據(jù)存儲為音頻清流文件;
媒體屬性計(jì)算單元,用于在接收到錄制停止指令后根據(jù)封裝存儲到所述多媒體文件中的所述視頻清流數(shù)據(jù)和所述音頻清流數(shù)據(jù)生成媒體屬性信息;
屬性信息存儲單元,用于將所述媒體屬性信息存儲至所述多媒體文件;
選擇單元,用于在接收到異常指令時(shí)選擇所述視頻清流文件和/或所述音頻清流文件作為目標(biāo)文件,以及在接收到錄制停止指令時(shí)選擇包含所述媒體屬性信息的多媒體文件作為目標(biāo)文件;
播放單元,用于播放所述目標(biāo)文件。
可選的,所述錄制播放終端還包括:
清流刪除單元,用于在所述媒體屬性信息存儲至所述多媒體文件后刪除所述視頻清流文件和/或所述音頻清流文件。
可選的,所述清流刪除單元還用于校驗(yàn)所述多媒體文件中的所述媒體屬性信息是否正確存儲,并在是的情況下刪除所述視頻清流文件和/或所述音頻清流文件。
可選的,若所述目標(biāo)文件為所述視頻清流文件和/或所述音頻清流文件,則所述播放單元按照與所述第一編碼規(guī)則對應(yīng)的解碼規(guī)則解碼播放所述視頻清流文件,和/或,按照與所述第二編碼規(guī)則對應(yīng)的解碼規(guī)則解碼播放所述音頻清流文件;
若所述目標(biāo)文件為所述多媒體文件,則所述播放單元根據(jù)所述媒體屬性信息解碼播放所述多媒體文件。
本發(fā)明提供的媒體文件的錄制播放方法及終端,在將視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)封裝為多媒體文件的同時(shí),將視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)存儲為獨(dú)立的視頻清流文件和音頻清流文件(部分應(yīng)用場合時(shí)也可僅存儲視頻清流文件和音頻清流文件中的一種)。如果多媒體錄制終端出現(xiàn)斷電等異常情況、繼而收到異常指令時(shí),多媒體文件中沒有存儲正確的媒體屬性信息,則可將視頻清流文件和音頻清流文件作為目標(biāo)文件進(jìn)行解碼播放;而接收到正常的錄制停止指令、媒體屬性信息存儲至多媒體文件時(shí),則可將多媒體文件作為目標(biāo)文件進(jìn)行解碼播放。采用前述方法,通過備份存儲視頻清流文件和/或音頻清流文件,可避免出現(xiàn)意外情況時(shí),無法快速播放視頻和/或音頻、快速還原現(xiàn)場的問題。
附圖說明
為更清楚地說明背景技術(shù)或本發(fā)明的技術(shù)方案,下面對現(xiàn)有技術(shù)或具體實(shí)施方式中結(jié)合使用的附圖作簡單地介紹;顯而易見地,以下結(jié)合具體實(shí)施方式的附圖僅是用于方便理解本發(fā)明實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖;
圖1是本發(fā)明實(shí)施例中媒體文件的錄制播放方法流程圖;
圖2是本發(fā)明實(shí)施例中媒體文件的錄制播放終端的組成示意圖;
其中:1-錄制播放終端、101-視頻采集單元、102-音頻采集單元、103-視頻編碼單元、104-音頻編碼單元、105-多媒體文件存儲單元、106-清流存儲單元、107-媒體屬性計(jì)算單元、108-屬性信息存儲單元、109-選擇單元、110-播放單元、111-清流刪除單元。
具體實(shí)施方式
本發(fā)明提供一種媒體文件的錄制播放方法,通過備份存儲清流文件的方式避免出現(xiàn)意外情況時(shí)多媒體文件沒有完整存儲、不能通過快速播放視頻和音頻還原意外事故現(xiàn)場的問題。另外,本發(fā)明還提供一種實(shí)現(xiàn)前述媒體文件錄制播放方法的錄制播放終端。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
圖1是本發(fā)明實(shí)施例中媒體文件的錄制播放方法流程圖。如圖1,本發(fā)明提供的媒體文件的錄制播放方法包括以下步驟。
S101:采集視頻數(shù)據(jù)、按照第一編碼規(guī)則將視頻數(shù)據(jù)編碼為視頻清流數(shù)據(jù),采集音頻數(shù)據(jù)、按照第二編碼規(guī)則將音頻數(shù)據(jù)編碼為音頻清流數(shù)據(jù)。
視頻數(shù)據(jù)和音頻數(shù)據(jù)編碼的目的是為降低兩種格式文件的大小、便于對后續(xù)文件的存儲。以目前主流的MP4文件的錄制存儲方法為例,可采用H.264視頻編碼規(guī)則對視頻數(shù)據(jù)進(jìn)行壓縮編碼、使視頻數(shù)據(jù)編碼為H.264格式的視頻清流數(shù)據(jù),可采用高級音頻編碼(Advanced Audio Coding,AAC)規(guī)則對音頻數(shù)據(jù)進(jìn)行壓縮編碼、使音頻數(shù)據(jù)編碼為AAC格式的音頻清流數(shù)據(jù)。
S102:將視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)封裝存儲為多媒體文件;以及,將視頻清流數(shù)據(jù)存儲為視頻清流文件和將音頻清流數(shù)據(jù)存儲為音頻清流文件。
視頻數(shù)據(jù)編碼為視頻清流數(shù)據(jù)后,音頻數(shù)據(jù)編碼為音頻清流數(shù)據(jù)后,終端按照預(yù)定規(guī)則對視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)進(jìn)行混合封裝,形成音視頻同步的多媒體文件。同時(shí),終端設(shè)備還將視頻清流數(shù)據(jù)單獨(dú)存儲為視頻清流文件、將音頻清流數(shù)據(jù)單獨(dú)存儲為音頻清流文件。
S103:對接收到的指令進(jìn)行判斷。若指令為異常指令,則執(zhí)行S104;若指令為錄制停止指令,則執(zhí)行S105-S107。
S104:選擇視頻清流文件和音頻清流文件作為目標(biāo)文件。
S105:根據(jù)封裝存儲到所述多媒體文件中的視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)生成媒體屬性信息。
S106:將媒體屬性信息存儲至多媒體文件。
S107:選擇包含媒體屬性信息的多媒體文件作為目標(biāo)文件。
S108:接收到播放指令后,播放所述目標(biāo)文件。
為便于理解本方法,此處先對多媒體文件、視頻清流文件和音頻清流文件的結(jié)構(gòu)和組成做簡單的介紹。多媒體文件是封裝了視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)的文件,且音視頻保持同步,完整的多媒體文件還包括設(shè)置在多媒體文件頭中的媒體屬性信息,例如碼率和壓縮算法等參數(shù);播放多媒體文件時(shí)需要根據(jù)媒體屬性信息對多媒體文件進(jìn)行解碼。視頻清流文件為僅包括視頻清流數(shù)據(jù)的文件,音頻清流文件為僅包括音頻清流數(shù)據(jù)的文件,因此對視頻清流文件和/或音頻清流文件解碼播放時(shí)只需知道相應(yīng)的編碼規(guī)則即可。
當(dāng)終端設(shè)備接收到異常指令時(shí)(例如因斷電等情況接收到的指令),因?yàn)槎嗝襟w文件中的媒體屬性信息還沒有生成并被存儲至多媒體文件中,所以后續(xù)無法根據(jù)媒體屬性信息解碼播放出多媒體文件中的視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)。此時(shí),由于已經(jīng)存儲僅包含視頻清流數(shù)據(jù)的視頻清流文件和僅包含音頻清流數(shù)據(jù)的音頻清流文件,并且視頻清流文件可采用與第一編碼規(guī)則對應(yīng)的解碼規(guī)則解碼播放、音頻清流文件可采用與第二編碼規(guī)則對應(yīng)的解碼規(guī)則解碼播放,所以可選擇視頻清流文件和音頻清流文件作為目標(biāo)文件。
而接收到錄制停止指令后,可根據(jù)封裝存儲到多媒體文件中的視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)生成媒體屬性信息、并將媒體屬性信息存儲到多媒體文件的文件頭中。后續(xù)可以根據(jù)媒體屬性信息解碼播放包括視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)的多媒體文件。所以可選擇多媒體文件作為目標(biāo)文件。
在S104和S107中已經(jīng)確定目標(biāo)文件,所以在S108中接收到播放指令后,就可播放對應(yīng)的目標(biāo)文件。
在媒體屬性信息存儲至多媒體文件后,直接選擇多媒體文件作為目標(biāo)文件,此時(shí)視頻清流文件和音頻清流文件被使用的可能性不大,但視頻清流文件和音頻清流文件存儲占用較多的存儲空間。為節(jié)省終端設(shè)備的存儲空間,本發(fā)明實(shí)施例中的媒體文件的錄制播放方法在將多媒體屬性信息存儲至多媒體文件后,還可包括S109。
S109:刪除視頻清流文件和音頻清流文件。
實(shí)際應(yīng)用中,為保證多媒體文件中的媒體屬性信息正確存儲后視頻清流文件和音頻清流文件才被刪除,S109步驟具體包括以下子步驟。
S1091:校驗(yàn)多媒體文件中的媒體屬性信息是否正確;
若多媒體文件中的媒體屬性信息正確,則執(zhí)行S1092;若多媒體文件中的媒體屬性信息不正確,則返回執(zhí)行S106。
S1092:刪除視頻清流文件和音頻清流文件。
本實(shí)施例中,為判斷媒體屬性信息是否正確存儲,可在媒體屬性信息存儲至多媒體文件后再讀出媒體屬性信息,并比較讀出的媒體屬性信息和根據(jù)視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)生成的媒體屬性信息,判斷多媒體屬性信息是否已正確存儲。當(dāng)然,在其他實(shí)施例中,也可在媒體屬性信息后添加校驗(yàn)碼,采用校驗(yàn)碼校驗(yàn)媒體屬性信息各部分內(nèi)容是否正確存儲。
可想到,采用前述媒體文件的錄制播放方法,在錄制存儲多媒體文件的同時(shí)備份存儲視頻清流文件和音頻清流文件,可避免出現(xiàn)意外狀況無法播放視頻數(shù)據(jù)和音頻數(shù)據(jù)的問題。這樣的方法可應(yīng)用到諸如行車記錄儀等小型終端中,滿足使用此類終端快速播放相應(yīng)媒體數(shù)據(jù)、還原現(xiàn)場的需求。
本實(shí)施例中提供的媒體文件的錄制播放方法,同時(shí)存儲了視頻清流文件和音頻清流文件;當(dāng)然,在其他實(shí)施例中,也可僅備份視頻清流文件和音頻清流文件中的一種。另外,本實(shí)施例中,在播放目標(biāo)文件時(shí)可采用順序播放形式先后播放視頻清流文件和音頻清流文件;在其他實(shí)施例中,根據(jù)實(shí)際存儲內(nèi)容和應(yīng)用需求,也可僅播放視頻清流文件和音頻清流文件中的一種。
除提供前述的媒體文件的錄制播放方法外,本發(fā)明還提供一種實(shí)現(xiàn)前述媒體文件的錄制播放方法的媒體文件的錄制播放終端。
圖2是本發(fā)明實(shí)施例中媒體文件的錄制播放終端的組成示意圖。如圖2,媒體文件的錄制播放終端1包括視頻采集單元101、音頻采集單元102、視頻編碼單元103、音頻編碼單元104、多媒體文件存儲單元105、清流存儲單元106、媒體屬性計(jì)算單元107、屬性信息存儲單元108、選擇單元109和播放單元110。
其中:視頻采集單元101用于采集視頻數(shù)據(jù);音頻采集單元102用于采集音頻數(shù)據(jù);視頻編碼單元103用于按照第一編碼規(guī)則將視頻數(shù)據(jù)編碼為視頻清流數(shù)據(jù);音頻編碼單元104用于按照第二編碼規(guī)則將音頻數(shù)據(jù)編碼為音頻清流數(shù)據(jù)。
多媒體文件存儲單元105用于將視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)封裝存儲為多媒體文件;清流存儲單元106用于將視頻清流數(shù)據(jù)存儲為視頻清流文件和/或?qū)⒁纛l清流數(shù)據(jù)存儲為音頻清流文件。
以采用Android系統(tǒng)的媒體文件的錄制播放終端為例,媒體文件的錄制播放終端可調(diào)用Android平臺中的MeidaMuxer模塊對視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)進(jìn)行混合封裝、形成封裝數(shù)據(jù),并調(diào)用一個FileWriter接口將封裝數(shù)據(jù)存儲為MP4格式的多媒體文件(多媒體文件存儲單元105可理解為MediaMuxer模塊和FileWriter接口的組合);同時(shí),媒體文件錄制播放終端可直接調(diào)用另外的FileWriter接口(此FileWriter接口可理解為清流存儲單元106)將視頻清流數(shù)據(jù)寫為視頻清流文件、將音頻清流數(shù)據(jù)寫為音頻清流文件。
媒體屬性計(jì)算單元107用于在接收到錄制停止指令后根據(jù)封裝存儲到多媒體文件中的視頻清流數(shù)據(jù)和音頻清流數(shù)據(jù)生成媒體屬性信息;屬性信息存儲單元108用于將媒體屬性信息存儲至多媒體文件。
選擇單元109用于在接收到異常指令時(shí)選擇視頻清流文件和/或音頻清流文件作為目標(biāo)文件,以及在接收到錄制停止指令時(shí)選擇包含媒體屬性信息的多媒體文件作為目標(biāo)文件;播放單元110用于播放目標(biāo)文件。
另外,本實(shí)施例中的媒體文件的錄制播放終端還可包括清流刪除單元111,清流刪除單元111用于在媒體屬性信息存儲至多媒體文件后刪除視頻清流文件和所述音頻清流文件。
進(jìn)一步地,為保證存儲在多媒體文件中的媒體屬性信息正確后多才刪除視頻清流文件和音頻清流文件,本實(shí)施例中的清流刪除單元111還用于校驗(yàn)多媒體文件中的媒體屬性信息是否正確存儲。若多媒體文件中的媒體屬性信息正確存儲,則清流刪除單元111才刪除視頻清流文件和音頻清流文件;若多媒體文件中的媒體屬性信息沒有正確存儲,則向?qū)傩孕畔⒋鎯卧?08發(fā)送反饋指令,使屬性信息存儲單元108重新將媒體屬性信息存儲至多媒體文件。
與前述媒體文件的錄制播放方法對應(yīng)的,在本實(shí)施例媒體文件的錄制播放終端中,播放單元110根據(jù)不同類型的目標(biāo)文件選擇不同的規(guī)則解碼播放目標(biāo)文件,具體為:若目標(biāo)文件為視頻清流文件和音頻清流文件,則播放單元110按照與第一編碼規(guī)則對應(yīng)的解碼規(guī)則解碼播放視頻清流文件、按照與第二編碼規(guī)則對應(yīng)的解碼規(guī)則解碼播放音頻清流文件;若目標(biāo)文件為多媒體文件,則播放單元110根據(jù)媒體屬性信息解碼播放多媒體文件。
以上對本發(fā)明實(shí)施例中的媒體文件的錄制播放方法和媒體文件的錄制播放終端進(jìn)行了詳細(xì)介紹。本部分采用具體實(shí)施例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的核心思想,在不脫離本發(fā)明原理的情況下,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。