流媒體文件格式

11.8 微軟高級流格式ASF簡介

  --Microsoft公司的Windows Media的核心是ASF(Advanced Stream Format)。微軟將ASF 定義爲同步媒體的統一容器文件格式。ASF是一種數據格式,音頻、視頻、圖像以及控制命令腳本等多媒體信息通過這種格式,以網絡數據包的形式傳輸,實現流式多媒體內容發佈。

  ASF最大優點就是體積小,因此適合網絡傳輸,使用微軟公司的最新媒體播放器(Microsoft Windows Media Player)可以直接播放該格式的文件。用戶可以將圖形、聲音和動畫數據組合成一個ASF格式的文件,當然也可以將其他格式的視頻和音頻轉換爲ASF格式,而且用戶還可以通過聲卡和視頻捕獲卡將諸如麥克風、錄像機等等外設的數據保存爲ASF格式。另外,ASF格式的視頻中可以帶有命令代碼,用戶指定在到達視頻或音頻的某個時間後觸發某個事件或操作。

  11.8.1 ASF的特徵
  可擴展的媒體類型- ASF文件允許製作者很容易地定義新的媒體類型。ASF格式提供了非常有效的靈活地定義符合ASF文件格式定義的新的媒體流類型。任一存儲的媒體流邏輯上都是獨立於其他媒體流的,除非在文件頭部分明顯地定義了其與另一媒體流的關係。

  部件下載-特定的有關播放部件的信息(如,解壓縮算法和播放器)能夠存儲在ASF 文件頭部分,這些信息能夠爲客戶機用來找到合適的所需的播放部件的版本---如果它們沒有在客戶機上安裝。

  可伸縮的媒體類型- ASF是設計用來表示可伸縮的媒體類型的"帶寬"之間的依賴關係。ASF存儲各個帶寬就像一個單獨的媒體流。媒體流之間的依賴關係存儲在文件頭部分,爲客戶機以一個獨立於壓縮的方式解釋可伸縮的選項提供了豐富的信息流的優先級化- 現代的多媒體傳輸系統能夠動態地調整以適應網絡資源緊張的情況(如,帶寬不足)。多媒體內容的製作者要能夠根據流的優先級表達他們的參考信息,如最低保證音頻流的傳輸。隨着可伸縮媒體類型的出現,流的優先級的安排變得複雜起來,因爲在製作的時候很難決定各媒體流的順序。ASF允許內容製作者有效地表達他們的意見(有關媒體的優先級),甚至在可伸縮的媒體類型出現的情況下也可以.

  多語言- ASF設計爲支持多語言。媒體流能夠可選地指示所含媒體的語言。這個功能常用於音頻和文本流。一個多語言ASF文件指的是包含不同語言版本的同一內容的一系列媒體流,其允許客戶機在播放的過程中選擇最合適的版本。

  目錄信息- ASF提供可繼續擴展的目錄信息的功能,該功能的擴展性和靈活性都非常好。所有的目錄信息都以無格式編碼的形式存儲在文件頭部分,並且支持多語言,如果需要,目錄信息既可預先定義(如,作者和標題),也可以是製作者自定義。目錄信息功能既可以用於整個文件也可以用於單個媒體流。

  11.8.2 ASF文件格式
  11.8.2.1 ASF 對象定義

  ASF文件基本的組織單元叫做ASF 對象,它是由一個128位的全球唯一的對象標識符(Object ID),一個64位整數的對象大小(Object Size)和一個可變長的對象數據(Object Data)組成。對象大小域的值是由對象數據的大小加上24比特之和。
 

  圖11.8 ASF對象

  這個文件組織單元有點類似於RIFF(Resource Interchange File Format)字節片。RIFF字節片時AVI和WAV文件的基本單位。ASF對象在兩個方面改進了RIFF的設計。首先,無需一個權威機構來管理對象標識符系統,因爲計算機網卡能夠產生一個有效的唯一的GUID。其次,對象大小字段已定義得足夠處理高帶寬多媒體內容的大文件。

  11.8.2.2 高層文件結構
  ASF文件邏輯上是由三個高層對象組成:頭對象(Header Object)、數據對象(Data Object)和索引對象(Index Object).。頭對象是必需的並且必須放在每一個ASF文件的開頭部分,數據對象也是必需的,且一般情況下緊跟在頭對象之後。索引對象是可選的,但是一般推薦使用。
 

  圖11.9 高層ASF文件結構
  在具體實現過程中可能會出現一些文件包含無序的(Out-Of-Order)的對象,ASF也支持,但在特定情況下,將導致ASF 文件不能使用,如從特定的文件源如HTTP服務器讀取該類ASF文件。同樣地,額外的高層對象也可能被運用並加入到ASF文件中。一般推薦這些另加的對象跟在索引對象之後。
  ASF數據對象能夠被解釋的一個前提條件是頭對象已被客戶機接收到。ASF沒有聲明頭對象信息是如何到達客戶端的,"到達機制"是一個"本地實現問題",顯然已超過了ASF 的定義範圍。頭對象先於數據對象到達有三種方式:
  包含頭對象的信息作爲"會話聲明"的一部分。
  利用一個與數據對象不同的"通道"發送頭對象。
  在發送ASF 數據對象之前發送頭對象。
  11.8.2.2.1 ASF 頭對象
  在ASF的三個高層對象中,頭對象是唯一包含其他ASF 對象的對象。頭對象可能包含一下對象:
  文件屬性對象(File Properties Object)----全局文件屬性。
  流屬性對象(Stream Properties Object)----定義一個媒體流和其屬性。
  內容描述對象(Content Description Object)----包含所有目錄信息。
  部件下載對象(Component Download Object)----提供播放部件信息。
  流組織對象(Stream Groups Object)----邏輯上把多個媒體流組織在一起。
  可伸縮對象(Scalable Object)----定義媒體流之間的可伸縮的關係。
  優先級對象(Prioritization Object)----定義相關流的優先級。
  相互排斥對象(Mutual Exclusion Object)----定義排斥關係如語言選擇。
  媒體相互依賴對象(Inter-Media Dependency Object)----定義混合媒體流之間的相互依賴關係。
  級別對象(Rating Object)----根據W3C PICS定義文件的級別。
  索引參數對象(Index Parameters Object)----提供必要的信息以重建ASF文件的索引。
 

  圖11.10 ASF 頭對象
  頭對象的作用是在ASF文件的開始部分提供一個衆所周知的比特序列,並且包含所有其它頭對象信息。頭對象提供了存儲在數據對象中的多媒體數據的全局的信息。

  11.8.2.2.2 ASF數據對象
  數據對象包含一個ASF 文件的所有多媒體數據。多媒體數據以ASF數據單元的形式存儲,每一個ASF數據單元都是可變長的,且包含的數據必須是同一種媒體流。數據單元在當它們開始傳輸的時候在數據對象中自動地排序,這種排序來自於交叉存儲的文件格式。

  11.8.2.2.3 ASF索引對象
  ASF索引對象包含一個嵌入ASF文件的多媒體數據的基於時間的索引。每以索引進入表現的時間間隔是在製作時設置的,並且存儲在索引對象中。由於沒有必要爲一個文件的每一個媒體流建立一個索引,因此,通常利用一個時間間隔列表來索引一系列的媒體流。
