共用方式為


AVI 檔案格式的 DV 資料

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

Microsoft 已指定在 AVI 檔案中儲存數位視訊 (DV) 資料的格式。 符合此規格可確保以此格式撰寫的 AVI 檔案與 Windowsplatform 之 DirectShow 數位視訊架構的未來版本相容。

本文說明包含 DV 資料的 AVI 檔案格式。 定義交錯的 DV 資料流程和 DV 壓縮器資料流程處理常式的四個字元代碼 (四個字元代碼) 。 定義 DV 資料的資料流程格式結構。 指定兩種方法以 AVI 檔案格式儲存 DV 資料的規格。

假設讀者熟悉 DV 資料格式。 (此格式定義于 消費者使用數位VCR 的規格中,也稱為 Blue Book.)

DV AVI 檔案有兩種類型:包含一個 DV 資料流程的 AVI 檔案,稱為 type-1 檔案;和 AVI 檔案,其中包含 DV 視訊作為「vids」串流,而 DV 音訊則稱為「auds」串流,稱為 type-2 檔案。

包含一個 DV 資料流程的 AVI 檔案 (type-1)

交錯的 DV 資料可以將其原生格式儲存為 AVI RIFF 檔案內的單一資料流程。 這具有針對 DV 使用最小資料儲存空間的優點。 主要缺點是這個檔案格式與 Windows 的 Video 不相容,因為它不包含視訊 'vids' 或音訊 'auds' 資料流程。 透過 DirectShow 提供的 DV MuxerDV 分割器 篩選器,提供交錯 DV 資料流程的支援。

DV 資料可以透過在 AVI RIFF 檔案內指定 'iavs' (交錯的音訊和視訊串流,) FOURCC (四個字元的程式碼) ,並在 ' dvsd'、'dvhd' 或 'dvsl' FOURC 成員的 'strh' 資料流程標頭區塊中儲存四個字元代碼。 視訊資料流程每秒的畫面必須指定于 dwRatedwScale 成員中,以及 dwLength 成員中 'movi' 區塊中的視訊區塊總數。

'dvsd' 資料流程處理常式 FOURCC 指定 DV 資料如 消費者使用數位VCR 規格的第 2 部分所定義。 影片的格式為 525 行,29.97 Hz (525-60) 或 625 行,25.00 Hz (625-50) 。

'dvhd' 資料流程處理常式 FOURCC 指定 DV 資料如 取用者使用數位VCR 規格的第 3 部分所定義。 影片的格式為 1125 行,30.00 Hz (1125-60) 或 1250 行,25.00 Hz (1250-50) 。

'dvsl' 資料流程處理常式 FOURCC 會指定 DV 資料如 消費者使用數位VCR 規格的第6 部分所定義。 影片的格式為高壓縮 SD (SDL) 。

注意

本文的其餘部分提供 'dvsd' 資料流程的定義。

 

資料流程標頭區塊後面必須接著 DVINFO 資料流程格式區塊。

