次の方法で共有


Type-1 DV ファイルをキャプチャする

[このページに関連付けられている機能である DirectShow はレガシ機能です。 これは、MediaPlayerIMFMediaEngineメディア ファンデーションの Audio/Video Capture に置き換えられました。 これらの機能は、Windows 10 および Windows 11 用に最適化されています。 新しいコードでは、可能な場合は、DirectShow ではなく、MediaPlayerIMFMediaEngineメディア ファンデーションの Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存コードを、新しい API を使用するように可能であれば書き直すことを提案しています。]

type-1 DV AVI ファイルには、1 つのインターリーブ ストリームが含まれています。 プレビュー中に type-1 ファイルをキャプチャするには、次の図に示すフィルター グラフを使用します。

プレビューを使用した type-1 キャプチャ

このグラフのフィルターは次のとおりです。

  • Smart Tee フィルターは、インターリーブされた DV をキャプチャ ストリームとプレビュー ストリームに分割します。 両方のストリームに同じインターリーブ データが含まれています。
  • AVI Mux および File Writer インターリーブ ストリームをディスクに書き込みます。
  • DV スプリッターは、インターリーブされたストリームを DV ビデオ ストリームとオーディオ ストリームに分割します。 どちらのストリームもプレビュー用にレンダリングされます。
  • DV ビデオ デコーダーは、プレビュー用に DV ビデオ ストリームをデコードします。

次のようにこのグラフを作成します。

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. ICaptureGraphBuilder2::SetOutputFileName を呼び出して、AVI 多重化フィルターをファイル ライター フィルターに接続します。
  2. ICaptureGraphBuilder2::RenderStream を呼び出し、ピン カテゴリをPIN_CATEGORY_CAPTUREしてキャプチャ ストリームをレンダリングします。 キャプチャ グラフ ビルダーは、スマート ティー フィルターを自動的に挿入します。
  3. 再び RenderStream を呼び出しますが、ピン カテゴリをPIN_CATEGORY_PREVIEWして、プレビュー ストリームをレンダリングします。 ビデオをプレビューしない場合は、この呼び出しをスキップします。

どちらの RenderStream 呼び出しでも、メディアの種類はMEDIATYPE_Interleavedされ、インターリーブ DV ビデオを意味します。 このコードでは、キャプチャ グラフ ビルダーは、MSDV キャプチャ フィルターを除き、必要なすべてのフィルターを自動的に追加します。

DirectShow のデジタル ビデオ