Web カメラ ビデオをプレビューする必要がある Directshow アプリケーションがあり、ユーザーが [録画] をクリックすると、ビデオのファイルへのキャプチャを開始する必要があります。
そのために、PREVIEW ピンを RENDER フィルターに接続し、CAPTURE ピンをファイルに保存する AVI_MUX フィルターに接続して、1 つのキャプチャ グラフを作成しました。
次のようになります。
/[PREVIEW PIN]-->[VIDEO_RENDERER]--->[SCREEN]
[VIDEO CAPTURE FILTER] /
\
\[CAPTURE PIN]--->[AVI_MUX]--->[FILE WRITER]
グラフで Run() を呼び出すと、ビデオが画面に表示され、ファイルに正しく保存されます。
私の質問は、CAPTURE_PIN セクションなしでグラフの PREVIEW PIN セクションのみを実行するにはどうすればよいかということです。
私の最初のアイデアは、それぞれのフィルターを手動で開始/停止することでしたが、Microsoft の Directshow amcap サンプルを調べたところ、実際には 2 つの別々のグラフが作成されました。1 つはプレビュー用、もう 1 つはキャプチャ用です。ユーザーがビデオをプレビューしたい場合は、キャプチャ グラフを破棄し、プレビュー グラフを作成します。また、ユーザーがビデオを録画したい場合は、プレビュー グラフを破棄し、キャプチャ グラフを作成します。
特に、1 つのグラフに既に PREVIEW ピンと CAPTURE ピンの両方が含まれているため、これは無駄に思えます。ここで正しいアプローチは何ですか?