Nur Directshow-Vorschau und Aufnahme und Vorschau mit einem einzelnen Diagramm

Ich habe eine Directshow-Anwendung, die eine Vorschau eines Webcam-Videos anzeigen muss. Wenn der Benutzer auf "Aufzeichnen" klickt, muss das Video in einer Datei aufgezeichnet werden.

Zu diesem Zweck habe ich ein einzelnes Capture-Diagramm erstellt, wobei der PREVIEW-Pin mit einem RENDER-Filter und der CAPTURE-Pin mit einem AVI_MUX-Filter verbunden ist, der in einer Datei gespeichert wird.

Es sieht ungefähr so ​​aus:

                        /[PREVIEW PIN]-->[VIDEO_RENDERER]--->[SCREEN]
[VIDEO CAPTURE FILTER] /
                       \
                        \[CAPTURE PIN]--->[AVI_MUX]--->[FILE WRITER]

Wenn ich in der Grafik Run () aufrufe, wird das Video auf dem Bildschirm angezeigt und korrekt in der Datei gespeichert.

Meine Frage ist, wie kann ich nur den Abschnitt PREVIEW PIN des Diagramms ohne den Abschnitt CAPTURE_PIN ausführen.

Meine ursprüngliche Idee war, die entsprechenden Filter manuell zu starten / zu stoppen. Dann habe ich mir das Beispiel für Directshow amcap von Microsoft angesehen und sie erstellen tatsächlich zwei separate Diagramme. Eine für die Vorschau und eine für die Aufnahme. Wenn der Benutzer eine Vorschau des Videos anzeigen möchte, zerstört er das Erfassungsdiagramm und erstellt ein Vorschaubild. Wenn der Benutzer Videos aufzeichnen möchte, zerstört er das Vorschaubild und erstellt ein Erfassungsdiagramm.

Das erscheint verschwenderisch, zumal ein einzelnes Diagramm bereits die Pins PREVIEW und CAPTURE enthält. Was ist hier der richtige Ansatz?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage