Mengambil File DV Tipe-1
[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.]
File AVI DV tipe-1 berisi satu aliran yang diselingi. Untuk mengambil file tipe-1 saat mempratinjau, gunakan grafik filter yang diperlihatkan dalam diagram berikut.
Filter dalam grafik ini meliputi:
- Filter Smart Tee membagi DV yang diselingi menjadi aliran tangkapan dan aliran pratinjau. Kedua aliran berisi data interleaved yang sama.
- AVI Mux dan File Writer menulis aliran yang diselingi ke disk.
- Pemisah DV membagi aliran yang diselingi menjadi aliran video DV dan aliran audio. Kedua aliran dirender untuk pratinjau.
- Dekoder Video DV mendekode aliran video DV untuk pratinjau.
Bangun grafik ini sebagai berikut:
ICaptureGraphBuilder2 *pBuilder; // Capture graph builder.
IBaseFilter *pDV; // DV capture filter (MSDV)
IBaseFilter *pAviMux // Avi Mux filter.
// Initialize pDV (not shown).
// Create and initialize the Capture Graph Builder (not shown).
// Create the file-writing section of the graph.
hr = pBuilder->SetOutputFileName(&MEDIASUBTYPE_Avi,
OLESTR("C:\\Example1.avi"), &pAviMux, 0);
// Render the capture stream.
hr = pBuilder->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Interleaved,
pDV, 0, pAviMux);
// Render the preview stream.
hr = pBuilder->RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Interleaved,
pDV, 0, 0);
// Remember to release all interfaces.
- Panggil ICaptureGraphBuilder2::SetOutputFileName untuk menyambungkan filter AVI Mux ke filter Penulis File.
- Panggil ICaptureGraphBuilder2::RenderStream dengan kategori pin PIN_CATEGORY_CAPTURE untuk merender aliran pengambilan. Capture Graph Builder secara otomatis menyisipkan filter Smart Tee.
- Panggil RenderStream lagi, tetapi dengan kategori pin PIN_CATEGORY_PREVIEW, untuk merender aliran pratinjau. Lewati panggilan ini jika Anda tidak ingin mempratinjau video.
Untuk kedua panggilan ke RenderStream, jenis media MEDIATYPE_Interleaved, yang berarti video DV yang saling terkait. Dalam kode ini, Capture Graph Builder secara otomatis menambahkan setiap filter yang diperlukan, kecuali untuk filter pengambilan MSDV.
Topik terkait