Bagikan melalui


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.

tangkapan tipe-1 dengan pratinjau

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.
  1. Panggil ICaptureGraphBuilder2::SetOutputFileName untuk menyambungkan filter AVI Mux ke filter Penulis File.
  2. Panggil ICaptureGraphBuilder2::RenderStream dengan kategori pin PIN_CATEGORY_CAPTURE untuk merender aliran pengambilan. Capture Graph Builder secara otomatis menyisipkan filter Smart Tee.
  3. 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.

Video Digital di DirectShow