什麼是ASF?

1、概述

ASF電影截圖ASF是(AdvancedStreamingFormat高級串流格式)的縮寫,是微軟公司針對real公司開發的新一代網上流式數字音頻壓縮技術,是Microsoft為Windows98所開發的串流多媒體文件格式。ASF是微軟公司WindowsMedia的核心。這是一種包含音頻、視頻、圖像以及控制命令腳本的數據格式。可和WMA及WMV互換使用。ASF是一個可擴展的文件格式用來存儲多媒體數據同步。它支持的數據傳輸瞭各種各樣的網絡和協議同時還證明適合當地播放。在明確目標的ASF是提供一個基礎,全行業的多媒體互操作性。每個格式的文件是由一個或多個媒體流。該文件頭指定的內容整個文件,連同流的具體內容。多媒體數據,儲存後的文件頭,特別提到媒體流編號,以表明其類型和目的。提供和介紹的所有媒體流數據同步到一個共同的時間線。


ASFASF是一個開放標準,它能依靠多種協議在多種網絡環境下支持數據的傳送。同JPG、MPG文件一樣,ASF文件也是一種文件類型,但它是專為在IP網上傳送有同步關系的多媒體數據而設計的,所以ASF格式的信息特別適合在IP網上傳輸。ASF文件的內容既可以是熟悉的普通文件,也可以是一個由編碼設備實時生成的連續的數據流,所以ASF既可以傳送人們事先錄制好的節目,也可以傳送實時產生的節目。
  
ASF用於排列、組織、同步多媒體數據以利於通過網絡傳輸。ASF是一種數據格式,它也可用於指定實況演示。ASF最適於通過網絡發送多媒體流,也同樣適於在本地播放。任何壓縮/解壓縮運算法則(編解碼器)都可用來編碼ASF流。
  
WindowsMediaService的核心是ASF。ASF是一種數據格式,音頻、視頻、圖像以及控制命令腳本等多媒體信息通過這種格式,以網絡數據包的形式傳輸,實現流式多媒體內容發佈。其中,在網絡上傳輸的內容就稱為ASFStream。ASF支持任意的壓縮/解壓縮編碼方式,並可以使用任何一種底層網絡傳輸協議,具有很大的靈活性。
  
MicrosoftMediaplayer是能播放幾乎所有多媒體文件的播放器,支持ASF在Internet網上的流文件格式,可以一邊下載一邊實時播放,無需下載完再聽。ASF文件本地或網絡回放;可擴充的媒體類型;部件下載、可伸縮的媒體類型;流的優先級化;多語言支持、環境獨立性;豐富的流間關系以及擴展性等。

2、創建ASF文件

ASF電影截圖如何生成ASF文件呢?在此提供軟件和硬件的兩種方式,僅供參考:
  
1、通過軟件將MPEG-1格式的影像文件轉換成微軟最新的ASF視頻流格式。使用軟件工具為:SonicFoundryStreamAnywhere和WindowsMediaToolkit。具體實施步驟為:首先安裝WindowsMediaToolkit或把相應版本號的ASF壓縮編碼驅動庫拷貝到Windows/System目錄。
  
接著運行軟件——SonicFoundryStreamAnywhere。打開mpg文件。選擇“Saveas”(另存為)→選擇你要儲存ASF文件的文件夾→選擇“EncodeWindowsMediaFormat”項→設置你要生成的ASF文件的壓縮比例。如果選250Video的話就相當於2MB/分鐘的壓縮速度,圖像的質量不太好。同理,如果是選512Video相當於4MB/分鐘的壓縮速度。其實,質量好的ASF應該是在320×240和有30幀/秒的情況下,它的圖像和聲音仍然可以同步。最後,取消EncodeRealMediaformat選項並確認完成。
  
2、利用專用的視頻采集卡(Ospres-200),借助“NetshowEcorder3.0”軟件把錄像機、影蝶機、攝像機等視頻、音頻信號轉換成ASF格式。對已是數字格式的dat、mpg文件,可以通過豪傑超級解霸2000中的工具——“vcd轉avi”程序,先轉換成avi格式,再使用采集卡附帶的軟件完成轉換到ASF過程。具體過程在此不作介紹。 

3、ASF文件功能

ASF電影截圖ASF流文件的數據速率可以在28.8Kbps到3Mbps之間變化。用戶可以根據自己應用環境和網絡條件選擇一個合適的速率,實現VOD點播和直播。

