AVI 拆分器筛选器

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

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

标签 价值
筛选器接口 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 方法。 目前,定义了以下属性。

财产 描述
名字 返回从 AVI 文件中的 'strn' 区块获取的流的名称。 如果此区块不存在,Read 方法将返回E_INVALIDARG。

 

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

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

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

寻求

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

如果文件包含音频流,AVI 拆分器支持按样本编号进行查找。 若要启用基于样本的查找,请使用值 TIME_FORMAT_SAMPLE在 Filter Graph 管理器上调用 SetTimeFormat

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

DirectShow 筛选器