AVI 拆分器筛选器
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
AVI 拆分器筛选器用于播放 AVI 文件。 它接受 AVI 格式的数据,并将其拆分为其构成流,以便进一步处理和/或呈现。
Label | 值 |
---|---|
筛选器接口 | IAMMediaContent、 IBaseFilter、 IPersistMediaPropertyBag |
输入引脚媒体类型 | MEDIATYPE_Stream、MEDIASUBTYPE_Avi |
输入引脚接口 | IPin、 IQualityControl |
输出引脚媒体类型 | 通常 MEDIATYPE_Video 或 MEDIATYPE_Audio。 确切的类型取决于文件的内容、文件是否已压缩以及所使用的编解码器。 |
输出引脚接口 | IMediaPosition、 IMediaSeeking、 IPin、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。
在这两种情况下,该流的输出引脚都必须连接到呈现器筛选器。
相关主题