1、點播(VideoOnDemand)
因為ASF技術支持任意的壓縮/解壓縮編碼,可以使用任何一種底層網絡傳輸協議,這使它既能在高速的局域網內使用,也可以在撥號方式連接的低帶寬Internet環境下使用。點播服務方式下,用戶之間互不幹擾,可以對點播內容的播放進行控制。這種方式最為靈活,但是占用服務器、網絡資源。
  
ASF的點播內容均存放在VOD服務器上,建立VOD站點進行網頁發佈,在同一時間可多點同時點播相同或不同的節目,即多個計算機可在不同的地點、不同的時刻,實時、交互式地點播同一ASF流文件,用戶可以通過上網查看和選擇內容進行點播。播放過程中可實現播放、停止、暫停、快進、後退等功能,播放速率達到25幀/s,1小時的視頻信息按照300Kb/s采集,隻占108MB的空間,1張640MB的光盤可存放將近6小時的ASF文件。

2、直播
直播服務下,用戶隻能觀看播放的內容,無法進行控制。可以使用ASF文件作為媒體內容的來源,實時的多媒體內容最適合使用直播服務方式。通過視頻捕捉卡把攝像機、麥克風記錄的內容輸入到計算機,進行編碼生成ASF流,然後通過該機把信號傳送到網絡,用戶通過網頁收看直播內容。

計算機可同時接收相同或不同的節目頻道,直播計算機可作為一個小電視臺,連在網上的每一臺計算機都可實時接收9個不同的節目頻道。

3、遠程教育
這種ASF文件遠程教育系統由制作計算機、vod服務器、用戶機組成。
  
制作ASF文件計算機安裝視頻采集卡、聲卡及攝像機,用於制作流媒體文件;VOD服務器用於存儲和發佈流媒體信息;用戶機是連在網上的普通多媒體計算機,通過網頁進行學習。網頁上有教員授課的視頻文件、多媒體課件、學習內容提要、參考資料、復習/練習題、作業等信息。

4、ASF1.0介紹

高級流格式是由微軟公司在1995年至1998年。其主要目的是作為一個普遍的形式存儲和流媒體。有兩個版本的ASF。一個版本是ASF2.0,另一個版本的ASF1.0。這裡介紹ASF1.0:

數據類型
UINT8,UINT16,UINT32,UINT64-無符號整數的價值觀,8,16,32或64位長。在GNUC編譯器它們所代表的類型‘unsigned char ’,‘unsigned short ’,‘unsigned long ’和‘unsigned long long FILETIME-無符號的64位整數,100納秒的倍數

GUID的-128位的價值,可以產生在任何系統使用特殊的算法。該算法保證獨特任何此類值(這意味著兩個不同的計算機上,甚至在同一臺計算機中不同時刻的時間不能產生相同的GUID)。BITMAPINFOHEADER-普遍的結構,描述格式(壓縮)的形象。
typedef結構

長期biSize;//大小(BITMAPINFOHEADER)
長期biWidth;
長期biHeight;
短期biPlanes;//未使用
短期biBitCount;
長期biCompression;//fourcc的圖像
長期biSizeImage;//大小的圖像。對於壓縮圖像
//(biCompression0或3)可以為零。
長期biXPelsPerMeter;//未使用
長期biYPelsPerMeter;//未使用
長期biClrUsed;//隻適用於調色板圖像。
//號碼的顏色在調色板。
)BITMAPINFOHEADER;//長期biClrImportant;


WAVEFORMATEX-普遍的結構,描述格式(壓縮)聲音流
typedef結構

短期wFormatTag;//值,確定壓縮格式
短期nChannels;
長期nSamplesPerSec;
長期nAvgBytesPerSec;
短期nBlockAlign;//大小的數據樣本
短期wBitsPerSample;
短期cbSize;//大小格式的具體數據
)WAVEFORMATEX;
這種結構是緊接著一系列的字節大小cbSize。


所有的時間間隔不是衡量100納秒和代表64位類型,或以毫秒為單位衡量和代表與32位或16-位類型(每個65.5秒)。

基本信息
ASF1.0文件格式由‘塊’。他們是塊類似的AVI格式,而且大小各自領域的增加。
塊:(圖一)


圖一塊型描述的內容類型中的塊。見下面的名單稱為塊類型的GUID。塊長度相當於整個塊(即長度的數據僅是一塊長度減去24)。其他重要的概念是‘包’。由於格式應該是流,所有的實際數據,如壓縮音頻或視頻,是儲存在‘包’。不像的ASF2.0,所有的數據包有固定的大小。每一個有效的文件應至少包含兩個塊。它們是文件頭塊和數據塊。文件頭塊包含瞭所有必要的資料,開始處理實際數據,而數據塊包含的數據包。

