翻譯:QuickTime文件格式規(guī)范-Movie Atoms(1)

譯者注:
這里面的內(nèi)容主要是分析mp4/3gp文件的層級結(jié)構(gòu)甩恼,詳細(xì)的介紹了各種不同的box的結(jié)構(gòu)等每瞒,網(wǎng)上有一些參考資源,他們大多都是結(jié)合實際的例子來說明暇唾,篇幅較大促脉,而且籠統(tǒng)辰斋,建議讀者分多次結(jié)合網(wǎng)上資源來理解這部分內(nèi)容。

翻譯正文:

Movie Atoms

本章簡單介紹了QuickTime movie atoms瘸味,以及這些atoms的布局和用法的具體細(xì)節(jié)宫仗。本章中討論的每種atom類型都有包含偏移量信息的附圖,以及字段說明旁仿。

本章分為以下主要部分:

  • Overview of Movie Atoms介紹的是QuickTime movie atoms藕夫,它充當(dāng)裝載描述movie的數(shù)據(jù)的信息的容器。本部分提供了顯示了簡單的單軌QuickTime movie組織結(jié)構(gòu)的概念圖枯冈。還介紹了Color table atoms和user data atoms汁胆。
  • Track Atoms介紹了track atoms,其定義了movie的單個軌道霜幼。還介紹了user data atoms的track和hint track嫩码。
  • Media Atoms介紹了media atoms,其定義了track的movie data罪既,例如media type和media time scale铸题。
  • Sample Atoms介紹了sample table atoms,它指定了media sample所在的位置琢感,它們的時長等信息丢间。這部分還包括了如何使用這些atoms的示例。

?? :media atoms和sample atoms不包含實際采樣數(shù)據(jù)驹针,如視頻幀或音頻采樣烘挫。 它們包含用于定位和解釋這些采樣的元數(shù)據(jù)。

  • Compressed Movie Resources討論了壓縮的movie資源柬甥,其中使用無損壓縮算法來壓縮movie atom的內(nèi)容饮六,包括任何軌道,media或sample atoms苛蒲。 在解析movie atom之前卤橄,必須解壓縮這些。
  • Reference Movies討論了包含reference movie atom(對備用movie的引用列表臂外,以及從備選項列表中選擇正確movie的標(biāo)準(zhǔn))的movie窟扑。 包含reference movie atom的movie atoms不一定包含軌道,media或sample atoms漏健。

Overview of Movie Atoms(Movie Atoms概述)

QuickTime movie atoms的atom類型為“moov”嚎货。 這些atom作為描述movie數(shù)據(jù)的信息的容器。 該信息或元數(shù)據(jù)存儲在多種不同類型的atom中蔫浆。 一般來說殖属,只有元數(shù)據(jù)存儲在movie原子中。 movie的樣本數(shù)據(jù)克懊,例如音頻或視頻樣本忱辅,在movie atom中引用七蜘,但不包含在其中谭溉。

movie atom基本上是其他atoms的容器墙懂。 這些atoms一起描述了movie的內(nèi)容。 在頂層扮念,movie atom通常包含軌道atoms损搬,軌道atom又包含media atoms。 在最底層是葉atoms柜与,其包含非atom數(shù)據(jù)巧勤,通常以表或一組數(shù)據(jù)元素的形式。 例如弄匕,軌道atom包含edit atom颅悉,edit atom又包含edit list atom,葉atom包含edit list table的數(shù)據(jù)迁匠。 所有這些atom將在本文檔的后面討論剩瓶。

圖2-1提供了一個簡單的單軌QuickTime movie的組織的概念圖。圖中的每個嵌套框表示屬于其父atom的atom城丧。該圖不顯示任何atom的數(shù)據(jù)區(qū)域延曙。這些區(qū)域在這部分的后面介紹。

注意亡哄,該圖顯示了標(biāo)準(zhǔn)movie atom的組織結(jié)構(gòu)枝缔。可以使用無損壓縮算法來壓縮movie元數(shù)據(jù)蚊惯。在這種情況下愿卸,movie atom只包含一個子atom - compressed movie atom('cmov')。當(dāng)這個子atom未壓縮時截型,其內(nèi)容符合下圖所示的結(jié)構(gòu)擦酌。有關(guān)詳細(xì)信息,請參閱Compressed Movie Resources菠劝。

還可以創(chuàng)建reference movie赊舶,引用其他movie的movie;在這種情況下,movie atom可以僅包含reference movie atom('rmra')赶诊。有關(guān)詳細(xì)信息笼平,請參閱“Reference Movies”。最終舔痪,這種鏈關(guān)系必須以標(biāo)準(zhǔn)movie atom(如圖2-1中的atom)或壓縮的movie atom(可以解壓縮以獲得相同的結(jié)構(gòu))結(jié)束寓调。

圖 2-1 Sample organization of a one-track video movie

?? 注意:在單軌QuickTime movie文件中,其他的atoms可能存在锄码,但不顯示在圖2-1中夺英。

Movie Atom

您使用movie atoms來指定定義movie的信息晌涕,即允許程序解釋存儲在其他位置的sample數(shù)據(jù)的信息。movie atom通常包含movie header atom痛悯,其定義整個movie的時間尺度和持續(xù)時間信息余黎,以及其顯示特性。現(xiàn)有movie可能包含movie profile atom载萌,其中總結(jié)了movie的主要功能惧财,例如必要的編解碼器和最大比特率。此外扭仁,movie atom包含movie中每個軌道的track atom垮衷。

movie atom的atom類型為“moov”。它包含其他類型atoms乖坠,包括三個可能atoms中的至少一個 - movie header atom('mvhd')搀突,compressed movie atom('cmov')或reference movie atom('rmra')。uncompressed movie atom可以包含movie header atom和reference movie atom熊泵,但它必須包含這兩個中的至少一個仰迁。它還可以包含幾個其他atoms,如clipping atom('clip')戈次,一個或多個track atoms('trak')轩勘,colour table atom('ctab')和user data atom('udta') 。

compressed movie atoms和reference movie atoms被分開討論怯邪。 本節(jié)介紹正常的uncompressed movie atoms绊寻。

圖 2-2 顯示了典型的movie atom的布局。

?? 注意:如前所述悬秉,葉子atoms顯示為白色框澄步,容器atoms顯示為灰色框。

圖 2-2 The layout of a movie atom

movie atom可能包含以下字段:

  • Size
    此movie atom中的字節(jié)數(shù)和泌。
  • Type
    這個movie atom的類型; 此字段必須設(shè)置為“moov”村缸。
  • Profile atom
    有關(guān)詳細(xì)信息,請參閱Movie Profile Atom武氓。
  • Movie header atom
    有關(guān)詳細(xì)信息梯皿,請參閱Movie Header Atoms。
  • Movie clipping atom
    有關(guān)詳細(xì)信息县恕,請參閱Clipping Atoms东羹。
  • Track atoms
    有關(guān)軌道atoms及其相關(guān)atoms的詳細(xì)信息,請參閱Track Atoms忠烛。
  • User data atom
    有關(guān)user data atoms的更多信息属提,請參閱User Data Atoms。
  • Color table atom
    有關(guān)color table atom的討論,請參閱Color Table Atoms冤议。
  • Compressed movie atom
    有關(guān)compressed movie atom的討論斟薇,請參閱Compressed Movie Resources。
    -Reference movie atom
    有關(guān)reference movie atoms的討論恕酸,請參閱Reference Movies堪滨。

Movie Profile Atom

?? 注意:profile atoms在QuickTime文件格式中已棄用。 以下信息旨在記錄包含profile atoms的現(xiàn)有內(nèi)容尸疆,不應(yīng)用于新開發(fā)椿猎。

movie profile atom總結(jié)了movie的特征和復(fù)雜性惶岭,例如所需的編解碼器和最大比特率寿弱,以幫助播放器應(yīng)用或設(shè)備快速確定他們是否具有播放movie的必要資源。

movie的特征通常包括movie的最大視頻和音頻比特率按灶,音頻和視頻編解碼器類型的列表症革,movie的視頻尺寸以及任何適用的MPEG-4配置文件和級別。 這是也可以通過更詳細(xì)地檢查movie文件的內(nèi)容而獲得的所有信息鸯旁。 此摘要旨在允許應(yīng)用程序或設(shè)備快速確定他們是否可以播放movie噪矛。 它不打算作為movie中其他地方找不到的信息的容器,不應(yīng)該用作單獨(dú)的一個铺罢。

?? 注意:實際上艇挨,不出現(xiàn)在profile atom中的特征并不意味著它不在movie中。 profile atom本身可以不存在韭赘,或者可以僅列出movie特征集的子集缩滨。 profile atom中列出的特征都是存在的,但列表不一定是完整的泉瞻。

