Erfassen einer DV-Datei vom Typ 1

Eine DV AVI-Datei vom Typ 1 enthält einen einzelnen überlappenden Stream. Um eine Datei vom Typ 1 während der Vorschau zu erfassen, verwenden Sie das im folgenden Diagramm gezeigte Filterdiagramm.

Type-1-Erfassung mit Vorschau

Filter in diesem Diagramm umfassen Folgendes:

  • Der Smart Tee-Filter teilt die überlappende DV in einen Erfassungsstream und einen Vorschaudatenstrom auf. Beide Streams enthalten dieselben überlappende Daten.
  • AVI Mux und File Writer schreiben den verschachtelten Stream auf den Datenträger.
  • Der DV-Splitter teilt den überlappenden Stream in einen DV-Videostream und einen Audiostream auf. Beide Streams werden für die Vorschau gerendert.
  • Der DV-Videodecoder decodiert den DV-Videostream für die Vorschau.

Erstellen Sie dieses Diagramm wie folgt:

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. Rufen Sie ICaptureGraphBuilder2::SetOutputFileName auf, um den AVI Mux-Filter mit dem File Writer-Filter zu verbinden.
  2. Rufen Sie ICaptureGraphBuilder2::RenderStream mit der Pinkategorie PIN _ CATEGORY CAPTURE _ auf, um den Erfassungsstream zu rendern. Der Capture Graph Builder fügt automatisch den Smart Tee-Filter ein.
  3. Rufen Sie RenderStream erneut auf, aber mit der Pinkategorie PIN _ CATEGORY _ PREVIEW, um den Vorschaustream zu rendern. Überspringen Sie diesen Aufruf, wenn Sie keine Vorschau des Videos anzeigen möchten.

Bei beiden Aufrufen von RenderStream lautet der Medientyp MEDIATYPE _ Interleaved, d.h. überlappende DV-Videos. In diesem Code fügt capture Graph Builder automatisch jeden erforderlichen Filter hinzu, mit Ausnahme des MSDV-Erfassungsfilters.

Digitales Video in DirectShow