Bagikan melalui


Data DV dalam Format File AVI

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine , dan Pengambilan Audio/Video di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Microsoft telah menentukan format untuk penyimpanan data video digital (DV) dalam file AVI. Sesuai dengan spesifikasi ini akan memastikan bahwa file AVI yang ditulis dalam format ini akan kompatibel dengan versi arsitektur video digital DirectShow di masa mendatang untuk Windowsplatform.

Artikel ini menjelaskan format file AVI yang berisi data DV. FOURCC tertentu (kode empat karakter) untuk aliran data DV yang saling berhubungan dan penangan aliran kompresor/dekompresi DV ditentukan. Struktur format aliran untuk data DV ditentukan. Spesifikasi untuk dua metode penyimpanan data DV dalam format file AVI ditentukan.

Diasumsikan bahwa pembaca terbiasa dengan format data DV. (Format ini didefinisikan dalam Spesifikasi Digital VCR penggunaan Konsumen, juga disebut Blue Book.)

Ada dua jenis file DV AVI: File AVI yang berisi satu aliran data DV, yang disebut file tipe-1 ; dan file AVI yang berisi video DV sebagai aliran 'vids' dan audio DV sebagai aliran 'auds', yang disebut file tipe-2 .

File AVI yang berisi satu aliran data DV (Tipe-1)

Data DV interleaved dapat disimpan dalam format aslinya sebagai aliran tunggal dalam file AVI RIFF. Ini memiliki keuntungan menggunakan jumlah minimum penyimpanan data untuk DV. Kerugian utama adalah format file ini tidak kompatibel mundur dengan Video untuk Windows, karena tidak berisi video 'vids' atau aliran 'auds' audio. Dukungan diberikan untuk aliran DV yang saling terkait melalui filter DV Muxer dan DV Splitter yang disediakan dengan DirectShow.

Data DV dapat disimpan dalam satu aliran dalam file AVI RIFF dengan menentukan 'iavs' (aliran audio dan video interleaved) FOURCC (kode empat karakter) di anggota fccType dan salah satu dari 'dvsd', 'dvhd', atau 'dvsl' FOURCCs di anggota fccHandler dari gugus header aliran 'strh'. Bingkai per detik aliran video harus ditentukan dalam anggota dwRate dan dwScale dan jumlah total blok video di gugus 'movi' di anggota dwLength .

Penangan aliran 'dvsd' FOURCC menentukan bahwa data DV seperti yang didefinisikan dalam Bagian 2 dari Spesifikasi VCR Digital penggunaan Konsumen. Video dalam format 525 baris pada 29,97 Hz (525-60) atau 625 baris pada 25,00 Hz (625-50).

Penangan aliran 'dvhd' FOURCC menentukan bahwa data DV seperti yang didefinisikan dalam Bagian 3 spesifikasi VCR Digital penggunaan Konsumen. Video dalam format 1125 baris pada 30,00 Hz (1125-60) atau 1250 baris pada 25,00 Hz (1250-50).

Penangan aliran 'dvsl' FOURCC menentukan bahwa data DV seperti yang didefinisikan dalam Bagian 6 Spesifikasi VCR Digital penggunaan Konsumen. Video dalam format SD kompresi tinggi (SDL).

Catatan

Sisa artikel ini menyediakan definisi untuk aliran 'dvsd'.

 

Potongan header stream harus diikuti oleh gugus format aliran DVINFO .

Data DV aktual disimpan sebagai potongan '##dc' dalam gugus 'movi' (## dalam format mewakili pengidentifikasi aliran). Setiap gugus berisi satu bingkai data, masing-masing 10 atau 12 urutan DV DIF untuk sistem 525-60 atau 625-50. Format urutan DIF DV SD ('dvsd') didefinisikan dalam Bagian 2 spesifikasi Digital VCR yang digunakan konsumen.

Contoh berikut menunjukkan formulir AIFF RIFF untuk file AVI dengan satu aliran data DV, diperluas dengan potongan header yang lengkap.

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)

File AVI Yang Berisi DV Video dan DV Audio Streams (Tipe-2)

Data DV yang terjalin dapat dibagi menjadi aliran video dan satu hingga empat aliran audio dalam file AVI RIFF. Ini memiliki keuntungan kompatibel mundur dengan Video untuk Windows, karena berisi aliran video 'vids' standar dan setidaknya satu aliran 'auds' audio standar Kerugian utama adalah format file ini mengharuskan data audio disimpan secara berlebihan sebagai aliran audio. Aliran "video" sebenarnya adalah aliran data DV interleaved asli. Namun, sebagai aliran 'vids' standar dengan jenis handler 'dvsd', DV Video Decoder digunakan. Format ini juga mengharuskan penggunaan filter Pemisah DV untuk membagi file "diambil" sebelum menulisnya sebagai file AVI.

Data DV dapat disimpan sebagai aliran video dengan jumlah aliran audio terpisah dalam file AVI RIFF. Aliran video ditentukan dengan header stream video standar (nilai anggota fccType adalah 'vids'). Anggota fccHandler ditentukan sebagai 'dvsd', 'dvhd', atau 'dvsl'. Bingkai per detik aliran video harus ditentukan dalam anggota dwRate dan dwScale dan jumlah total blok video di gugus 'movi' di anggota dwLength .

Dalam file AVI yang berisi video DV ini sebagai aliran 'vids' dan audio DV sebagai bentuk aliran 'auds' DV, potongan format aliran video adalah struktur BITMAPINFOHEADER standar. Potongan format aliran dapat secara opsional diperluas untuk menyertakan gugus DVINFO , dengan meningkatkan ukuran gugus format aliran dari 40 byte (ukuran struktur BITMAPINFOHEADER ) menjadi 72 byte (ukuran BITMAPINFOHEADER ditambah struktur DVINFO ) dan segera mengikuti struktur data BITMAPINFOHEADER dengan struktur data DVINFO .

Aliran audio ditentukan dengan header aliran audio standar (nilai anggota fccType adalah 'auds'). Anggota fccHandler tidak digunakan untuk aliran audio.

Data video DV disimpan sebagai potongan '##dc', seperti yang didefinisikan dalam deskripsi sebelumnya dari file AVI dengan satu data DV, dan data audio disimpan sebagai potongan '##wb' dalam gugus 'movi'.

Catatan

Spesifikasi Digital VCR penggunaan Konsumen mungkin tidak tersedia dalam beberapa bahasa dan negara.

 

Contoh berikut menunjukkan formulir AIFF RIFF untuk file AVI yang berisi video DV sebagai aliran 'vids' dan audio DV sebagai aliran 'auds' diperluas dengan potongan header lengkap (termasuk data DVINFO opsional setelah BITMAPINFO di sub-gugus 'strf' untuk aliran 'vids').

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 File Format