Op atom格式的MXF文件的續(xù)寫方法
【專利摘要】本發(fā)明公開了一種Op atom格式的MXF文件的續(xù)寫方法,包括:判斷MXF文件是否完整;若所述MXF文件不完整,則判斷所述MXF文件的頭部元數(shù)據(jù)是否完成,若所述頭部元數(shù)據(jù)未完成,則重寫所述頭部元數(shù)據(jù);通過所述MXF文件的文件體包中已寫入的音視頻數(shù)據(jù)的長度除以每幀音視頻數(shù)據(jù)的長度獲取已寫入的音視頻數(shù)據(jù)的幀數(shù);繼續(xù)寫入音視頻數(shù)據(jù),并記錄所寫音視頻數(shù)據(jù)的幀數(shù);寫入文件尾部包。本發(fā)明通過續(xù)寫的方法對不完整MXF文件進(jìn)行處理,相比對不完整MXF文件的重寫操作,大大縮短了處理時間,減少了工作量。
【專利說明】
Op atom格式的MXF文件的續(xù)寫方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及MXF文件續(xù)寫技術(shù)領(lǐng)域,特別是涉及一種Op atom格式的MXF文件的續(xù)寫方法。
【背景技術(shù)】
[0002]MXF可以同時處理打包多條軌道的音視頻和數(shù)據(jù)庫文件,所以一個完整的MXF素材內(nèi)容較多,且文件較大。在MXF文件的生成過程中,如果遇到斷電或者其他情況,文件寫入中斷后,現(xiàn)有技術(shù)都是從頭重新寫入MXF文件,這樣勢必會有以下幾個方面的缺點:
(1)重寫MXF文件時,首先需要重新寫入HeaderMetadata(頭部元數(shù)據(jù)),頭部元數(shù)據(jù)包含了描述主體的總體內(nèi)容和單個節(jié)目片段的元數(shù)據(jù)組的結(jié)構(gòu),需要有專業(yè)的MXF文件知識背景才能寫入正確,因此需要投入大量精力才能完成;
(2)如果需要生成的MXF文件很大,寫入中斷時有時可能文件已經(jīng)寫了大部分,若這時再從頭開始寫入,勢必會費時費力,;而且,文件已經(jīng)寫到接近尾部時中斷,這時只需再寫入小部分音視頻數(shù)據(jù),然后再按照MXF標(biāo)準(zhǔn)寫入FPP(文件尾部包)和RIP(隨機(jī)索引包),即能成為一個可供媒體交換的完整素材,若重寫此類文件幾乎相當(dāng)于又重新寫了一個相同的完整文件,這是完全沒有必要的;
(3)若重寫MXF文件,由于不同文件編碼格式的差異所需的描述信息不同,如果不懂解碼所需信息的人在寫入視音頻數(shù)據(jù)描述信息時,有可能不清楚必須要寫入的描述參數(shù),重寫時可能造成錯誤。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種Opatom格式的MXF文件的續(xù)寫方法,通過續(xù)寫的方法對不完整MXF文件進(jìn)行處理,相比對不完整MXF文件的重寫操作,大大縮短了處理時間,減少了工作量。
[0004]本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:Opatom格式的MXF文件的續(xù)寫方法,包括:判斷MXF文件是否完整;若所述MXF文件不完整,則判斷所述MXF文件的頭部元數(shù)據(jù)是否完成,若所述頭部元數(shù)據(jù)未完成,則重寫所述頭部元數(shù)據(jù);通過所述MXF文件的文件體包中已寫入的音視頻數(shù)據(jù)的長度除以每幀音視頻數(shù)據(jù)的長度獲取已寫入的音視頻數(shù)據(jù)的幀數(shù);繼續(xù)寫入音視頻數(shù)據(jù),并記錄所寫音視頻數(shù)據(jù)的幀數(shù);寫入文件尾部包。
[0005]所述續(xù)寫方法還包括:改寫頭部元數(shù)據(jù)中需要改寫時長參數(shù)的項。
[0006]判斷MXF文件是否完整的方法為:解析頭部元數(shù)據(jù)中尾部包的偏移量和元數(shù)據(jù)中視音頻數(shù)據(jù)幀的時長,若所述尾部包和視音頻數(shù)據(jù)幀的時長都為0,則認(rèn)為所述MXF文件不完整,否則認(rèn)為所述MXF文件完整。
[0007]若所述頭部元數(shù)據(jù)完成,則記錄頭部元數(shù)據(jù)中需要改寫時長參數(shù)的項在文件中的偏移量。
[0008]所述頭部元數(shù)據(jù)中需要改寫時長參數(shù)的項包括視音頻序列和實際源素材。
[0009]所述續(xù)寫方法還包括:判斷所述MXF文件尾部是否寫入完整的索引表段,若未寫入完整索引表段,則進(jìn)行索引表段的寫入。
[0010]本發(fā)明的有益效果是:
(1)減少不完整MXF文件寫入的工作量:不完整的MXF文件續(xù)寫時,不需要重新寫入頭部元數(shù)據(jù),而且已經(jīng)寫入的部分音視頻數(shù)據(jù)就不需要再重寫一遍,能夠大大減少工作量;
(2)縮短不完整MXF文件寫入的時間:已寫入的音視頻數(shù)據(jù)不需要重新寫入,節(jié)省了大量時間,尤其是文件第一次寫入塊接近尾部的時候中斷,續(xù)寫此類文件相比重寫此類文件,優(yōu)勢更是顯而易見的;
(3)提高不完整的MXF文件的寫入的可操作性:因為減少了頭部元數(shù)據(jù)的重新寫入,對于尾部需要寫入視頻描述信息和音頻描述信息的MXF文件,只需要解析MXF文件頭部中的頭部元數(shù)據(jù)信息,復(fù)制寫入即可。
【附圖說明】
[0011]圖1為本發(fā)明中Opatom格式的MXF文件的續(xù)寫方法的流程圖。
【具體實施方式】
[0012]下面結(jié)合附圖進(jìn)一步詳細(xì)描述本發(fā)明的技術(shù)方案,但本發(fā)明的保護(hù)范圍不局限于以下所述。
[0013]如圖1所示,Opatom格式的MXF文件的續(xù)寫方法,基于MXF標(biāo)準(zhǔn)打包方式,通過解析MXF文件的物理結(jié)構(gòu)和邏輯結(jié)構(gòu),能夠大大節(jié)省文件補充完整的時間,并且操作簡單可行,具有廣泛的適用性。所述續(xù)寫方法包括:
步驟一、判斷MXF文件是否完整:解析頭部元數(shù)據(jù)中尾部包的偏移量和元數(shù)據(jù)中視音頻數(shù)據(jù)幀的時長,若所述尾部包和視音頻數(shù)據(jù)幀的時都長為O,則認(rèn)為所述MXF文件不完整,否則認(rèn)為所述MXF文件完整。
[0014]步驟二、若所述MXF文件不完整,則判斷所述MXF文件的頭部元數(shù)據(jù)是否完成,若所述頭部元數(shù)據(jù)未完成,則重寫所述頭部元數(shù)據(jù);若所述頭部元數(shù)據(jù)完成,則記錄頭部元數(shù)據(jù)中需要改寫時長參數(shù)的項在文件中的偏移量。通過記錄需要改寫時長參數(shù)的項在文件中的偏移量,方便后續(xù)改寫時長時,直接根據(jù)記錄的偏移量定位到需要改寫數(shù)據(jù)的文件位置,無需再次解析頭部元數(shù)據(jù),節(jié)約了時間。
[0015]若所述MXF文件完整,則說明所述MXF文件無需進(jìn)行續(xù)寫。
[0016]所述頭部元數(shù)據(jù)中需要改寫時長參數(shù)的項包括視音頻序列和實際源素材。
[0017]步驟三、通過所述MXF文件的文件體包中已寫入的音視頻數(shù)據(jù)的長度除以每幀音視頻數(shù)據(jù)的長度獲取已寫入的音視頻數(shù)據(jù)的幀數(shù)。
[0018]步驟四、繼續(xù)寫入數(shù)據(jù),并記錄所寫音視頻數(shù)據(jù)的幀數(shù)。
[0019]步驟五、寫入文件尾部包。
[0020]所述續(xù)寫方法還包括:改寫頭部元數(shù)據(jù)中需要改寫時長參數(shù)的項,通過前文解析得到的視音頻序列和實際源素材在文件中的偏移量進(jìn)行定位,改寫視音頻序列和實際源素材中的時長項。
[0021]所述續(xù)寫方法還包括:判斷所述MXF文件尾部是否寫入完整的索引表段,若未寫入完整索引表段,則進(jìn)行索引表段的寫入。
[0022]本發(fā)明能夠簡單、快速的實現(xiàn)對不完整MXF文件的處理,處理后的MXF文件能夠正確播放及傳輸。通過續(xù)寫的方法對不完整MXF文件進(jìn)行處理,相比對不完整MXF文件的重寫操作,大大縮短了處理時間,減少了工作量。
[0023]以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進(jìn)行改動。而本領(lǐng)域人員所進(jìn)行的改動和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。
【主權(quán)項】
1.0p atom格式的MXF文件的續(xù)寫方法,其特征在于:包括: 判斷MXF文件是否完整; 若所述MXF文件不完整,則判斷所述MXF文件的頭部元數(shù)據(jù)是否完成,若所述頭部元數(shù)據(jù)未完成,則重寫所述頭部元數(shù)據(jù); 通過所述MXF文件的文件體包中已寫入的音視頻數(shù)據(jù)的長度除以每幀音視頻數(shù)據(jù)的長度獲取已寫入的音視頻數(shù)據(jù)的幀數(shù); 繼續(xù)寫入音視頻數(shù)據(jù),并記錄所寫音視頻數(shù)據(jù)的幀數(shù); 寫入文件尾部包。2.根據(jù)權(quán)利要求1所述的Opatom格式的MXF文件的續(xù)寫方法,其特征在于:所述續(xù)寫方法還包括:改寫頭部元數(shù)據(jù)中需要改寫時長參數(shù)的項。3.根據(jù)權(quán)利要求1所述的Opatom格式的MXF文件的續(xù)寫方法,其特征在于:判斷MXF文件是否完整的方法為:解析頭部元數(shù)據(jù)中尾部包的偏移量和元數(shù)據(jù)中視音頻數(shù)據(jù)幀的時長,若所述尾部包和視音頻數(shù)據(jù)幀的時都長為O,則認(rèn)為所述MXF文件不完整,否則認(rèn)為所述MXF文件完整。4.根據(jù)權(quán)利要求1所述的Opatom格式的MXF文件的續(xù)寫方法,其特征在于:若所述頭部元數(shù)據(jù)完成,則記錄頭部元數(shù)據(jù)中需要改寫時長參數(shù)的項在文件中的偏移量。5.根據(jù)權(quán)利要求2或4所述的Opatom格式的MXF文件的續(xù)寫方法,其特征在于:所述頭部元數(shù)據(jù)中需要改寫時長參數(shù)的項包括視音頻序列和實際源素材。6.根據(jù)權(quán)利要求1所述的Opatom格式的MXF文件的續(xù)寫方法,其特征在于:所述續(xù)寫方法還包括:判斷所述MXF文件尾部是否寫入完整的索引表段,若未寫入完整索引表段,則進(jìn)行索引表段的寫入。
【文檔編號】G06F3/06GK106020733SQ201610376220
【公開日】2016年10月12日
【申請日】2016年5月31日
【發(fā)明人】侯小葉, 張金沙, 劉盾
【申請人】成都索貝數(shù)碼科技股份有限公司