Acquisire un file DV di tipo 1

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation, invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Un file DV AVI di tipo 1 contiene un singolo flusso interleaved. Per acquisire un file di tipo 1 durante l'anteprima, usare il grafico del filtro illustrato nel diagramma seguente.

acquisizione di tipo 1 con anteprima

I filtri in questo grafico includono:

Compilare questo grafico come segue:

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. Chiama ICaptureGraphBuilder2::SetOutputFileName per connettere il filtro Mux AVI al filtro File Writer.
  2. Chiamare ICaptureGraphBuilder2::RenderStream con la categoria pin PIN_CATEGORY_CAPTURE per eseguire il rendering del flusso di acquisizione. Capture Graph Builder inserisce automaticamente il filtro Smart Tee.
  3. Chiamare di nuovo RenderStream, ma con la categoria pin PIN_CATEGORY_PREVIEW, per eseguire il rendering del flusso di anteprima. Ignorare questa chiamata se non si vuole visualizzare l'anteprima del video.

Per entrambe le chiamate a RenderStream, il tipo di supporto è MEDIATYPE_Interleaved, ovvero video DV interleaved. In questo codice, Capture Graph Builder aggiunge automaticamente ogni filtro necessario, ad eccezione del filtro di acquisizione MSDV.

Video digitale in DirectShow