捕获类型 1 DV 文件

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

类型 1 DV AVI 文件包含单个交错流。 若要在预览时捕获类型 1 文件,请使用下图所示的筛选器图。

使用预览版捕获类型 1

此图中的筛选器包括:

按如下所示生成此图:

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. 使用引脚类别PIN_CATEGORY_CAPTURE调用 ICaptureGraphBuilder2::RenderStream 以呈现捕获流。 捕获图形生成器会自动插入 Smart Tee 筛选器。
  3. 再次调用 RenderStream,但使用引脚类别PIN_CATEGORY_PREVIEW,以呈现预览流。 如果不想预览视频,请跳过此调用。

对于对 RenderStream 的两个调用,媒体类型MEDIATYPE_Interleaved,即交错 DV 视频。 在此代码中,捕获图形生成器会自动添加除 MSDV 捕获筛选器之外所需的每个筛选器。

DirectShow 中的数字视频