AVI 拆分器筛选器

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

AVI 拆分器筛选器用于播放 AVI 文件。 它接受 AVI 格式的数据,并将其拆分为其构成流,以便进一步处理和/或呈现。

Label
筛选器接口 IAMMediaContentIBaseFilterIPersistMediaPropertyBag
输入引脚媒体类型 MEDIATYPE_Stream、MEDIASUBTYPE_Avi
输入引脚接口 IPinIQualityControl
输出引脚媒体类型 通常 MEDIATYPE_VideoMEDIATYPE_Audio。 确切的类型取决于文件的内容、文件是否已压缩以及所使用的编解码器。
输出引脚接口 IMediaPositionIMediaSeekingIPin、IPropertyBag、 IQualityControl
筛选器 CLSID CLSID_AviSplitter
属性页 CLSID 无属性页。
可执行文件 quartz.dll
优点 MERIT_NORMAL
筛选器类别 CLSID_LegacyAmFilterCategory

 

备注

此筛选器通常连接到其输入引脚上的 异步文件源 筛选器。 它可以连接到输出引脚支持 IAsyncReader 的任何筛选器,并为 AVI 拆分器筛选器的输入引脚提供正确的媒体类型。

AVI 拆分器上的输出引脚支持 IPropertyBag::Read 方法,用于从单个流读取属性。 目前定义了以下属性。

属性 说明
name 返回流的名称,取自 AVI 文件中的 'strn' 区块。 如果此区块不存在,Read 方法将返回E_INVALIDARG。

 

IPropertyBag::Write 方法返回E_FAIL。 AVI Mux 筛选器支持 IPropertyBag::Write,以便将流属性保存到 AVI 文件中。

AVI 拆分器不允许下游筛选器使用其自己的分配器。

文件中的交错持续时间决定了 AVI 拆分器将分配多少内存来处理它。 与交错持续时间设置为一到两帧的文件相比,在一秒区块中交错的文件需要更多内存来处理。 在现代计算机上,这通常不是问题,除非同时运行 AVI 拆分器的多个实例。

寻求

如果文件包含视频流,AVI 拆分器支持按帧编号查找。 若要启用基于帧的查找,请在 Filter Graph 管理器上调用 IMediaSeeking::SetTimeFormat,其值TIME_FORMAT_FRAME

如果文件包含音频流,AVI 拆分器支持按样本编号查找。 若要启用基于示例的查找,请在筛选器关系图管理器上调用 SetTimeFormat ,其值 TIME_FORMAT_SAMPLE

在这两种情况下,该流的输出引脚都必须连接到呈现器筛选器。

DirectShow 筛选器