創(chuàng)建profile atom時脉漏,可以省略movie中存在的某些要素,但需要完全指定profile atom中包含的任何要素袖牙。例如侧巨,包含視頻的movie在profile atom中可以具有或可以不具有視頻編解碼器類型特征,但是如果在profile atom中包括任何視頻編解碼器類型特征鞭达,則必須在profile atom中列出每個所需的視頻編解碼器司忱。

movie profile atom是profile atom('prfl'),其父結(jié)點是movie atom畴蹭。這與軌道profile atom不同坦仍,其父結(jié)點是track atom。在兩種情況下撮胧,profile atom的結(jié)構(gòu)是相同的桨踪,但是movie profile atom的內(nèi)容將movie作為一個整體描述,而軌道profile atom的內(nèi)容特定于某個軌道芹啥。

profile atom包含一個特征列表锻离。在movie profile atom中铺峭,這些特征將movie作為一個整體進(jìn)行了總結(jié)。在軌道profile atom中汽纠,這些特征描述特定軌道卫键。

特征列表中的每個條目由四個32位字段組成:

  • 第一個字段保留,必須設(shè)置為零虱朵。
  • 第二個字段是part-ID莉炉,它將特征定義為特定brand的或通用的。特定brand的特征特定于特定brand碴犬。通用特征可以在使用profile atom的任何文件類型中找到絮宁。通用特征part-ID具有四個ASCII空格(0x20202020)。brand-specific的功能具有part-ID服协,它是該文件類型的Compatible_Brand代碼之一绍昂,如file type atom('ftyp')中所指定。例如偿荷,QuickTime-specific的part-ID是“qt ”窘游。然而,本文檔中描述的所有特征都是通用的跳纳。
  • 第三個字段是特征碼或名稱忍饰,一個32位無符號整型,通常最好解釋為四個ASCII字符寺庄。如:最大視頻比特率特征具有特征碼或名稱“mvbr”艾蓝。允許使用零特征代碼值(0x00000000,而不是四個ASCII零字符)作為一個或多個名稱/值對中的占位符铣揉。讀者應(yīng)忽略零值的特征碼饶深。
  • 第四個字段是值,它也是一個32位字段逛拱。該值可以是有符號或無符號整數(shù)敌厘,或定點值,或包含子字段朽合,或由打包數(shù)組組成;它僅可以關(guān)于特定特征來解釋俱两。

有關(guān)profile atoms的結(jié)構(gòu)和內(nèi)容的詳細(xì)信息,請參閱Profile Atom Guidelines曹步。

Movie Header Atoms

您使用movie header atom來指定整個QuickTime movie的特征宪彩。 該atom中包含的數(shù)據(jù)定義了整個QuickTime movie的特征,例如時間尺度和持續(xù)時間讲婚。 它的atom類型值為'mvhd'尿孔。

圖 2-3 顯示了movie header atom的布局。 movie header atom是葉子atom。

圖 2-3 The layout of a movie header atom

您可以通過指定以下數(shù)據(jù)元素來定義movie header atom活合。

  • Size
    一個32位整數(shù)雏婶,指定此movie header atom中的字節(jié)數(shù)。
  • Type
    標(biāo)識atom類型的32位整數(shù);必須設(shè)置為“mvhd”白指。
  • Version
    一個字節(jié)留晚,該movie header atom的規(guī)范版本。
  • Flags
    為未來movie header flags使用的三個字節(jié)的空間告嘲。
  • Creation time
    一個32位整數(shù)错维,指定創(chuàng)建movie atom時的日期和時間(從1904年1月1日午夜起的秒數(shù))。強(qiáng)烈建議使用協(xié)調(diào)世界時(UTC)指定此值橄唬。
  • Modification time
    一個32位整數(shù)赋焕,用于指定更改movie atom時的日期和時間(從1904年1月1日午夜起的秒數(shù))。強(qiáng)烈建議使用協(xié)調(diào)世界時(UTC)指定此值轧坎。
  • Time scale
    指示此movie的時間刻度的時間值宏邮,即在其時間坐標(biāo)系中每秒通過的時間單位的數(shù)量泽示。例如缸血,以六十分之一秒測量時間的時間坐標(biāo)系具有60的時間標(biāo)度。
  • Duration
    以時間刻度單位表示movie持續(xù)時間的時間值械筛。請注意捎泻,此屬性來自movie的track。此字段的值對應(yīng)于電影中最長track的持續(xù)時間埋哟。
  • Preferred rate
    指定播放此movie的速率的32位定點數(shù)笆豁。值1.0表示正常速率。
  • Preferred volume
    一個16位的定點數(shù)字赤赊,指定播放此電影的聲音的音量闯狱。值1.0表示滿音量。
  • Reserved
    保留供Apple使用的十個字節(jié)抛计。設(shè)置為0哄孤。
  • Matrix structure
    與這部movie相關(guān)的矩陣結(jié)構(gòu)。矩陣顯示如何將點從一個坐標(biāo)空間映射到另一個吹截。有關(guān)如何在QuickTime中使用顯示矩陣的討論瘦陈,請參見Matrices
  • Preview time
    movie中預(yù)覽開始的時間值波俄。
  • Preview duration
    以影片時間縮放單位預(yù)覽movie的持續(xù)時間晨逝。
  • Poster time
    movie海報的時間的時間值。
  • Selection time
    當(dāng)前選擇的開始時間的時間值懦铺。
  • Selection duration
    影片時間刻度單位中當(dāng)前選擇的持續(xù)時間捉貌。
  • Current time
    movie中當(dāng)前時間位置的時間值。
  • Next track ID
    一個32位整數(shù),指示用于添加到此movie的下一曲目(track)的曲目ID號的值趁窃。請注意苍匆,0不是有效的曲目ID值。

?? 注意:創(chuàng)建和修改日期應(yīng)使用協(xié)調(diào)世界時(UTC)設(shè)置棚菊。 在QuickTime文件格式的先前版本中浸踩,未指定這個,并且這些字段通常設(shè)置為創(chuàng)建電影的時區(qū)的本地時間统求。

Color Table Atoms

Color table atoms定義了在僅支持256種顏色的設(shè)備上顯示movie的首選顏色列表检碗。 該列表最多可以包含256種顏色。 這些可選atoms類型值為'ctab'码邻。 color table atom包含Macintosh顏色表數(shù)據(jù)結(jié)構(gòu)折剃。

圖 2-4 顯示了color table atom的布局。

圖 2-4 The layout of a color table atom

color table atom包含以下數(shù)據(jù)元素像屋。

  • Size
    32位整數(shù)怕犁,指定此color table atom中的字節(jié)數(shù)。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“ctab”己莺。
  • Color table seed
    必須設(shè)置為0的32位整數(shù)奏甫。
  • Color table flags
    必須設(shè)置為0x8000的16位整數(shù)。
  • Color table size
    一個16位整數(shù)凌受,指示后面的color array中的顏色數(shù)阵子。 這是一個零相對值; 將此字段設(shè)置為0表示數(shù)組中有一種顏色。
  • Color array
    顏色數(shù)組胜蛉。 每種顏色由四個無符號的16位整數(shù)組成挠进。 第一個整數(shù)必須設(shè)置為0,第二個是紅色值誊册,第三個是綠色值领突,第四個是藍(lán)色值。

User Data Atoms

user data atoms允許您定義和存儲與QuickTime對象相關(guān)聯(lián)的數(shù)據(jù)案怯,例如movie 'moov'君旦,track 'trak'或media 'mdia'。這也包括QuickTime尋找的信息殴泰,例如版權(quán)信息或movie是否應(yīng)該循環(huán)于宙,以及由應(yīng)用程序提供的任意信息 - QuickTime完全忽略的。

其直接父結(jié)點是movie atom的user data atom包含與movie作為整體相關(guān)的數(shù)據(jù)悍汛。其父結(jié)點是軌道atom的user data atom包含與該特定軌道相關(guān)的信息捞魁。 QuickTime movie文件可以包含許多user data atoms,但是只允許一個user data atom作為任何給定movie atom或軌道atom的直接子節(jié)點离咐。

user data atom的atom類型為“udta”谱俭。在user data atom內(nèi)的是描述每條用戶數(shù)據(jù)的atoms列表奉件。用戶數(shù)據(jù)提供了一種擴(kuò)展存儲在QuickTime movie中的信息的簡單方法。例如昆著,user data atom可以存儲movie的窗口位置县貌,回放特性或創(chuàng)建信息。

本節(jié)介紹QuickTime可識別的 data atoms凑懂。您可以創(chuàng)建自己的應(yīng)用程序可識別的新的data atom類型茵宪。應(yīng)用程序應(yīng)忽略它們不能識別的任何data atom類型芳肌。

圖2-5 顯示了user data atom的布局桥滨。

圖 2-5 The layout of a user data atom

user data atom包含以下數(shù)據(jù)元素芽唇。

  • Size
    一個32位整數(shù),指定此user data atom中的字節(jié)數(shù)脓豪。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“udta”巷帝。
  • User data list
    格式化為一系列atom的用戶數(shù)據(jù)列表。 用戶數(shù)據(jù)列表中的每個數(shù)據(jù)元素包含大小和類型信息及其有效載荷數(shù)據(jù)扫夜。 由于歷史原因楞泼,數(shù)據(jù)列表可選地由設(shè)置為0的32位整數(shù)終止。如果您正在編寫一個程序以讀取user data atom笤闯,則應(yīng)允許終止0堕阔。但是,如果您正在編寫一個程序來創(chuàng)建user data atom望侈,可以安全地忽略終止0印蔬。
    表 2-1 列出了當(dāng)前定義的列表條目類型
List entry type Description For Sorting
'?arg' Name of arranger
'?ark' Keywords for arranger X
'?con' Keywords for composer X
'?com' Name of composer
'?cpy' Copyright statement
'?day' Date the movie content was created
'?dir' Name of movie’s director
'?ed1' to '?ed9' Edit dates and descriptions
'?fmt' Indication of movie format (computer-generated, digitized, and so on)
'?inf' Information about the movie
'?isr' ISRC code
'?lab' Name of record label
'?lal' URL of record label
'?mak' Name of file creator or maker
'?mal' URL of file creator or maker
'?nak' Title keywords of the content X
'?nam' Title of the content
'?pdk' Keywords for producer X
'?phg' Recording copyright statement, normally preceded by the symbol
'?pre' Name of producer
'?prf' Names of performers
'?prk' Keywords of main artist and performer X
'?prl' URL of main artist and performer
'?req' Special hardware and software requirements
'?snk' Subtitle keywords of the content X
'?snm' Subtitle of content
'?src' Credits for those who provided movie source content
'?swf' Name of songwriter
'?swk' Keywords for songwriter X
'?swr' Name and version number of the software (or hardware) that generated this movie
'?wrt' Name of movie’s writer
'AllF' Play all frames—byte indicating that all frames of video should be played, regardless of timing
'hinf' Hint track information—statistical data for real-time streaming of a particular track. For more information, see Hint Track User Data Atom.
'hnti' Hint info atom—data used for real-time streaming of a movie or a track. For more information, see Movie Hint Info Atom and Hint Track User Data Atom.
'name' Name of object
'tnam' Localized track name optionally present in Track user data. The payload is described in Track Name.
'tagc' Media characteristic optionally present in Track user data—specialized text that describes something of interest about the track. For more information, see Media Characteristic Tags.
'LOOP' Long integer indicating looping style. This atom is not present unless the movie is set to loop. Values are 0 for normal looping, 1 for palindromic looping.
'ptv ' Print to video—display movie in full screen mode. This atom contains a 16-byte structure, described in Print to Video (Full Screen Mode).
'SelO' Play selection only—byte indicating that only the selected area of the movie should be played
'WLOC' Default window location for movie—two 16-bit values, {x,y}

當(dāng)顯示文本不具有預(yù)定排序順序時(例如,當(dāng)排序取決于上下文含義時脱衙,在東方語言中),使用標(biāo)記為“keywords”并且標(biāo)記為“For Sorting”的用戶數(shù)據(jù)項例驹。 這些關(guān)鍵字可以按算法排序以按正確的順序放置相應(yīng)的項目捐韩。

窗口位置,循環(huán)鹃锈,僅播放選擇荤胁,播放所有幀,和打印到video這些atoms控制QuickTime顯示movie的方式屎债。 只有當(dāng)user data atom的直接父節(jié)點是一個movie atom('moov')時仅政,這些atom才被解釋。 如果它們作為軌道atom的用戶數(shù)據(jù)的一部分被包括盆驹,它們被忽略圆丹。

User Data Text Strings and Language Codes(用戶數(shù)據(jù)文本字符串和語言代碼)

類型以?字符(ASCII 169)開頭的所有用戶數(shù)據(jù)列表條目都被定義為國際文本。這些列表條目必須包含具有相關(guān)語言代碼的文本字符串列表躯喇。通過存儲相同文本的多個版本辫封,單個用戶數(shù)據(jù)文本項可以包含不同語言的翻譯硝枉。

文本字符串列表使用一個小的整數(shù)atom格式,它與QuickTime atom格式相同倦微,除了它使用16位的值來表示大小和類型妻味,而不是32位的值。第一個值是字符串的大小欣福,包括大小和類型责球,第二個值是字符串的語言代碼。

user data text strings可以使用Macintosh文本編碼或Unicode文本編碼拓劝。語言代碼的格式?jīng)Q定了文本編碼格式棕诵。 Macintosh語言代碼后面是Macintosh編碼的文本。如果使用規(guī)范ISO 639-2/T中列出的ISO語言代碼指定語言代碼凿将,則文本使用Unicode文本編碼校套。當(dāng)使用Unicode時,文本為UTF-8牧抵,除非它以字節(jié)順序標(biāo)記(BOM笛匙,0xFEFF)開頭,在這種情況下犀变,文本為UTF-16妹孙。 BOM和UTF-16文本都應(yīng)該是big-endian。相同文本的多個版本可以使用不同的編碼方案获枝。

?? 重要:小于0x400的語言代碼值為Macintosh語言代碼蠢正。 大于或等于0x400的語言代碼值為ISO語言代碼。 該規(guī)則的例外是語言代碼0x7FFF省店,它表示未指定的Macintosh語言嚣崭。

ISO語言代碼是三字符代碼。 為了適應(yīng)16位字段懦傍,字符必須被打包成三個5位子字段雹舀。 該包在“ISO Language Codes”中描述。

Media Characteristic Tags(媒體特征標(biāo)簽)

軌道('trak')atom的user data atom可以包含零個或多個media characteristic tag atoms('tagc')粗俱。

media characteristic tag atom的有效載荷數(shù)據(jù)是指示關(guān)于軌道的有趣的標(biāo)簽说榆。這是一個特殊的字符串,由US-ASCII(7位加上一個清除高位)字符的子集組成寸认,符合以下段落中描述的結(jié)構(gòu)签财。這不是一個C字符串;沒有終止null,所以從atom的大小確定字符數(shù)偏塞。合法字符是字母(A-Z唱蒸,a-z),數(shù)字(0-9)烛愧,破折號( - )油宜,句點(.)掂碱,下劃線(_)和波浪號(?)。

QuickTime文件的任何軌道可以與指示媒體特性的一個或多個標(biāo)簽相關(guān)聯(lián)慎冤。標(biāo)簽表示關(guān)于軌道的有趣的東西疼燥。例如,標(biāo)簽可以指示軌道的目的(它是注釋)蚁堤,軌道的抽象特性(其需要硬件解碼)或軌道包括可讀文本的指示(章節(jié)軌道和字幕軌道都可以是由用戶讀茸碚摺)。

標(biāo)簽的比較區(qū)分大小寫;如果字符串的字節(jié)匹配披诗,則兩個標(biāo)記匹配撬即。不應(yīng)該使用兩種僅區(qū)分大小寫的標(biāo)記字符串,以避免開發(fā)人員或內(nèi)容創(chuàng)建者可能產(chǎn)生混淆呈队。

允許在單個軌道中使用重復(fù)的標(biāo)簽剥槐,但不鼓勵。復(fù)制沒有特殊意義宪摧。

標(biāo)記字符串不是本地化的粒竖,并且意在進(jìn)行機(jī)器解釋;但是,鼓勵記憶字符串几于。

標(biāo)記要么是public或是private:

  • public標(biāo)簽允許廣泛部署共享語義蕊苗。公共標(biāo)簽?zāi)壳坝葾pple定義。
  • private標(biāo)簽可以定義為私人使用沿彭。

標(biāo)記字符串具有以下結(jié)構(gòu):

  • 公共標(biāo)記以前綴“public.”開頭朽砰,后面跟著由句點分隔的一個或多個段。示例(未定義)可能是public.subtitle或public.commentary.director喉刘。

?? 注意:公共標(biāo)記是公開的瞧柔,因為它們已記錄在本規(guī)范中或在Apple API中可用。其他定義的帶有“public.”前綴的標(biāo)簽被禁止;請用私人標(biāo)簽替代饱搏。

  • 私人標(biāo)簽以私人實體的域使用反向DNS命名約定開始非剃。例如,apple.com變?yōu)閏om.apple推沸。這之后是由句點分隔的一個或多個段。示例(未定義)可以是com.apple.this-is-a-tag券坞,com.apple.video.includes-sign-language和org.w3c.html5.referenced-video鬓催。
  • 唯一允許的前綴是“public.”和反向域。所有其他前綴保留供將來使用恨锚。

?? 注意:支持除“public”之外的通用頂級域(如果要分配)宇驾。字符串“public”保留用于表示公共媒體特征標(biāo)簽。

此規(guī)范定義了以下幾個公共媒體特征標(biāo)簽猴伶。其他公共和私人標(biāo)簽可以在規(guī)范之外定義;無法識別的標(biāo)記應(yīng)該被忽略课舍。

  • public.auxiliary-content(對所有媒體類型有效)
    表示曲目(track)的內(nèi)容已被內(nèi)容作者標(biāo)記為對媒體文件的呈現(xiàn)的輔助塌西。例如,評論音頻或字幕軌道可以用這個標(biāo)簽標(biāo)記筝尾,因為它不是節(jié)目內(nèi)容捡需。如果此標(biāo)簽不存在,則如果軌道是備用組的成員筹淫,則軌道仍然可以被推斷為用該特性標(biāo)記站辉,并且使用“Track Exclude From Autoselection atom”將該軌道從自動選擇中排除;請參閱Track Exclude From Autoselection atom。
  • public.accessibility.transcribes-spoken-dialog(適用于可讀媒體)
    表示該軌道包括以該軌道的語言環(huán)境的語言的可讀內(nèi)容损姜,其轉(zhuǎn)錄語音對話饰剥。
  • public.accessibility.describes-music-and-sound(適用于可讀媒體)
    表示軌道包含以軌道區(qū)域設(shè)置語言描述的可讀內(nèi)容,用于描述發(fā)生在節(jié)目音頻中的音頻和音頻效果摧阅。
  • public.accessibility.describes-video(適用于可聽媒體)
    表示軌道包括描述演示文稿的視覺部分的可聽內(nèi)容汰蓉。
    public.accessibility.describes-video (valid for audible media)
    Indicates that the track includes audible content that describes the visual portion of the presentation.
  • public.easy-to-read(適用于易讀媒體)
    表示軌道以其已指定語言環(huán)境的語言提供易讀內(nèi)容,該語言已經(jīng)編輯以便于閱讀棒卷。
Track Name

movie atom的user data atom可以包含track name atom('tnam')顾孽。
track name atom的有效載荷數(shù)據(jù)由以下數(shù)據(jù)組成。

  • 保留:必須設(shè)置為零的32位整數(shù)娇跟。
  • 語言:16位整數(shù)岩齿,保存一個打包的ISO 639-2/T代碼,如User Data Text Strings and Language Codes中描述的苞俘。
  • 名稱:以空字符結(jié)尾的UTF-8或UTF-16字符串保存曲目名稱(track name)盹沈。 如果這是一個UTF-16字符串,字符串必須以字節(jié)順序標(biāo)記(0xFEFF)開頭吃谣。

軌道可以具有多個具有不同語言代碼的“tnam”atom乞封。 通常,每個軌道具有與軌道內(nèi)容相同的語言的單個“tnam”atom是足夠的岗憋。 備選軌道也可以具有'tnam' atoms; 它們的存在意味著該名稱是軌道的好的用戶可讀標(biāo)簽肃晚。

Print to Video (Full Screen Mode)

movie atom的user data atom可以包含print to video atom('ptv ')。注意仔戈,第四個字符是一個ASCII(space)(0x20)关串。如果存在print to video atom,QuickTime以全屏模式播放movie监徘,沒有窗口晋修,沒有可見的控制器。未被movie占據(jù)的屏幕的任何部分被清除為黑色凰盔。用戶必須按Esc(Escape)鍵退出全屏模式墓卦。

這個atom通常被暫時添加和刪除以控制用于單個演示的movie的顯示模式,但是它也可以被存儲為永久movie文件的一部分户敬。

print to video atom的有效載荷數(shù)據(jù)包括以下內(nèi)容落剪。

  • Display size
    指示movie的顯示大小的16位小端整數(shù):0表示movie應(yīng)以其正常大小播放; 1表示movie應(yīng)以雙倍大小播放; 2表示電影應(yīng)以半尺寸播放; 3表示電影應(yīng)該縮放以填滿屏幕; 4表示應(yīng)當(dāng)以其當(dāng)前大小播放電影(該最后的值通常在print to video atom被暫時插入并且movie已經(jīng)臨時調(diào)整時使用)睁本。
  • Reserved1
    一個16位整數(shù),其值應(yīng)為0忠怖。
  • Reserved2
    一個16位整數(shù)呢堰,其值應(yīng)為0。
  • Slide show
    一個8位布爾值脑又,其值為1暮胧,用于幻燈片放映。在幻燈片播放模式下问麸,每次按下向右箭頭鍵往衷,movie前進(jìn)一幀。音頻靜音严卖。
  • Play on open
    8位布爾值席舍,其值通常為1,表示movie在打開時應(yīng)播放哮笆。由于在全屏模式下沒有可見的控制器来颤,應(yīng)用程序應(yīng)始終將此字段設(shè)置為1,以防止用戶混淆稠肘。

Track Atoms

track atom定義了movie的單個軌道福铅。 movie可能由一個或多個曲目(tracks)組成。 每個軌道獨(dú)立于movie中的其他軌道并且攜帶其自己的時間和空間信息项阴。 每個軌道atom包含其相關(guān)聯(lián)的媒體atom滑黔。
軌道專門用于以下目的:

  • 包含媒體數(shù)據(jù)引用和說明(媒體軌道)。
  • 要包含修飾符軌道(補(bǔ)間等)环揽。
  • 包含流協(xié)議的包化信息(提示軌道)略荡。 提示軌道可以包含對媒體樣本數(shù)據(jù)或媒體樣本數(shù)據(jù)的副本的引用。 有關(guān)提示軌道的詳細(xì)信息歉胶,請參閱Hint Media汛兜。

?? 注意:QuickTime movie不能只包括提示軌道或修改軌道; 必須至少有一個媒體軌道。 此外通今,不能從提示的movie中刪除媒體軌道粥谬,即使提示軌道包含媒體樣本數(shù)據(jù)的副本 - 除了提示軌道,整個未提示的電影必須保留辫塌。

圖 2-6 顯示了track atom的布局帝嗡。 軌道atom的atom類型值為'trak'。 軌道atom需要track header atom('tkhd')和media atom('mdia')璃氢。 其他子atom是可選的,并且可以包括track clipping atom('clip')狮辽,track matte atom('matt')一也,edit atom('edts')巢寡,track reference atom('tref'),track load settings atom('load')椰苟,track input map atom('imap')和user data atom('udta')抑月。

?? 注意圖2-6包含可選的track profile atom'prfl'。 軌跡配置文件atom在當(dāng)前版本的QuickTime中已棄用舆蝴,但可能存在于現(xiàn)有的QuickTime文件中谦絮。 這里的包含旨在記錄包含profile atom的現(xiàn)有內(nèi)容,它們不應(yīng)當(dāng)用于新的開發(fā)洁仗。

圖 2-6 The layout of a track atom

track atoms包含以下數(shù)據(jù)元素层皱。

  • Size
    一個32位整數(shù),指定此軌道atom中的字節(jié)數(shù)赠潦。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“trak”叫胖。
  • Track profile atom
    有關(guān)詳細(xì)信息,請參閱Track Profile Atom她奥。
  • Track header atom
    有關(guān)詳細(xì)信息瓮增,請參閱Track Header Atoms。
  • Track aperture mode dimensions atom
    有關(guān)詳細(xì)信息哩俭,請參閱Track Aperture Mode Dimension Atoms绷跑。
  • Clipping atom
    有關(guān)詳細(xì)信息,請參閱Clipping Atoms凡资。
  • Track matte atom
    有關(guān)詳細(xì)信息砸捏,請參閱Track Matte Atoms。
  • Edit atom
    有關(guān)詳情讳苦,請參閱Edit Atoms带膜。
  • Track reference atom
    有關(guān)詳細(xì)信息,請參閱Track Reference Atoms鸳谜。
  • Track exclude from autoselection atom
    有關(guān)詳細(xì)信息膝藕,請參閱Track Exclude From Autoselection Atoms。
  • Track load settings atom
    有關(guān)詳細(xì)信息咐扭,請參閱Track Load Settings Atoms芭挽。
  • Track input map atom
    有關(guān)詳細(xì)信息,請參閱Track Input Map Atoms蝗肪。
  • Media atom
    有關(guān)詳細(xì)信息袜爪,請參閱Media Atoms。
  • User-defined data atom
    有關(guān)詳細(xì)信息薛闪,請參閱User Data Atoms辛馆。

Track Profile Atom

?? 注意:profile atoms在QuickTime文件格式中已棄用。 以下信息旨在記錄包含profile atom的現(xiàn)有內(nèi)容,不應(yīng)用于新開發(fā)昙篙。

profile atom可以是movie atoms或track atoms的子結(jié)點腊状。 有關(guān)profile atoms的詳細(xì)信息,請參閱Movie Profile Atom苔可。

Track Header Atoms

track header atom指定movie內(nèi)單個軌道的特性缴挖。 track header atom包含指定字節(jié)數(shù)的size字段和指示數(shù)據(jù)格式(由atom類型“tkhd”定義)的type字段。