|-page-|
110.8 RealSystem的RealMedia文件格式
  RealNetworks公司的RealMedia包括RealAudio、RealVideo和RealFlash三類文件,其中RealAudio用來傳輸接近CD音質的音頻數據,RealVideo用來傳輸不間斷的視頻數據,RealFlash則是RealNetworks公司與Macromedia公司新近聯合推出的一種高壓縮比的動畫格式RealMedia文件格式的引入了,它使得RealSystem可以通過各種網絡傳送高質量的多媒體內容。第三方開發者可以通過RealNetworks公司提供的SDK將它們的媒體格式轉換成RealMedia文件格式。
  10.8.1加標誌的文件格式
  RealMedia文件格式是標準的標誌文件格式,它使用四字符編碼來標識文件元素。組成RealMedia文件的基本部件是塊(chunk),它是數據的邏輯單位,如流的報頭,或一個數據包。每個塊包括下面的字段:
  指明塊標識符的四字符編碼
  塊中限定數據大小的32位數值。
  數據塊部分
  依類型的不同,上層的塊可以包含子對象。
 

  圖10- RealMedia文件塊示意圖
  10.8.2 報頭部分
  因爲RealMedia 文件格式是一種加標誌的文件格式,塊的順序沒有明確規定,但RealMedia 文件報頭必須是文件的第一個塊。一般情況下,RealMedia 的報頭部分有下面四種:
  RealMedia文件報頭 (RealMedia文件的第一個塊)
  屬性報頭(Properties Header )
  媒體屬性報頭(Media Properties Header )
  內容描述報頭(Content Description Header )
  RealMedia 文件報頭以後,其它報頭的出現可以任何次序。
  10.8.3 數據部分(Data Section)
  RealMedia 文件的數據部分由數據部分報頭和後面排列的媒體數據包組成。數據塊報頭標誌數據塊的開始,媒體數據包是流媒體數據的數據包。
  10.8.4索引部分(Index Section)
  RealMedia 文件的索引部分由描述索引區內容的索引塊報頭和一串索引記錄組成。

