AVI(Audio/VideoInterleaved)文件是MS-Windows的視頻文件,其文件擴展名為“.AVI”。它一般由三部分構成:信息區、數據區和索引區(可缺省),即兩個LIST快和一個idx1塊。這些區域,通常由一些子塊組成,它們多用於為播放軟件提供更為系統的數據信息;或為播放時進行快速數據定位及播放,並提供詳細資料和識別手段(關於“區域”與“子塊”具體包容關系請見圖6)。
說明:本例由“四部分”構成,即在兩個LIST塊中間夾了個JUNK塊。這個JUNK塊純屬人為添加的自定義塊,即在AVI文件中從未有對此塊的定義。換句話說,我們也可以添加自己的決,只要遵循如下原則:在這三個標准塊其中的某個後面,定義一個四字節的塊識別碼(不要與本文用到的識別碼相同,最好字母用大寫),緊跟一個長整數來表示你自定義的塊的大小,隨後便可以在定義的大小范圍內寫入你想表述的信息。同樣,在這三個標准塊的內部,也可以用上述方法添加自定義干塊。
注:下文的說明內容部分取自華中理工大學出版的<>一文和<>的HELP文件。
以下就是作為例子的文件內容(數據D)及AVI文件標准結構圖。
1.從(00000000-000007F3)為一個WindowsAVI文件的信息區部分。
它是文件的第一個LIST塊。在它的內部記錄著整個文件的系統構成,如告訴播放軟件“我是一個AVI文件”;“在我的體內有幾個數據流”;“每個數據流包含著什麼數據類型——圖像、聲音或其他”;“如果是圖像數據流,那麼它的大小、顏色、壓縮方式、播放速度等,等是怎樣規定的”;“如果是聲音數據流,那麼它的壓縮方式、播放效果等等又將有何規定”......在信息區中還有多個附屬的LIST塊,也就是我們前面提到的“子塊”,它們用來記錄每個數據流的全部信息。而這些附間LIST塊與數據流之間保持著—一對應的關系,即
第一個附屬LIST塊對應於00號數據流;第二個附屬LIST塊對應於01號數據流......要想解釋數據流,我們必須先了解AVI文件中數據塊是什麼。在AVI文件中,數據塊是被放置在數據區中的一個有起始標志(由“數據流識別碼”和“數據塊存儲方式識別碼"組成,請參見對數據區部分的說明),並指明大小和數據內容的數據段.那麼,數據流就是那些相互之間具有聯系的同種數據類型的數據塊集合.
00000000-00000003多媒體文件識別碼:RIFF
00000004-00000007文件大小(10EDICh字節)-8字節
00000008-0000000BAVI文件識別碼
0000000C-0000000F第一個LIST塊識別碼
00000010-00000013第一個LIST塊的大小(168h字節)
00000014-00000017hdrl部分識別碼,以下數據記錄著此文件的格式
00000018-0000001Bhdrl部分所包含的avih塊識別碼,此模塊記錄著本文件的初始化信息
0000001C-0000001Favih塊大小(38h字節)
00000020-00000023每幀畫面顯示所維持多少個百萬分之一秒,本例為1046Bh,即66667百萬分之一秒,約0.07秒。所以在播放此文件時,你看到的畫面約每秒15幀->