圖 2-7 顯示了track header atom的結(jié)構(gòu)焚辅。

圖 2-7 The layout of a track header atom

track header atom包含track的track特性映屋,包括時間,空間和音量信息同蜻。

track header atom包含以下數(shù)據(jù)元素棚点。

  • Size
    一個32位整數(shù),指定此track header atom中的字節(jié)數(shù)埃仪。

  • Type
    標(biāo)識原子類型的32位整數(shù);此字段必須設(shè)置為“tkhd”乙濒。

  • Version
    1字節(jié),說明該track header的版本卵蛉。

  • Flags
    為track header flags保留的三個字節(jié)颁股。這些標(biāo)志指示如何在movie中使用track。以下標(biāo)志有效(當(dāng)設(shè)置為1時傻丝,所有標(biāo)志都被使能)甘有。

  • Track enabled
    表示track已啟用。標(biāo)志值為0x0001葡缰。

  • Track in movie
    表示在track中使用曲目(track)亏掀。標(biāo)志值為0x0002。

  • Track in preview
    表示在movie預(yù)覽中使用曲目(track)泛释。標(biāo)志值為0x0004滤愕。

  • Track in poster
    表示該曲目(track)在movie的海報中使用。標(biāo)志值為0x0008怜校。

  • Creation time
    一個32位整數(shù)间影,指示創(chuàng)建track header時的日期和時間(以秒為單位,自1904年1月1日起的秒數(shù))茄茁。強(qiáng)烈建議使用協(xié)調(diào)世界時(UTC)指定此值魂贬。

  • Modification time
    一個32位整數(shù),指示track header更改時的日期和時間(以秒為單位裙顽,自1904年1月1日起的秒數(shù))付燥。強(qiáng)烈建議使用協(xié)調(diào)世界時(UTC)指定此值。

  • Track ID
    唯一標(biāo)識track的32位整數(shù)愈犹。不能使用值0键科。

  • Reserved
    保留供Apple使用的32位整數(shù)。將該字段設(shè)置為0。

  • Duration
    指示此曲目的持續(xù)時間(在movie的時間坐標(biāo)系中)的時間值萝嘁。請注意梆掸,此屬性來源于曲目的編輯。此字段的值等于所有軌道編輯的持續(xù)時間的總和牙言。如果沒有編輯列表,則持續(xù)時間是樣本持續(xù)時間的總和怪得,被轉(zhuǎn)換為movie時間刻度咱枉。

  • Reserved
    保留供Apple使用的8字節(jié)值。將該字段設(shè)置為0徒恋。

  • Layer
    一個16位整數(shù)蚕断,指示其track在其movie中的空間優(yōu)先級。 QuickTime Movie Toolbox使用此值來確定track如何重疊入挣。具有較低layer值的軌道顯示在具有較高layer值的軌道前面亿乳。

  • Alternate group
    一個16位整數(shù),用于標(biāo)識包含另一個數(shù)據(jù)的movie tracks的集合径筏。相同的標(biāo)識符出現(xiàn)在組中其他track的每個“tkhd”atom中葛假。 QuickTime從播放movie時要使用的組中選擇一個曲目。該選擇可以基于諸如回放質(zhì)量滋恬,語言或計算機(jī)的能力的考慮聊训。
    值為零表示軌道不在備用軌道組中。
    使用備用曲目的最常見原因是提供不同語言的相同曲目的版本恢氯。圖 2-8 顯示了幾個軌道的示例带斑。視頻軌道的備用組ID為0,表示它不在備用組中(并且其語言代碼為空;通常勋拟,視頻軌道應(yīng)具有相應(yīng)的語言標(biāo)簽)勋磕。三個聲音軌道具有相同的組ID,因此它們形成一個替代組敢靡,并且字幕軌道具有不同的組ID挂滓,因此它們形成另一個替換組。軌道在實際的QuickTime文件中不相鄰;這只是示例軌道字段值的列表醋安。

    圖 2-8 Example of alternate tracks in two alternate groups

  • Volume
    一個16位的定點值杂彭,表示該音軌的以多大的聲音播放。 值1.0表示正常音量吓揪。

  • Reserved
    保留供Apple使用的16位整數(shù)亲怠。 將此字段設(shè)置為0。

  • Matrix structure
    與此軌道相關(guān)聯(lián)的矩陣結(jié)構(gòu)柠辞。 有關(guān)矩陣結(jié)構(gòu)的說明团秽,請參見圖2-3。

  • Track width
    一個32位定點數(shù),用于指定此軌道的寬度(以像素為單位)习勤。

  • Track height
    指示此軌道的高度的32位定點數(shù)踪栋,以像素為單位。

Track Exclude From Autoselection Atoms

一些替代軌道包含除主要內(nèi)容的直接翻譯(或非翻譯書寫形式)之外的東西图毕。評論軌道就是一個例子夷都。這些軌道不應(yīng)自動選擇。在軌道中存在Track Exclude From Autoselection atom表示不應(yīng)該自動選擇該軌道予颤。

這種軌道應(yīng)該具有用戶可讀的名稱囤官,以幫助用戶識別軌道的目的。這些名稱存儲在“trak” atom內(nèi)的user data('udta')atom內(nèi)的一個或多個軌道名稱('tnam')atom中蛤虐,每個atom被翻譯成不同的語言党饮。

Track Exclude From Autoselection atom的類型是'txas'。這個atom驳庭,如果使用刑顺,必須在“tkhd” atom之后的某處。

Track Exclude From Autoselction atoms包含以下數(shù)據(jù)元素饲常。

  • Size
    一個32位整數(shù)蹲堂,指定track exclude from autoselection atom中的字節(jié)數(shù)。這必須是8不皆,因為此atom必須不包含數(shù)據(jù)贯城。
  • Type
    標(biāo)識原子類型的32位整數(shù);此字段必須設(shè)置為“txas”。

Track Aperture Mode Dimension Atoms

QuickTime Movie中的視頻軌道可以通過圖像描述擴(kuò)展發(fā)出清晰的光圈和像素寬高比信息霹娄。清潔光圈定義要顯示的編碼像素的部分能犯。像素寬高比是編碼像素的寬高比。概念上犬耻,基于像素高寬比對編碼像素進(jìn)行解壓縮踩晶,拉伸(或收縮),并且根據(jù)清潔孔徑裁剪額外像素枕磁。

?? 注意:QuickTime軌道在track header dimensions中定義其內(nèi)容的簡單尺寸渡蜻。在沒有軌道孔徑模式維度原子的情況下,軌道頭部中的尺寸用于所有模式计济。

考慮到這種上下文茸苇,記錄在圖像描述中的尺寸定義了編碼像素(編碼尺寸)的尺寸。實際顯示的是應(yīng)用像素寬高比和凈光圈(顯示尺寸)的結(jié)果沦寂。

盡管應(yīng)用清潔孔徑和像素寬高比的結(jié)果是用于最終顯示的学密,但是存在為了各種不同的有用的目的而顯示存在于內(nèi)容中的所有像素。解析QuickTime影片的讀者需要允許這些不同顯示模式的信息传藏,以提供這種靈活性:

  • Clean Mode
    在此模式下腻暮,清潔光圈和像素寬高比都會應(yīng)用腌乡。軌道的尺寸等于純凈光圈尺寸洋侨,其等于顯示尺寸(具有一致的內(nèi)容)米死。
  • Production Mode
    此模式適用像素寬高比欺冀,但不適用于清晰光圈。以正確的縱橫比呈現(xiàn)圖像试幽,但是將呈現(xiàn)存在于源材料中的圖像之外的額外像素筝蚕。軌道尺寸等于應(yīng)用像素寬高比的結(jié)果。
  • Classic Mode
    此模式顯示圖像抡草,而不應(yīng)用像素寬高比或清晰光圈饰及。使用track header dimensions來顯示圖像,這意味著如果編碼的維度不同康震,則解壓縮的圖片被縮放到track header dimensions。
  • Encoded Pixels
    在該模式下宾濒,編碼像素完整顯示腿短。在此模式下,軌道尺寸等于編碼尺寸绘梦。不進(jìn)行縮放或變換橘忱。

這些呈現(xiàn)模式中的每一者所需的信息在optional track aperture mode dimensions atoms中表示。

?? 注意:在QuickTime 7之前構(gòu)建的舊應(yīng)用程序?qū)⒗^續(xù)使用存儲在軌道header中的dimension值卸奉。

Track Aperture Mode Dimensions Atom

一個container atom钝诚,其以三個所需atom的形式存儲用于視頻校正的信息。 該atom可選地包括在軌道atom中榄棵。 Track Aperture Mode Dimensions atom的類型是“tapt”凝颇。

*** 圖 2-9*** 顯示了track aperture mode dimensions atom的布局。

圖 2-9 The layout of a track aperture mode dimensions atom
  • Size
    一個32位整數(shù)疹鳄,指定track aperture mode dimensions atom中的字節(jié)數(shù)拧略。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“tapt”。
  • Track Clean Aperture Dimensions atom
    請參閱Track Clean Aperture Dimensions atom
  • Track Production Aperture Dimensions atom
    請參閱Track Production Aperture Dimensions atom
  • Track Encoded Pixels Dimensions atom
    請參閱Track Encoded Pixels Dimensions atom
Track Clean Aperture Dimensions Atom

這個atom攜帶軌道的clean aperture的像素尺寸瘪弓。 track clean aperture dimensions atom的類型是'clef'垫蛆。

圖 2-10 顯示了track clean aperture dimensions atom的布局。

圖 2-10 The layout of a track clean aperture dimensions atom.jpg

  • Size
    一個32位整數(shù)腺怯,指定track aperture mode dimensions atom中的字節(jié)數(shù)袱饭。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“clef”。
  • Version
    該atom版本的1字節(jié)規(guī)范呛占。
  • Flags
    為atom標(biāo)志保留的三個字節(jié)虑乖。
  • Width
    32位定點數(shù),用于指定track clean aperture的寬度(以像素為單位)栓票。
  • Height
    32位定點數(shù)决左,用于指定track clean aperture的高度(以像素為單位)愕够。
Track Production Aperture Dimensions Atom

該atom攜帶軌道的production aperture的像素尺寸。 track production aperture dimensions atom的類型是“prof”佛猛。

圖 2-11 顯示了track production aperture dimensions atom的布局惑芭。

圖 2-11 The layout of a track production aperture dimensions atom
  • Size
    一個32位整數(shù),指定track aperture mode dimensions atom中的字節(jié)數(shù)继找。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“prof”遂跟。
  • Version
    該atom版本的1字節(jié)規(guī)范。
  • Flags
    為atom標(biāo)志保留的三個字節(jié)婴渡。
  • Width
    一個32位定點數(shù)幻锁,用于指定track production aperture的寬度(以像素為單位)。
  • Height
    32位定點數(shù)边臼,用于指定track production aperture的高度(以像素為單位)哄尔。
Track Encoded Pixels Dimensions Atom

該atom攜帶軌道編碼像素的像素尺寸。 track encoded pixels dimensions atom的類型是'enof'柠并。
圖 2-12 顯示了這個atom的布局岭接。

圖 2-12 The layout of a track encoded pixels dimensions atom

  • Size
    一個32位整數(shù),指定track aperture mode dimensions atom中的字節(jié)數(shù)臼予。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為'enof'鸣戴。
  • Version
    該atom版本的1字節(jié)規(guī)范。
  • Flags
    為atom標(biāo)志保留的三個字節(jié)粘拾。
  • Width
    32位定點數(shù)窄锅,指定以像素為單位的軌道編碼像素尺寸的寬度。
  • Height
    32位定點數(shù)缰雇,指定以像素為單位的軌道編碼像素尺寸的高度入偷。

Clipping Atoms

Clipping atoms指定movie和軌道的剪輯區(qū)域。 Clipping atom的atom類型值為'clip'寓涨。

圖 2-13 顯示了這個atom的布局盯串。

圖 2-13 The layout of a clipping atom

Clipping atoms包含以下數(shù)據(jù)元素。

  • Size
    一個32位整數(shù)戒良,指定此clipping atom中的字節(jié)數(shù)体捏。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“clip”。
  • Clipping region atom
    請參閱Clipping Region Atoms糯崎。

Clipping Region Atoms

Clipping Region Atoms包含指定clipping region的數(shù)據(jù)几缭,包括其大小,邊界框和區(qū)域沃呢。 Clipping region atoms具有atom類型值“crgn”年栓。

Clipping region atom的布局如圖 2-13 所示。

Clipping region atom包含以下數(shù)據(jù)元素薄霜。

  • Size
    指定此clipping region atom中的字節(jié)數(shù)的32位整數(shù)某抓。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“crgn”纸兔。
  • Region size
    region size,region boundary box和clipping region data字段構(gòu)成QuickDraw區(qū)域否副。
  • Region boundary box
    region size汉矿,region boundary box和clipping region data字段構(gòu)成QuickDraw區(qū)域。
  • Clipping region data
    region size备禀,region boundary box和clipping region data字段構(gòu)成QuickDraw區(qū)域洲拇。

Track Matte Atoms

Track matte atoms用于在顯示軌跡圖像時可視地混合軌跡圖像。

track matte atoms的atom類型值為'matt'曲尸。

圖 2-14 顯示了track matte atoms的布局赋续。

圖 2-14 The layout of a track matte atom

track matte atoms包含以下數(shù)據(jù)元素。

  • Size
    一個32位整數(shù)另患,指定此track matte atom中的字節(jié)數(shù)纽乱。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“matt”。
  • Compressed matte atom
    實際的無光澤數(shù)據(jù)昆箕。有關(guān)詳細(xì)信息迫淹,請參閱Compressed Matte Atoms for details。

Compressed Matte Atoms

Compressed matte atom指定圖像描述結(jié)構(gòu)和與特定matte atom相關(guān)聯(lián)的遮罩?jǐn)?shù)據(jù)为严。 Compressed matte atoms的atom類型值為'kmat'。

Compressed matte atoms的布局如圖 2-14所示肺稀。

Compressed matte atoms包含以下數(shù)據(jù)元素第股。

  • Size
    一個32位整數(shù),指定此compressed matte atom中的字節(jié)數(shù)话原。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“kmat”夕吻。
  • Version
    該compressed matte atom的版本的1字節(jié)規(guī)范。
  • Flags
    標(biāo)志的三個字節(jié)的空間繁仁。 將此字段設(shè)置為0涉馅。
  • Matte image description structure
    與該遮片數(shù)據(jù)相關(guān)聯(lián)的圖像描述結(jié)構(gòu)。 圖像描述包含控制如何使用遮罩?jǐn)?shù)據(jù)的詳細(xì)信息黄虱。 有關(guān)圖像描述的詳細(xì)信息稚矿,請參閱Video Sample Description
  • Matte data
    壓縮的matte數(shù)據(jù)捻浦,其長度可變晤揣。

Edit Atoms

您可以使用edit atoms來定義要用于為movie建立軌道的媒體部分。 edit本身包含在edit list table中朱灿,該表由每個段的時間偏移量和持續(xù)時間值組成昧识。 Edit atoms的原子類型值為'edts'。

圖 2-15顯示了edit atom的布局盗扒。

在沒有edit list的情況下跪楞,軌道的呈現(xiàn)立即開始缀去。 空的edit用于補(bǔ)償曲目的開始時間。

?? 注意:如果缺少edit atom或edit list atom甸祭,則可以假定軌道使用整個媒體缕碎。

圖 2-15 The layout of an edit atom

Edit atoms包含以下數(shù)據(jù)元素。

  • Size
    一個32位整數(shù)淋叶,指定此edit atom中的字節(jié)數(shù)阎曹。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“edts”。
    -Edit list atom
    請參閱Edit List Atoms煞檩。

Edit List Atoms

使用edit list atom(如圖 2-15 所示)可將電影中的時間映射到媒體中的時間处嫌,最終映射到媒體數(shù)據(jù)。 此信息以edit list table表中的條目的形式顯示斟湃,如圖 2-16 所示熏迹。 edit list atoms的atom類型值為'elst'。

edit list atoms包含以下數(shù)據(jù)元素凝赛。

  • Size
    一個32位整數(shù)注暗,指定此edit list atom中的字節(jié)數(shù)。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“elst”墓猎。
  • Version
    該edit list atom的版本的1字節(jié)規(guī)范捆昏。
  • Flags
    標(biāo)志的三個字節(jié)的空間。 將此字段設(shè)置為0毙沾。
  • Number of entries
    一個32位整數(shù)骗卜,用于指定隨后edit list atom中的條目數(shù)。
  • Edit list table
    32位值的數(shù)組左胞,分組為每個包含3個值的條目寇仓。 圖 2-16 顯示了此表中條目的布局。
    圖 2-16 The layout of an edit list table entry

    edit list table表項包含以下元素烤宙。
  • Track duration
    一個32位整數(shù)遍烦,以電影時間單位為單位指定此edit片段的持續(xù)時間。
  • Media time
    包含此edit片段的媒體內(nèi)的開始時間(以媒體時間單位為單位)的32位整數(shù)躺枕。 如果此字段設(shè)置為-1服猪,那么它是空編輯。 曲目中的最后一個編輯應(yīng)該永遠(yuǎn)不是空白編輯屯远。 電影持續(xù)時間和曲目持續(xù)時間之間的任何差異都表示為隱式空白編輯蔓姚。
  • Media rate
    指定播放與此edit片段相對應(yīng)的媒體的相對速率的32位定點數(shù)。 此速率值不能為0或負(fù)數(shù)慨丐。

Track Load Settings Atoms

Track load settings atoms包含指示如何在其電影中使用軌道的信息坡脐。 讀取QuickTime文件的應(yīng)用程序可以使用此信息更高效地處理電影數(shù)據(jù)。 track load settings atoms的atom類型值為'load'房揭。

圖 2-17 顯示了這個atom的布局备闲。

圖 2-17 The layout of a track load settings atom

Track load settings atoms包含以下數(shù)據(jù)元素晌端。

  • Size
    一個32位整數(shù),指定此track load settings atom中的字節(jié)數(shù)恬砂。
  • Type
    標(biāo)識atom類型的32位整數(shù);此字段必須設(shè)置為“l(fā)oad”咧纠。
  • Preload start time
    一個32位整數(shù),指定要預(yù)先加載的軌道片段在電影時間坐標(biāo)系中的開始時間泻骤。與預(yù)載持續(xù)時間一起使用漆羔。
  • Preload duration
    一個32位整數(shù),指定電影時間坐標(biāo)系統(tǒng)中要預(yù)加載的軌道段的持續(xù)時間狱掂。如果持續(xù)時間被設(shè)置為-1演痒,則意味著預(yù)加載段從預(yù)加載開始時間延伸到軌道的結(jié)束。當(dāng)要播放電影時趋惨,由preload start time和preload duration值定義的軌道段中的所有媒體數(shù)據(jù)應(yīng)當(dāng)被加載到存儲器中鸟顺。
  • Preload flags
    包含控制預(yù)加載操作的標(biāo)志的32位整數(shù)。只定義了兩個標(biāo)志器虾,它們是互斥的讯嫂。如果此標(biāo)志設(shè)置為1,則track將被預(yù)加載兆沙,而不管是否啟用欧芽。如果此標(biāo)志設(shè)置為2,則只有在啟用track時才會預(yù)加載track葛圃。
  • Default hints
    包含回放提示的32位整數(shù)渐裸。可以啟用多個標(biāo)志装悲。通過將標(biāo)志設(shè)置為1來啟用標(biāo)志。定義以下標(biāo)志尚氛。
  • Double buffer
    此標(biāo)志指示應(yīng)使用雙緩沖I/O播放曲目诀诊。此標(biāo)志的值為0x0020。
  • High quality
    此標(biāo)志指示軌道應(yīng)以最高可能質(zhì)量顯示阅嘶,而不考慮實時性能属瓣。該標(biāo)志的值為0x0100。

Track Reference Atoms

Track reference atoms定義軌道之間的關(guān)系讯柔。Track reference atoms允許一個軌道指定它如何與其他軌道相關(guān)抡蛙。例如,如果電影有三個視頻軌道和三個音軌魂迄,track reference允許您識別相關(guān)的聲音和視頻軌道粗截。track reference atom具有atom類型值“tref”。

Track reference是單向的捣炬,并從接收軌道指向源軌道熊昌。例如绽榛,視頻軌道可以參考時間代碼軌道以指示其時間代碼被存儲在何處,但是時間代碼軌道將不參考視頻軌道婿屹。時間碼軌道(time code track)是視頻軌道的時間信息的源灭美。

單個軌道可以引用多個軌道。例如昂利,視頻軌道可以參考聲音軌跡以指示兩者是同步的届腐,并且指示時間代碼軌道以指示其時間代碼被存儲在何處。

單個軌道也可以由多個軌道引用蜂奸。例如犁苏,如果聲音和視頻軌道共享相同的定時信息,則它們可以引用相同的時間代碼軌道窝撵。

如果這個atom不存在傀顾,軌道不以任何方式引用任何其他軌道。 注意碌奉,track reference type atoms的陣列的大小被設(shè)置為填充track reference atom短曾。 允許使用參考索引為0的軌道引用。 這表示沒有參考赐劣。

有關(guān)Track References的更多信息嫉拐,請參閱Track References

圖 2-18 顯示了track reference atom的布局魁兼。

圖 2-18 The layout of a track reference atom

Track reference atom包含以下數(shù)據(jù)元素婉徘。

  • Size
    一個32位整數(shù),指定此track reference atom中的字節(jié)數(shù)咐汞。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“tref”盖呼。
  • Track reference type atoms
    包含軌道參考信息的track reference type atoms的列表。 接下來描述這些atom化撕。

每個track reference atom定義與特定類型的軌道的關(guān)系几晤。 參考類型意味著軌道類型。 表2-2顯示了軌道參考類型及其說明植阴。

表 2-2 軌道參考類型(Track reference types)

Reference type Description
'cdsc' The track reference is contained in a timed metadata track (see Timed Metadata Media for more detail) and provides links to the tracks for which it contains descriptive characteristics.Note: If the timed metadata track describes characteristics of the entire movie, there will be no track reference of type ‘cdsc’ between it and another track.
'chap' Chapter or scene list. Usually references a text track.
'clcp' Closed caption. In any track, this identifies a closed captioning track that contains text that is appropriate for the referring track. See Closed Captioning Media for more information.
'fall' In a sound track, this references a track in a different format but with identical content, if one exists; for example, an AC3 track might reference an AAC track with identical content. See Alternate Sound Tracks.
'folw' In a sound track, this references a subtitle track that is to be used as the sound track’s default subtitle track. If the subtitle track is part of a subtitle track pair, this should reference the the forced subtitle track of the pair. This is needed only if language tagging cannot be used. See Relationships Across Alternate Groups.
'forc' Forced subtitle track. In the regular track of a subtitle track pair, this references the forced track. See Subtitle Sample Data for more information.
'hint' The referenced tracks contain the original media for this hint track.
'scpt' Transcript. Usually references a text track.
'ssrc' Non-primary source. Indicates that the referenced track should send its data to this track, rather than presenting it. The referencing track will use the data to modify how it presents its data. See Track Input Map Atoms for more information.
'sync' Synchronization. Usually between a video and sound track. Indicates that the two tracks are synchronized. The reference can be from either track to the other, or there may be two references.
'tmcd' Time code. Usually references a time code track.

每個track reference type atom包含以下數(shù)據(jù)元素蟹瘾。

  • Size
    一個32位整數(shù),指定此track reference type中的字節(jié)數(shù)掠手。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為表 2-2 中所示的值之一憾朴。
  • Track IDs
    指定相關(guān)軌道的軌道ID值(32位整數(shù))列表。 注意喷鸽,這是軌道ID值可以被設(shè)置為0的一種情況众雷。atom中未使用的條目可以具有軌道ID值0。將軌道ID設(shè)置為0可以比刪除引用更方便。

您可以通過從track reference type atom的總大小減去其頭大小报腔,然后除以軌道ID的大兄晟Α(以字節(jié)為單位)來確定存儲在track reference type atom中的軌道引用數(shù)。

Track Input Map Atoms

Track input map atoms定義如何解釋從其非主要源發(fā)送到該軌道的數(shù)據(jù)纯蛾。 “ssrc”類型的軌道引用定義了軌道的輔助數(shù)據(jù)源纤房。 這些源提供在處理軌道時使用的附加數(shù)據(jù)。 track input map atoms具有atom類型值“imap”翻诉。

圖 2-19 顯示了track input atom的布局炮姨。 該atom包含一個或多個track input atoms。 注意碰煌,track input map atom是QT atom結(jié)構(gòu)舒岸。

圖 2-19 The layout of a track input map atom

每個track input map atom包含以下數(shù)據(jù)元素。

  • Size
    一個32位整數(shù)芦圾,指定此track input map atom中的字節(jié)數(shù)蛾派。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“imap”。
    -Track input atoms
    指定如何使用輸入數(shù)據(jù)的track input atoms的列表个少。

輸入映射(input map)定義了所有軌道的輔助輸入洪乍。 每個輔助輸入使用單獨(dú)的track input atom來定義。

每個track input atom包含以下數(shù)據(jù)元素夜焦。

  • Size
    一個32位整數(shù)壳澳,指定此track input atom中的字節(jié)數(shù)。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“in”(請注意茫经,開頭前兩個字節(jié)必須設(shè)置為0x00)巷波。
  • Atom ID
    將該track input atom與其輔助輸入相關(guān)的32位整數(shù)。 該字段的值對應(yīng)于track reference atom中的輔助輸入的索引卸伞。 也就是說抹镊,第一輔助輸入對應(yīng)于atom ID值為1的track input atom; 第二個到track input atom,atom ID為2荤傲,等等髓考。
  • Reserved
    必須設(shè)置為0的16位整數(shù)。
  • Child count
    指定此atom中子元素數(shù)的16位整數(shù)弃酌。
  • Reserved
    必須設(shè)置為0的32位整數(shù)。

Track input atom又可以包含兩種其他類型的atom:input type atoms和object ID atoms儡炼。 input type atom是必需的; 它指定如何解釋數(shù)據(jù)妓湘。