|-page-|
12.5 QuickTime電影(Movie)文件格式
  Apple公司的QuickTime電影文件現已成爲是數字媒體領域的工業標準。 QuickTime電影文件格式定義了存儲數字媒體內容的標準方法,使用這種文件格式不僅可以存儲單個的媒體內容(如視頻幀或音頻採樣),而且能保存對該媒體作品的完整描述;QuickTime文件格式被設計用來適應爲與數字化媒體一同工作需要存儲的各種數據。因爲這種文件格式能用來描述幾乎所有的媒體結構,所以它是應用程序間(不管運行平臺如何)交換數據的理想格式。QuickTime文件格式中媒體描述和媒體數據是分開存儲的,媒體描述或元數據(meta-data)叫做電影(movie),包含軌道數目、視頻壓縮格式和時間信息。同時movie包含媒體數據存儲區域的索引。媒體數據是所有的採樣數據,如視頻幀和音頻採樣,媒體數據可以與QuickTime movie存儲在同一個文件中,也可以在一個單獨的文件或者在幾個文件中。
  12.5.1 基本概念
  QuickTime 使用兩種基本結構存儲信息:標準原子(classic atoms) 和 QT原子(QT atoms),標準原子是簡單原子,QT原子是原子容器原子,允許建立複雜的分層結構。QuickTime atom containers 提供在QuickTime 中存儲信息的基本結構,它是QT atoms 的樹型分層結構。
  12.5.1.1 原子(Atoms) 1
  QuickTime 文件的基本數據單元是原子(atom),每個原子包含數據及數據的大小和數據類型信息。原子包含報頭和原子數據,報頭允許小型尺度或擴展尺度的數據,多數原子使用小型尺度(32位),通常只有媒體數據原子需要64位大小。
 

  圖12-5 QuickTime擴展尺寸原子
  12.5.1.2 QuickTime 原子容器(Atom Containers)
  QuickTime atom container是QuickTime文件中存儲信息的基本結構,一個原子容器是QT atom的屬性分層結構。如圖12-6所示:每個 QT atom 包含數據或其它原子。如果一個原子包含其它原子,它就是父原子(parent atom),被包含的原子叫子原子(child atoms)。每個父原子的子原子由atom type 和atom ID惟一地標識。 包含數據的 QT atom 叫頁原子(leaf atom).
 

  圖12-6 有父原子和子原子的原子容器
  12.5.2 QuickTime File結構
  QuickTime文件簡單地說就是一羣原子的集合, 對原子的次序沒有規定。如圖所示:
 

  圖12-7 QuickTime 文件結構
  文件系統支持文件擴展名,QuickTime文件擴展名通常是 .mov 。在 Macintosh 平臺上,QuickTime文件類型是MooV 。在因特網上, QuickTime 文件由mime 型 "video/quicktime" 來提供服務。
  12.5.2.1 QuickTime movie
  QuickTime movie atoms 的原子類型爲 ´moov´ 。它是其它類型的容器,依層類推,它包含軌道原子( track atoms),而軌道原子又包含媒體原子(media atoms),最底層是頁原子(leaf atoms),包含實際數據。
  Movie有一個或多個軌道組成,每個軌道都獨立於其它軌道,軌道提供一種強大、靈活的結構,使用它可以精確地控制產生複雜的交互電影。每個軌道都代表了一個獨特的隨時間變化的功能或方面。一個單個movie 可以有許多不同的軌道類型,包括video, audio, text, sprite, Flash, HREF, hinting, QuickTime VR和 chapter divisions。例:
  Movie track-包含整個movie的版權、註釋及其它概要信息
  Video track-數字化視頻、着色的3D動畫或其他編輯圖像的序列,和可選特殊效果。
  Text track--輸入到QuickTime中的標題、 片頭字幕等字符信息。
  Hint track-包含允許流服務器通過實時流方式傳輸媒體軌道的信息。
  Movies、tracks和 media 之間的基本關係如下圖所示:
 
  圖12-8 包含三個軌道的movie文件
  上圖所示movie包含三個軌道:video、 music、text,軌道中顯示的資料包含在媒體結構中。QuickTime movies 在時間軸上組織媒體,它把movies和媒體數據結構作爲普通的時間存在錨在時間座標系上。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章