實際的 DV 資料會以 '##dc' 區塊的形式儲存在 'movi' 區塊中, (格式的 ## 表示資料流程識別碼) 。 每個區塊都包含一個資料框架,分別包含 525-60 或 625-50 系統的 10 或 12 DV DIF 序列。 DV SD ('dvsd') DIF 序列格式定義于 消費者使用數位VCR 規格的第2 部分。

下列範例顯示具有一個 DV 資料流程之 AVI 檔案的 AIFF RIFF 表單,並展開已完成的標頭區塊。

00000000 RIFF (0FAE35D4) 'AVI '
0000000C     LIST (00000106) 'hdrl'
00000018         avih (00000038)
                     dwMicroSecPerFrame    : 33367
                     dwMaxBytesPerSec      : 3728000
                     dwPaddingGranularity  : 0
                     dwFlags               : 0x810 HASINDEX | TRUSTCKTYPE
                     dwTotalFrames         : 2192
                     dwInitialFrames       : 0
                     dwStreams             : 1
                     dwSuggestedBufferSize : 120000
                     dwWidth               : 720
                     dwHeight              : 480
                     dwReserved            : 0x0
00000058         LIST (0000006C) 'strl'
00000064             strh (00000038)
                         fccType               : 'iavs'
                         fccHandler            : 'dvsd'
                         dwFlags               : 0x0
                         wPriority             : 0
                         wLanguage             : 0x0 undefined
                         dwInitialFrames       : 0
                         dwScale               : 100 (29.970 Frames/Sec)
                         dwRate                : 2997
                         dwStart               : 0
                         dwLength              : 2192
                         dwSuggestedBufferSize : 120000
                         dwQuality             : 0
                         dwSampleSize          : 0
                         rcFrame               : 0,0,720,480
000000A4             strf (00000020)
                         dwDVAAuxSrc     : 0x........
                         dwDVAAuxCtl     : 0x........
                         dwDVAAuxSrc1    : 0x........
                         dwDVAAuxCtl1    : 0x........
                         dwDVVAuxSrc     : 0x........
                         dwDVVAuxCtl     : 0x........
                         dwDVReserved[2] : 0,0
000000CC     LIST (0FADAC00) 'movi'
0FADACD4     idx1 (00008900)

包含 DV 視訊和 DV 音訊串流的 AVI 檔案, (Type-2)

交錯的 DV 資料可以分割成視訊資料流程,以及 AVI RIFF 檔案內的一到四個音訊串流。 這有一個優點是與 Windows 的 Video 回溯相容,因為它包含標準視訊 'vids' 資料流程,而且至少有一個標準音頻 'auds' 資料流程。主要缺點是,此檔案格式需要將音訊資料重複儲存為音訊資料流程。 「影片」資料流程實際上是原生交錯的 DV 資料流程。 不過,作為具有 'dvsd' 處理常式類型的標準 'vids' 資料流程,會使用 DV 影片解碼器 。 此格式也需要使用 DV 分隔器 篩選來分割「擷取」檔案,再將其寫入為 AVI 檔案。

DV 資料可以儲存為視訊串流,其中包含 AVI RIFF 檔案中個別數目的音訊串流。 視訊串流是以標準視訊資料流程標頭指定, () ) 的 (。 指定為 'dvsd'、'dvhd' 或 'dvsl' 的 azureHandler 成員。 視訊資料流程每秒的畫面必須指定于 dwRatedwScale 成員中,以及 dwLength 成員中 'movi' 區塊中的視訊區塊總數。

在此 AVI 檔案中,包含 DV 視訊作為'vids' 資料流程,而 DV 音訊為 DV 的 'auds' 資料流程形式,視訊串流格式區塊是標準的 BITMAPINFOHEADER 結構。 資料流程格式區塊可以選擇性地擴充以包含DVINFO區塊,方法是將資料流程格式區塊大小從點陣圖INFOHEADER) 結構的 40 位元組 (大小增加到 72 個位元組, (點陣圖INFOHEADER的大小加上DVINFO結構) ,並緊接在具有DVINFO資料結構的BITMAPINFOHEADER資料結構之後。

(的音訊資料流程) 是使用標準音頻資料流程標頭來指定, ( (為 'auds') 。 針對音訊串流,不會使用 此 apiHandler 成員。

DV 視訊資料會儲存為 '##dc' 區塊,如具有一個 DV 資料的 AVI 檔案先前描述中所定義,音訊資料會儲存為 '##wb' 區塊的 'movi' 區塊。

注意

某些語言和國家/地區可能無法使用 取用者數位VCR 的規格

 

下列範例顯示 AVI 檔案的 AIFF RIFF 表單,其中包含 DV 視訊為 'vids' 資料流程,而 DV 音訊為 'auds' 串流展開, (包含 'strf' 子區塊中點陣圖INFO的選擇性DVINFO資料) 。

00000000 RIFF (103E2920) 'AVI '
0000000C     LIST (00000146) 'hdrl'
00000018         avih (00000038)
                     dwMicroSecPerFrame    : 33367
                     dwMaxBytesPerSec      : 3728000
                     dwPaddingGranularity  : 0
                     dwFlags               : 0x810 HASINDEX | TRUSTCKTYPE
                     dwTotalFrames         : 2192
                     dwInitialFrames       : 0
                     dwStreams             : 2
                     dwSuggestedBufferSize : 120000
                     dwWidth               : 720
                     dwHeight              : 480
                     dwReserved            : 0x0
00000058         LIST (00000094) 'strl'
00000064             strh (00000038)
                         fccType               : 'vids'
                         fccHandler            : 'dvsd'
                         dwFlags               : 0x0
                         wPriority             : 0
                         wLanguage             : 0x0 undefined
                         dwInitialFrames       : 0
                         dwScale               : 100 (29.970 Frames/Sec)
                         dwRate                : 2997
                         dwStart               : 0
                         dwLength              : 2192
                         dwSuggestedBufferSize : 120000
                         dwQuality             : 0
                         dwSampleSize          : 0
                         rcFrame               : 0,0,720,480
000000A4             strf (00000048)
                         biSize          : 40
                         biWidth         : 720
                         biHeight        : 480
                         biPlanes        : 1
                         biBitCount      : 24
                         biCompression   : 0x64737664 'dvsd'
                         biSizeImage     : 120000
                         biXPelsPerMeter : 0
                         biYPelsPerMeter : 0
                         biClrUsed       : 0
                         biClrImportant  : 0
                         dwDVAAuxSrc     : 0x........
                         dwDVAAuxCtl     : 0x........
                         dwDVAAuxSrc1    : 0x........
                         dwDVAAuxCtl1    : 0x........
                         dwDVVAuxSrc     : 0x........
                         dwDVVAuxCtl     : 0x........
                         dwDVReserved[2] : 0,0
000000F4         LIST (0000005E) 'strl'
00000100             strh (00000038)
                         fccType               : 'auds'
                         fccHandler            : '    '
                         dwFlags               : 0x0
                         wPriority             : 0
                         wLanguage             : 0x0 undefined
                         dwInitialFrames       : 0
                         dwScale               : 1 (32000.000 Samples/Sec)
                         dwRate                : 32000
                         dwStart               : 0
                         dwLength              : 2340474
                         dwSuggestedBufferSize : 4272
                         dwQuality             : 0
                         dwSampleSize          : 4
                         rcFrame               : 0,0,0,0
00000140             strf (00000012)
                         wFormatTag      : 1 PCM
                         nChannels       : 2
                         nSamplesPerSec  : 32000
                         nAvgBytesPerSec : 128000
                         nBlockAlign     : 4
                         wBitsPerSample  : 16
                         cbSize          : 0
00000814     LIST (103D0EF4) 'movi'
103D1710     idx1 (00011210)

AVI 檔案格式