input type atom包含以下數(shù)據(jù)元素。

  • Size
    一個32位整數(shù)乌询,指定此輸入類型atom中的字節(jié)數(shù)榜贴。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為'ty'(注意,開頭前兩個字節(jié)必須設(shè)置為0x00)。
  • Input type
    指定要從輔助數(shù)據(jù)源接收的數(shù)據(jù)類型的32位整數(shù)唬党。 表 2-3 列出了此字段的有效值鹃共。

表 2-3 輸入類型(Input types)

Input identifier Value Description
kTrackModifierTypeMatrix 1 A 3 × 3 transformation matrix to transform the track’s location, scaling, and so on.
kTrackModifierTypeClip 2 A QuickDraw clipping region to change the track’s shape.
kTrackModifierTypeVolume 3 An 8.8 fixed-point value indicating the relative sound volume. This is used for fading the volume.
kTrackModifierTypeBalance 4 A 16-bit integer indicating the sound balance level. This is used for panning the sound location.
kTrackModifierTypeGraphicsMode 5 A graphics mode record (32-bit integer indicating graphics mode, followed by an RGB color) to modify the track’s graphics mode for visual fades.
kTrackModifierObjectMatrix 6 A 3 × 3 transformation matrix to transform an object within the track’s location, scaling, and so on.
kTrackModifierObjectGraphicsMode 7 A graphics mode record (32-bit integer indicating graphics mode, followed by an RGB color) to modify an object within the track’s graphics mode for visual fades.
kTrackModifierTypeImage 'vide’ Compressed image data for an object within the track. Note that this was kTrackModifierTypeSpriteImage.

如果輸入對軌道內(nèi)的對象(例如,子畫面軌道內(nèi)的子畫面)進(jìn)行操作驶拱,則obejct ID atom必須包括在track input atom中以識別對象霜浴。

object ID atom包含以下數(shù)據(jù)元素。

  • Size
    一個32位整數(shù)蓝纲,指定此object ID atom中的字節(jié)數(shù)阴孟。
  • Type
    標(biāo)識atom類型的32位整數(shù); 此字段必須設(shè)置為“obid”。
  • Object ID
    用于標(biāo)識對象的32位整數(shù)税迷。

Media Atoms

Media atoms描述和定義軌道的媒體類型和樣本數(shù)據(jù)永丝。 media atom包含指定以下內(nèi)容的信息:

  • 媒體類型,例如聲音箭养,視頻或定時元數(shù)據(jù)
  • 用于解釋樣本數(shù)據(jù)的媒體處理程序組件
  • 媒體時間刻度和軌道持續(xù)時間
  • 媒體和曲目的特定信息慕嚷,如音量或圖形模式
  • 媒體數(shù)據(jù)引用,通常指定存儲樣本數(shù)據(jù)的文件
  • 樣本表atom毕泌,對于每個媒體樣本喝检,指定樣本描述,持續(xù)時間和與數(shù)據(jù)引用的字節(jié)偏移量

media atom的原子類型為“mdia”懈词。 它必須包含媒體頭(media header)('mdhd')atom蛇耀,它可以包含處理程序引用(handler reference)('hdlg')atom,媒體信息(media information)('minf')atom和用戶數(shù)據(jù)(user data)('udta')atom坎弯。

?? 注意:不要混淆media atom('media')與media data atom('mdat')纺涤。 media atom只包含對media data的引用; media data atom包含實際的媒體采樣。

圖 2-20 顯示了media atom的布局抠忘。

圖 2-20 The layout of a media atom

Media atoms包含以下數(shù)據(jù)元素撩炊。

  • Size
    一個32位整數(shù),指定此media atom中的字節(jié)數(shù)崎脉。
  • Type
    標(biāo)識atom類型的32位整數(shù);此字段必須設(shè)置為“mdia”拧咳。
  • Media header atom
    此atom包含標(biāo)準(zhǔn)媒體信息。請參閱Media Header Atoms囚灼。
  • Extended language tag atom
    此atom包含描述媒體語言的擴(kuò)展語言標(biāo)記骆膝。請參閱Extended Language Tag Atom。
  • Handler reference atom
    此atom標(biāo)識將用于解釋媒體數(shù)據(jù)的媒體處理程序組件灶体。有關(guān)詳細(xì)信息阅签,請參閱Handler Reference Atoms。
    注意蝎抽,handler reference atom告訴你這個media atom包含的媒體類型政钟,例如視頻或聲音。media information atoms的布局專用于解釋媒體的媒體處理器。Media Information Atoms討論了如何使用由蘋果定義的視頻媒體格式作為示例來將數(shù)據(jù)存儲在媒體中养交。
  • Media information atom
    此atom包含特定于媒體類型的數(shù)據(jù)精算,供媒體處理程序組件使用。請參閱Media information Atoms碎连。
  • User data atom
    請參閱User Data Atoms灰羽。
Media Header Atoms

Media header atoms指定媒體的特性,包括時間尺度和持續(xù)時間破花。 Media header atom的atom類型為“mdhd”谦趣。

圖 2-21 顯示了media header atom的布局。

圖 2-21 The layout of a media header atom

Media header atom包含以下數(shù)據(jù)元素座每。

  • Size
    一個32位整數(shù)前鹅,指定此media header atom中的字節(jié)數(shù)。
  • Type
    標(biāo)識atom類型的32位整數(shù);此字段必須設(shè)置為“mdhd”峭梳。
  • Version
    一個字節(jié)舰绘,指定此header atom的版本。
  • Flags
    Media header標(biāo)記的三個字節(jié)的空間葱椭。將該字段設(shè)置為0捂寿。
  • Creation time
    一個32位整數(shù),指定(從1904年1月1日午夜起的秒數(shù))media atom的創(chuàng)建時間孵运。強(qiáng)烈建議使用協(xié)調(diào)世界時(UTC)指定此值秦陋。
  • Modification time
    一個32位整數(shù),指定(從1904年1月1日午夜起的秒數(shù))media atom的修改時間治笨。強(qiáng)烈建議使用協(xié)調(diào)世界時(UTC)指定此值驳概。
  • Time scale
    指示此媒體的時間刻度的時間值,即在其時間坐標(biāo)系統(tǒng)中每秒通過的時間單位數(shù)旷赖。
  • Duration
    此媒體的持續(xù)時間以其Time scale為單位顺又。
  • Language
    指定此media的語言代碼的16位整數(shù)。請參閱Language Code Values for valid language codes等孵。如果擴(kuò)展語言標(biāo)簽也包括在媒體原子中稚照,請參閱Extended Language Tag Atom以獲取在此處使用的首選代碼。
  • Quality
    一個16位整數(shù)俯萌,指定媒體的播放質(zhì)量 - 也就是說果录,它適合在給定環(huán)境中播放。

To be Continue

譯者注:
第一次翻譯英文文檔咐熙,純手工翻譯弱恒,難免出現(xiàn)錯誤,歡迎指正糖声!感謝!
資料鏈接:[英文原文][Movie Atoms]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蘸泻,隨后出現(xiàn)的幾起案子琉苇,更是在濱河造成了極大的恐慌,老刑警劉巖悦施,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件并扇,死亡現(xiàn)場離奇詭異,居然都是意外死亡抡诞,警方通過查閱死者的電腦和手機(jī)穷蛹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昼汗,“玉大人肴熏,你說我怎么就攤上這事∏曛希” “怎么了蛙吏?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鞋吉。 經(jīng)常有香客問我鸦做,道長,這世上最難降的妖魔是什么谓着? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任泼诱,我火速辦了婚禮,結(jié)果婚禮上赊锚,老公的妹妹穿的比我還像新娘治筒。我一直安慰自己,他們只是感情好改抡,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布矢炼。 她就那樣靜靜地躺著,像睡著了一般阿纤。 火紅的嫁衣襯著肌膚如雪句灌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天欠拾,我揣著相機(jī)與錄音胰锌,去河邊找鬼。 笑死藐窄,一個胖子當(dāng)著我的面吹牛资昧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播荆忍,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼格带,長吁一口氣:“原來是場噩夢啊……” “哼撤缴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起叽唱,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤屈呕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后棺亭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虎眨,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年镶摘,在試婚紗的時候發(fā)現(xiàn)自己被綠了嗽桩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拳芙。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡乎赴,死狀恐怖粱檀,靈堂內(nèi)的尸體忽然破棺而出凶伙,到底是詐尸還是另有隱情染服,我是刑警寧澤宏多,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布萧求,位于F島的核電站腕巡,受9級特大地震影響俊卤,放射性物質(zhì)發(fā)生泄漏嫩挤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一消恍、第九天 我趴在偏房一處隱蔽的房頂上張望岂昭。 院中可真熱鬧,春花似錦狠怨、人聲如沸约啊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恰矩。三九已至,卻和暖如春憎蛤,著一層夾襖步出監(jiān)牢的瞬間外傅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工俩檬, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留萎胰,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓棚辽,卻偏偏與公主長得像技竟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子屈藐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容