asf什麽格式
Microsoft公司的Windows Media的核心是ASF(Advanced Stream Format)。微軟將ASF 定義為同步媒體的統壹容器文件格式。ASF是壹種數據格式,音頻、視頻、圖像以及控制命令腳本等多媒體信息通過這種格式,以網絡數據包的形式傳輸,實現流式多媒體內容發布。
ASF最大優點就是體積小,因此適合網絡傳輸,使用微軟公司的最新媒體播放器(Microsoft Windows Media Player)可以直接播放該格式的文件。用戶可以將圖形、聲音和動畫數據組合成壹個ASF格式的文件,當然也可以將其他格式的視頻和音頻轉換為ASF格式,而且用戶還可以通過聲卡和視頻捕獲卡將諸如麥克風、錄像機等等外設的數據保存為ASF格式。另外,ASF格式的視頻中可以帶有命令代碼,用戶指定在到達視頻或音頻的某個時間後觸發某個事件或操作。
ASF的特征 可擴展的媒體類型- ASF文件允許制作者很容易地定義新的媒體類型。ASF格式提供了非常有效的靈活地定義符合ASF文件格式定義的新的媒體流類型。任壹存儲的媒體流邏輯上都是獨立於其他媒體流的,除非在文件頭部分明顯地定義了其與另壹媒體流的關系。 部件下載-特定的有關播放部件的信息(如,解壓縮算法和播放器)能夠存儲在ASF 文件頭部分,這些信息能夠為客戶機用來找到合適的所需的播放部件的版本---如果它們沒有在客戶機上安裝。
可伸縮的媒體類型- ASF是設計用來表示可伸縮的媒體類型的"帶寬"之間的依賴關系。ASF存儲各個帶寬就像壹個單獨的媒體流。媒體流之間的依賴關系存儲在文件頭部分,為客戶機以壹個獨立於壓縮的方式解釋可伸縮的選項提供了豐富的信息流的優先級化- 現代的多媒體傳輸系統能夠動態地調整以適應網絡資源緊張的情況(如,帶寬不足)。多媒體內容的制作者要能夠根據流的優先級表達他們的參考信息,如最低保證音頻流的傳輸。隨著可伸縮媒體類型的出現,流的優先級的安排變得復雜起來,因為在制作的時候很難決定各媒體流的順序。ASF允許內容制作者有效地表達他們的意見(有關媒體的優先級),甚至在可伸縮的媒體類型出現的情況下也可以。
多語言- ASF設計為支持多語言。媒體流能夠可選地指示所含媒體的語言。這個功能常用於音頻和文本流。壹個多語言ASF文件指的是包含不同語言版本的同壹內容的壹系列媒體流,其允許客戶機在播放的過程中選擇最合適的版本。
目錄信息- ASF提供可繼續擴展的目錄信息的功能,該功能的擴展性和靈活性都非常好。所有的目錄信息都以無格式編碼的形式存儲在文件頭部分,並且支持多語言,如果需要,目錄信息既可預先定義(如,作者和標題),也可以是制作者自定義。目錄信息功能既可以用於整個文件也可以用於單個媒體流。
ASF文件格式 ASF 對象定義 ASF文件基本的組織單元叫做ASF 對象,它是由壹個128位的全球唯壹的對象標識符(Object ID),壹個64位整數的對象大小(Object Size)和壹個可變長的對象數據(Object Data)組成。對象大小域的值是由對象數據的大小加上24比特之和。
這個文件組織單元有點類似於RIFF(Resource Interchange File Format)字節片。RIFF字節片時AVI和WAV文件的基本單位。ASF對象在兩個方面改進了RIFF的設計。首先,無需壹個權威機構來管理對象標識符系統,因為計算機網卡能夠產生壹個有效的唯壹的GUID。其次,對象大小字段已定義得足夠處理高帶寬多媒體內容的大文件。
高層文件結構 ASF文件邏輯上是由三個高層對象組成:頭對象(Header Object)、數據對象(Data Object)和索引對象(Index Object).。頭對象是必需的並且必須放在每壹個ASF文件的開頭部分,數據對象也是必需的,且壹般情況下緊跟在頭對象之後。索引對象是可選的,但是壹般推薦使用。
高層ASF文件結構 在具體實現過程中可能會出現壹些文件包含無序的(Out-Of-Order)的對象,ASF也支持,但在特定情況下,將導致ASF 文件不能使用,如從特定的文件源如HTTP服務器讀取該類ASF文件。同樣地,額外的高層對象也可能被運用並加入到ASF文件中。壹般推薦這些另加的對象跟在索引對象之後。
ASF數據對象能夠被解釋的壹個前提條件是頭對象已被客戶機接收到。ASF沒有聲明頭對象信息是如何到達客戶端的,"到達機制"是壹個"本地實現問題",顯然已超過了ASF 的定義範圍。頭對象先於數據對象到達有三種方式:
包含頭對象的信息作為"會話聲明"的壹部分。
利用壹個與數據對象不同的"通道"發送頭對象。 在發送ASF 數據對象之前發送頭對象。
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文件的索引。
ASF 頭對象
頭對象的作用是在ASF文件的開始部分提供壹個眾所周知的比特序列,並且包含所有其它頭對象信息。頭對象提供了存儲在數據對象中的多媒體數據的全局的信息。
ASF數據對象
數據對象包含壹個ASF 文件的所有多媒體數據。多媒體數據以ASF數據單元的形式存儲,每壹個ASF數據單元都是可變長的,且包含的數據必須是同壹種媒體流。數據單元在當它們開始傳輸的時候在數據對象中自動地排序,這種排序來自於交叉存儲的文件格式。
ASF索引對象
ASF索引對象包含壹個嵌入ASF文件的多媒體數據的基於時間的索引。每以索引進入表現的時間間隔是在制作時設置的,並且存儲在索引對象中。由於沒有必要為壹個文件的每壹個媒體流建立壹個索引,因此,通常利用壹個時間間隔列表來索引壹系列的媒體流。