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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

MXF文件结构浅析

發布時間:2024/8/24 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 MXF文件结构浅析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

MXF標準并非一成不變,一直在發展。SMPTE中MXF相關標準已經有幾十個文檔,并且仍然在補充增加,SMPTE定義的只是MXF框架和一般原則,具體實現由各廠商自行完成,各大廠商自己實現的MXF,往往在新產品中也會發生一些變化。

1.MXF文件基本結構

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

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

2.MXF底層數據結構

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

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

Key:16字節的標識符。
Length:數據(Value域)長度。BER(basic encoding rules)編碼方式,如83 00 00 88。

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

Value:KLV單元中包含的數據

3.MXF的邏輯結構

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

4.MXF文件分析

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

4.1.首先是文件header分區的partition信息。

4.2.字典,指明了16字節Key到2字節Tag的映射關系

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

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

4.5.EssenceContainerData:將素材容器的BodySID和相應索引表的IndexSID關聯起來,并指明了FilePackage的UID

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

鏈接的SourceTrack

BodyPartition里的Essence

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

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

其結構可以簡單的用下圖來粗略的描述

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。