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)
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk