Aracılığıyla paylaş


Type-1 DV Dosyası'nı Yakala

[Bu sayfayla ilişkilendirilmiş olan DirectShowözelliği, eski bir özelliktir. Yerine MediaPlayer, IMFMediaEngineve Media Foundation 'de Ses/Video Yakalamaalmıştır. Bu özellikler Windows 10 ve Windows 11 için iyileştirilmiştir. Microsoft, mümkün olduğunda, yeni kodun DirectShowyerine MediaPlayer, IMFMediaEngine ve Media Foundation'da Audio/Video Capture kullanmasını şiddetle tavsiye eder. Microsoft, mümkünse yeni API'leri kullanmak için eski API'leri kullanan mevcut kodun yeniden yazılmasını önerir.]

Type-1 DV AVI dosyası, tek bir iç içe geçmiş akış içerir. Önizleme sırasında bir type-1 dosyası yakalamak için aşağıdaki diyagramda gösterilen filtre grafiğini kullanın.

1. tür yakalama, önizleme ile

Bu grafikteki filtreler şunlardır:

  • Smart Tee filtresi, araya katılmış DV'yi bir yakalama akışına ve önizleme akışına böler. Her iki akış da aynı iç içe geçmiş verileri içerir.
  • AVI Mux ve Dosya Yazıcı, iç içe geçmiş veri akışını diske yazar.
  • DV Splitter, araya katılmış akışı dv video akışına ve ses akışına böler. Her iki akış da önizleme için görselleştirilir.
  • DV Video Kod Çözücü önizleme için DV video akışının kodunu çözer.

Bu grafiği aşağıdaki gibi oluşturun:

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. AVI Mux filtresini Dosya Yazıcı filtresine bağlamak için ICaptureGraphBuilder2::SetOutputFileNameçağırın.
  2. ICaptureGraphBuilder2::RenderStream çağrısını , pin kategorisi PIN_CATEGORY_CAPTURE olan ile yakalama akışını işlemek için yapın. Yakalama Grafı Oluşturucusu, Akıllı Tee filtresini otomatik olarak ekler.
  3. Önizleme akışını işlemek için PIN_CATEGORY_PREVIEW iğne kategorisiyle RenderStream'i yeniden çağırın. Videonun önizlemesini görüntülemek istemiyorsanız bu aramayı atlayın.

RenderStream'e yapılan her iki çağrı için de medya türü MEDIATYPE_Interleaved, yani araya eklenen DV videosudur. Bu kodda, Yakalama Grafı Oluşturucusu MSDV yakalama filtresi dışında gerekli olan her filtreyi otomatik olarak ekler.

DirectShow'da dijital video