流媒体技术基础-流媒体文件格式
微軟高級流格式ASF簡介?
--Microsoft公司的Windows Media的核心是ASF(Advanced Stream Format)。微軟將ASF 定義為同步媒體的統(tǒng)一容器文件格式。ASF是一種數(shù)據(jù)格式,音頻、視頻、圖像以及控制命令腳本等多媒體信息通過這種格式,以網(wǎng)絡(luò)數(shù)據(jù)包的形式傳輸,實現(xiàn)流式多媒體內(nèi)容發(fā)布。?
ASF最大優(yōu)點就是體積小,因此適合網(wǎng)絡(luò)傳輸,使用微軟公司的最新媒體播放器(Microsoft Windows Media Player)可以直接播放該格式的文件。用戶可以將圖形、聲音和動畫數(shù)據(jù)組合成一個ASF格式的文件,當然也可以將其他格式的視頻和音頻轉(zhuǎn)換為ASF格式,而且用戶還可以通過聲卡和視頻捕獲卡將諸如麥克風、錄像機等等外設(shè)的數(shù)據(jù)保存為ASF格式。另外,ASF格式的視頻中可以帶有命令代碼,用戶指定在到達視頻或音頻的某個時間后觸發(fā)某個事件或操作。?
11.8.1 ASF的特征?
可擴展的媒體類型- ASF文件允許制作者很容易地定義新的媒體類型。ASF格式提供了非常有效的靈活地定義符合ASF文件格式定義的新的媒體流類型。任一存儲的媒體流邏輯上都是獨立于其他媒體流的,除非在文件頭部分明顯地定義了其與另一媒體流的關(guān)系。?
部件下載-特定的有關(guān)播放部件的信息(如,解壓縮算法和播放器)能夠存儲在ASF 文件頭部分,這些信息能夠為客戶機用來找到合適的所需的播放部件的版本---如果它們沒有在客戶機上安裝。?
可伸縮的媒體類型- ASF是設(shè)計用來表示可伸縮的媒體類型的\"帶寬\"之間的依賴關(guān)系。ASF存儲各個帶寬就像一個單獨的媒體流。媒體流之間的依賴關(guān)系存儲在文件頭部分,為客戶機以一個獨立于壓縮的方式解釋可伸縮的選項提供了豐富的信息流的優(yōu)先級化- 現(xiàn)代的多媒體傳輸系統(tǒng)能夠動態(tài)地調(diào)整以適應(yīng)網(wǎng)絡(luò)資源緊張的情況(如,帶寬不足)。多媒體內(nèi)容的制作者要能夠根據(jù)流的優(yōu)先級表達他們的參考信息,如最低保證音頻流的傳輸。隨著可伸縮媒體類型的出現(xiàn),流的優(yōu)先級的安排變得復(fù)雜起來,因為在制作的時候很難決定各媒體流的順序。ASF允許內(nèi)容制作者有效地表達他們的意見(有關(guān)媒體的優(yōu)先級),甚至在可伸縮的媒體類型出現(xiàn)的情況下也可以.?
多語言- ASF設(shè)計為支持多語言。媒體流能夠可選地指示所含媒體的語言。這個功能常用于音頻和文本流。一個多語言ASF文件指的是包含不同語言版本的同一內(nèi)容的一系列媒體流,其允許客戶機在播放的過程中選擇最合適的版本。?
目錄信息- ASF提供可繼續(xù)擴展的目錄信息的功能,該功能的擴展性和靈活性都非常好。所有的目錄信息都以無格式編碼的形式存儲在文件頭部分,并且支持多語言,如果需要,目錄信息既可預(yù)先定義(如,作者和標題),也可以是制作者自定義。目錄信息功能既可以用于整個文件也可以用于單個媒體流。?
11.8.2 ASF文件格式?
11.8.2.1 ASF 對象定義?
ASF文件基本的組織單元叫做ASF 對象,它是由一個128位的全球唯一的對象標識符(Object ID),一個64位整數(shù)的對象大小(Object Size)和一個可變長的對象數(shù)據(jù)(Object Data)組成。對象大小域的值是由對象數(shù)據(jù)的大小加上24比特之和。?
圖11.8 ASF對象?
這個文件組織單元有點類似于RIFF(Resource Interchange File Format)字節(jié)片。RIFF字節(jié)片時AVI和WAV文件的基本單位。ASF對象在兩個方面改進了RIFF的設(shè)計。首先,無需一個權(quán)威機構(gòu)來管理對象標識符系統(tǒng),因為計算機網(wǎng)卡能夠產(chǎn)生一個有效的唯一的GUID。其次,對象大小字段已定義得足夠處理高帶寬多媒體內(nèi)容的大文件。?
11.8.2.2 高層文件結(jié)構(gòu)?
ASF文件邏輯上是由三個高層對象組成:頭對象(Header Object)、數(shù)據(jù)對象(Data Object)和索引對象(Index Object).。頭對象是必需的并且必須放在每一個ASF文件的開頭部分,數(shù)據(jù)對象也是必需的,且一般情況下緊跟在頭對象之后。索引對象是可選的,但是一般推薦使用。
圖11.9 高層ASF文件結(jié)構(gòu)?
在具體實現(xiàn)過程中可能會出現(xiàn)一些文件包含無序的(Out-Of-Order)的對象,ASF也支持,但在特定情況下,將導(dǎo)致ASF 文件不能使用,如從特定的文件源如HTTP服務(wù)器讀取該類ASF文件。同樣地,額外的高層對象也可能被運用并加入到ASF文件中。一般推薦這些另加的對象跟在索引對象之后。?
ASF數(shù)據(jù)對象能夠被解釋的一個前提條件是頭對象已被客戶機接收到。ASF沒有聲明頭對象信息是如何到達客戶端的,\"到達機制\"是一個\"本地實現(xiàn)問題\",顯然已超過了ASF 的定義范圍。頭對象先于數(shù)據(jù)對象到達有三種方式:?
包含頭對象的信息作為\"會話聲明\"的一部分。?
利用一個與數(shù)據(jù)對象不同的\"通道\"發(fā)送頭對象。?
在發(fā)送ASF 數(shù)據(jù)對象之前發(fā)送頭對象。?
11.8.2.2.1 ASF 頭對象?
在ASF的三個高層對象中,頭對象是唯一包含其他ASF 對象的對象。頭對象可能包含一下對象:?
文件屬性對象(File Properties Object)----全局文件屬性。?
流屬性對象(Stream Properties Object)----定義一個媒體流和其屬性。?
內(nèi)容描述對象(Content Description Object)----包含所有目錄信息。?
部件下載對象(Component Download Object)----提供播放部件信息。?
流組織對象(Stream Groups Object)----邏輯上把多個媒體流組織在一起。?
可伸縮對象(Scalable Object)----定義媒體流之間的可伸縮的關(guān)系。?
優(yōu)先級對象(Prioritization Object)----定義相關(guān)流的優(yōu)先級。?
相互排斥對象(Mutual Exclusion Object)----定義排斥關(guān)系如語言選擇。?
媒體相互依賴對象(Inter-Media Dependency Object)----定義混合媒體流之間的相互依賴關(guān)系。?
級別對象(Rating Object)----根據(jù)W3C PICS定義文件的級別。?
索引參數(shù)對象(Index Parameters Object)----提供必要的信息以重建ASF文件的索引。?
?
圖11.10 ASF 頭對象?
頭對象的作用是在ASF文件的開始部分提供一個眾所周知的比特序列,并且包含所有其它頭對象信息。頭對象提供了存儲在數(shù)據(jù)對象中的多媒體數(shù)據(jù)的全局的信息。?
11.8.2.2.2 ASF數(shù)據(jù)對象?
數(shù)據(jù)對象包含一個ASF 文件的所有多媒體數(shù)據(jù)。多媒體數(shù)據(jù)以ASF數(shù)據(jù)單元的形式存儲,每一個ASF數(shù)據(jù)單元都是可變長的,且包含的數(shù)據(jù)必須是同一種媒體流。數(shù)據(jù)單元在當它們開始傳輸?shù)臅r候在數(shù)據(jù)對象中自動地排序,這種排序來自于交叉存儲的文件格式。?
11.8.2.2.3 ASF索引對象?
ASF索引對象包含一個嵌入ASF文件的多媒體數(shù)據(jù)的基于時間的索引。每以索引進入表現(xiàn)的時間間隔是在制作時設(shè)置的,并且存儲在索引對象中。由于沒有必要為一個文件的每一個媒體流建立一個索引,因此,通常利用一個時間間隔列表來索引一系列的媒體流。?
?
本文鏈接地址:http://www.chinavideoonline.com/lmtchangshi/lmtchangshi_008.htm
總結(jié)
以上是生活随笔為你收集整理的流媒体技术基础-流媒体文件格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: H3C网络设备模拟器配置VLAN-Hyb
- 下一篇: Linux 账号管理与 ACL 权限配置