日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

MXF文件结构浅析

發(fā)布時(shí)間:2024/8/24 综合教程 45 生活家
生活随笔 收集整理的這篇文章主要介紹了 MXF文件结构浅析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

MXF是英文Material eXchange Format(素材交換格式)的縮語。MXF是SMPTE(美國電影與電視工程師學(xué)會(huì))組織定義的一種專業(yè)音視頻媒體文件格式。MXF主要應(yīng)用于影視行業(yè)媒體制作、編輯、發(fā)行和存儲(chǔ)等環(huán)節(jié)。SMPTE為其定義的標(biāo)準(zhǔn)包括:SMPTE - 377M、SMPTE - EG41、SMPTE - EG42等,并不斷進(jìn)行更新和完善。它是一個(gè)外殼格式 而不是壓縮格式, 所以并不能保證每一款MXF文件 都能被任何一種解碼器識(shí)別。

MXF標(biāo)準(zhǔn)并非一成不變,一直在發(fā)展。SMPTE中MXF相關(guān)標(biāo)準(zhǔn)已經(jīng)有幾十個(gè)文檔,并且仍然在補(bǔ)充增加,SMPTE定義的只是MXF框架和一般原則,具體實(shí)現(xiàn)由各廠商自行完成,各大廠商自己實(shí)現(xiàn)的MXF,往往在新產(chǎn)品中也會(huì)發(fā)生一些變化。

1.MXF文件基本結(jié)構(gòu)

MXF文件包括三個(gè)主體部分:文件頭、文件體和文件尾。
文件頭提供文件的整體信息,包括用于解碼文件中所有視音頻數(shù)據(jù)的解碼器列表等。文件體由存儲(chǔ)在要素容器中的視音頻數(shù)據(jù)組成,來自不同數(shù)據(jù)軌(如視頻、音頻和時(shí)碼)的要素容器可能交錯(cuò)和分離地存儲(chǔ)在文件體中。文件尾用以結(jié)束一個(gè)MXF文件,包括一些在產(chǎn)生文件頭時(shí)還不確定的信息,如文件的視音頻長度等,文件尾的信息在某些場景中常常被忽略。

MXF文件也可包含一個(gè)可選的索引表(Index Table),該索引表可用于將基于采樣的索引(如時(shí)碼)快速換算到對應(yīng)的要素容器在<spanlang="en-us>">MXF文件中的偏移地址,以實(shí)現(xiàn)視音頻的快速預(yù)覽和定位。該索引表可分段存儲(chǔ),可位于基本數(shù)據(jù)段之前或之后,也可分插到基本數(shù)據(jù)段中間。

2.MXF底層數(shù)據(jù)結(jié)構(gòu)

MXF文件的所有數(shù)據(jù)都采用Key-Length-Value(KLV)進(jìn)行編碼以獲得格式的靈活性和可擴(kuò)展性,KLV編碼標(biāo)準(zhǔn)定義在SMPTE 336M中。實(shí)際上MXF文件就是若干連續(xù)KLV數(shù)據(jù)包的序列(除了可選的RUN-IN包)。

the key identifies the data, the length specifies thelength of the data, and the value is the data itself

Key:16字節(jié)的標(biāo)識(shí)符。
Length:數(shù)據(jù)(Value域)長度。BER(basic encoding rules)編碼方式,如83 00 00 88。

它使用可變長的字節(jié)來表示非常寬的長度范圍,該域總是按MSB(高字節(jié)優(yōu)先)編碼,如果第一個(gè)字節(jié)的bit7為0,那么低7位代表了0~127范圍的長度,如果bit7為1,那么低7位代表長度域的字節(jié)個(gè)數(shù)。

Value:KLV單元中包含的數(shù)據(jù)

3.MXF的邏輯結(jié)構(gòu)

MXF文件的邏輯模型是一種基于對象的數(shù)據(jù)結(jié)構(gòu),主要由頭部元數(shù)據(jù)中的結(jié)構(gòu)元數(shù)據(jù)定義。結(jié)構(gòu)元數(shù)據(jù)主要分為兩類,一類是與實(shí)踐特性有關(guān)的結(jié)構(gòu)結(jié)構(gòu)元數(shù)據(jù)包(Structural Metadata Package),一類是與素材或素材容器的特征參數(shù)相關(guān)的描述符(Descriptors)。每個(gè)結(jié)構(gòu)元數(shù)據(jù)包有1個(gè)或多個(gè)軌跡(Track)組成,每個(gè)軌跡是一段具有起始時(shí)間點(diǎn)、編輯速率的時(shí)間線,由一個(gè)具有一定持續(xù)時(shí)間的序列(Squence)組成,每個(gè)序列又由1個(gè)或多個(gè)源片段(SourceClip)組成。包(Package)、軌跡(Track)、序列(Squence)、源片段(SourceClip)通過UUID相互引用。
頂層文件包中的每一個(gè)軌跡分別對應(yīng)內(nèi)容容器中不同的類型并有相應(yīng)的描述符描述素材的特征信息,如像素、采樣率、畫幅比、聲道數(shù)、比特?cái)?shù)等。素材包通常為文件的輸出時(shí)間線,確定在播放或使用時(shí)文件中哪個(gè)內(nèi)容容器中的哪些內(nèi)容被播放,以及這些內(nèi)容如何同步。素材包中的源片段通過UUID引用,鏈接到頂層文件包中的某個(gè)軌跡。而素材元素元數(shù)據(jù)(EssenceContainerData)將頂層文件包和具體的素材容器及相應(yīng)的索引表相互關(guān)聯(lián)起來。

4.MXF文件分析

我們可以通過MXFExpressAndMXFDesktop_120 和 MXFInspect工具來幫助我們分析MXF文件,這里以op1A 文件為例。

4.1.首先是文件header分區(qū)的partition信息。

4.2.字典,指明了16字節(jié)Key到2字節(jié)Tag的映射關(guān)系

4.3.preface:相當(dāng)于MXF文件的序言,指明了Source Package 和Material Package的UID(通過ContentStorage包含)

4.4.contentstorage :指明了 SourcePackage(FilePackage)和MaterialPackage以及EssenceContainerData的UID

4.5.EssenceContainerData:將素材容器的BodySID和相應(yīng)索引表的IndexSID關(guān)聯(lián)起來,并指明了FilePackage的UID

4.5. MaterialPackage:素材包,它里面的SourceClip通過UUID引用到了SourcePackage里的某個(gè)Track

鏈接的SourceTrack

BodyPartition里的Essence

4.6.EssenceDescriptor:描述了SourceTrack里面的Essence的信息

4.7.IndexTab:記錄每幀在自己所屬的Essence中的偏移

其結(jié)構(gòu)可以簡單的用下圖來粗略的描述

總結(jié)

以上是生活随笔為你收集整理的MXF文件结构浅析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。