標題
1、
文件頭塊:(圖二)

圖二這一塊是特殊的,因為它包含其他塊中的數據字段。可能有任意數量的這種大塊,但我們需要瞭解兩種特殊類型。

2、標題對象:(圖三)
圖三在0x02的flags可能意味著該文件seekable。最低與最高規模的數據包通常是一樣的。這是不準確知道如何處理的ASF文件,假設它的值不是真的。

3、Stream對象:(圖四)
圖四類型的具體數據是數據的含義可以得出隻能從流類型。可隨後領域,也取決於價值的音頻錯誤隱藏的類型。
第二未知的價值這個目標似乎是絕對隨機的,但如果有多個流在該文件中,他們都持有同樣的價值在這裡。

4、輸入特定的數據為視頻流:(圖五)
圖五對外輸入ASF的圖片格式,通常包含BITMAPINFOHEADER結構,這是40字節長,但它並不是一個好方法,因為它可能含有一些較大的規模。

5、輸入特定的數據為音頻流:(圖六)


圖六大小整齊的格式擴展等於cbSize的WAVEFORMATEX結構。

6、流的具體數據—音頻流:(圖七)
圖七這個數據是,如果目前隻有音頻錯誤隱藏式領域中的主要結構包含相應的GUID。見節‘音頻錯誤隱藏’的細節這一領域。

所有有效的ASF文件頭包含一個對象,以及一個Stream對象流。

數據塊:(圖八)

圖八

壓縮視頻和音頻數據通常組織成‘張’或‘物體’的一個任意大小。當一個人需要轉移這種數據包一個固定的大小,就不可能有三次機會:

一)幀的大小接近大小的數據包。這將是可以接受的存放架完全在一個包墊它需要的大小。二)幀大於該數據包。然後,它需要‘支離破碎’成幾個片段,並發出不同的數據包。三)幀大大低於該數據包。在這種情況下,將是一個好主意發送多幀在同一包。這就是所謂‘集團’。

可能有多種格式的標題,但在大多數包電影開始與V82_Header:(圖九

圖九確切含義,數據包大小不知道。它很少出現在的ASF流,當它,它會顯示完整的數據長度在這個數據包(從一開始分組頭的最後部分)。有時候ORed與0x10或0x8,但我從來沒有見過包指定非零填充規模和0x40制定flags。

部分:(圖十)

圖十最重要的位(0x80)是在流編號,如果部分包含一個關鍵幀。這裡的東西成為一個稍微有點復雜。分段的具體領域取決於是否這一部分是分組(即包含一個以上的范圍內),或沒有。這可以推導出flags的價值,這是在部分特定的領域本身。

段的具體領域,沒有分組:(圖十一)

圖十一“片段抵消”是抵消這一片段中的對象(如視頻幀),其中包含它。如需完整的框架中的片段,片段抵消為0和數據長度等於物體的長度。

“flags”可以是0x01或0x08。0x01的意思是“集團(多個物體的部分)”,以及0x08的意思是“沒有分組(單個對象或片段)”。

“數據長度”欄位是沒有必要,如果這部分是唯一的數據包,因為在這種情況下,數據需要所有剩餘的空間,包(當然,考慮到填充)。因此,這隻是目前的0x01時位中設置包flags。

“片段抵消”字段大小是確定的‘群體型編號’報頭值。已知可能的值後者則是0x55,0x59和0x5D,這相當於1,第2和第4字節大小。

“數據長度”字段大小是確定的數細分報頭值。當數細分領域的存在,其較低的比特(大概6人)載有若幹部分,設置位0x40意味著’數據長度’部分領域是1字節寬,並設置位0x80意味著’數據長度,部分領域的2字節寬。否則,這一領域的大小默認為2字節。

段的具體領域,分組:(圖十二)

圖十二這種結構類似於一個不分組,但它不具備‘片段抵消’領域,因為分裂和分組不能同時進行。

每一部分有一個外地所謂的‘序列號’。它可用於重新支離破碎的物體。隨後的物體序列號碼相差1(會有較大的跳躍在‘序列號’字段分組時發生)。不同片段的同一個對象具有相同的序列號和同一個對象的開始時間。包通常是有組織的,以增加時間戳。目前尚不清楚,如果它總是如此。包可能丟失,這種情況應妥善處理。

5、相關詞條

AVI
WAV
WMA

MPC
ASF
WMV

6、參考資料

Slackware:http://avifile.sourceforge.net/
dret.net:http://dret.net/
至頂網:http://www.zdnet.com.cn/

分享你的喜愛

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *