Freigeben über


Videovorschau (DirectShow)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Um ein Videovorschaudiagramm zu erstellen, rufen Sie die ICaptureGraphBuilder2::RenderStream-Methode wie folgt auf:

ICaptureGraphBuilder2 *pBuild; // Capture Graph Builder
// Initialize pBuild (not shown).

IBaseFilter *pCap; // Video capture filter.

/* Initialize pCap and add it to the filter graph (not shown). */

hr = pBuild->RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video, 
    pCap, NULL, NULL);

In diesem Beispiel wird Folgendes vorausgesetzt:

Der erste Parameter für die ICaptureGraphBuilder2::RenderStream-Methode gibt eine Anheftkategorie an. Verwenden Sie für ein Vorschaudiagramm PIN_CATEGORY_PREVIEW. Der zweite Parameter gibt einen Medientyp als Haupttyp-GUID an. Verwenden Sie für Videos MEDIATYPE_Video. DV-Geräte liefern verschachtelte Audio- und Videoinhalte, für die der Medientyp MEDIATYPE_Interleaved ist. (Weitere Informationen zur DV-Aufnahme finden Sie unter Digitales Video in DirectShow.)

Der dritte Parameter ist ein Zeiger auf die IBaseFilter-Schnittstelle des Erfassungsfilters. Die nächsten beiden Parameter werden in diesem Beispiel nicht benötigt. Sie werden verwendet, um zusätzliche Filter anzugeben, die möglicherweise zum Rendern des Datenstroms erforderlich sind. Wenn Sie den letzten Parameter auf NULL festlegen, wählt der Capture Graph Builder basierend auf dem Medientyp einen Standardrenderer für den Stream aus. Für Videos verwendet der Capture Graph Builder immer den Video Renderer-Filter als Standardrenderer.

Hinweis

In Windows XP und höher ist der Video Mixing Renderer (VMR) zwar der Standard-Videorenderer für IGraphBuilder-Methoden , aber nicht der Standardrenderer für die RenderStream-Methode . Auf jeder Plattform verwendet der Capture Graph Builder immer den alten Video Renderer-Filter, es sei denn, Sie geben etwas anderes an.

 

Obwohl die Pinkategorie als PIN_CATEGORY_PREVIEW angegeben wird, spielt es keine Rolle, ob der Filter tatsächlich über einen Vorschaunadel verfügt. es könnte einen Videoanschluss pin oder nur einen Aufnahme-Pin haben. In beiden Fällen erstellt der Capture Graph Builder automatisch das richtige Diagramm.

Das folgende Diagramm zeigt den einfachsten möglichen Graphen für die Videovorschau.

Videovorschaudiagramm

In diesem Diagramm verfügt der Aufnahmefilter über einen Vorschau-Pin, der direkt mit dem Videorenderer verbunden ist.

Wenn der Erfassungsfilter nur über einen Erfassungspin verfügt, fügt der Capture Graph Builder einen Smart Tee-Filter ein, der den Datenstrom in einen Aufnahmedatenstrom und einen Vorschaudatenstrom aufteilt. Dies wird ausführlicher unter Kombinieren von Videoaufnahme und Vorschau beschrieben.

In einigen Fällen muss der Videostream den Filter Overlay Mixer durchlaufen. Wenn ja, fügt die RenderStream-Methode sie automatisch dem Graphen hinzu.

Kombinieren von Videoaufnahme und Vorschau

Videoaufnahme