AVI 拆分器筛选器
AVI 拆分器筛选器用于播放 AVI 文件。 它接受采用 AVI 格式的数据,并将其拆分为其构成流,以便进一步处理和/或呈现。
Label | Value |
---|---|
筛选接口 | 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 | 返回流的名称,该名称取自 'strn' AVI 文件中的区块。 如果缺少此区块,Read 方法将返回E_INVALIDARG。 |
IPropertyBag::Write 方法返回E_FAIL。 AVI Mux 筛选器支持 IPropertyBag::Write 以将流属性保存到 AVI 文件中。
AVI 拆分器不允许下游筛选器使用自己的分配器。
文件中的交错持续时间确定 AVI 拆分器将分配多少内存来处理它。 在一个区块中交错的文件需要比将交错持续时间设置为一两个帧的文件处理更多的内存。 在现代计算机上,除非同时运行 AVI 拆分器多个实例,否则这通常不是问题。
寻求
如果文件包含视频流,则 AVI 拆分器支持按帧编号进行查找。 若要启用基于帧的查找,请使用值TIME_FORMAT_FRAME在筛选器Graph管理器上调用 IMediaSeeking::SetTimeFormat。
如果文件包含音频流,则 AVI 拆分器支持按样本编号查找。 若要启用基于样本的查找,请使用值TIME_FORMAT_SAMPLE在筛选器Graph管理器上调用 SetTimeFormat。
在这两种情况下,该流的输出图钉必须连接到呈现器筛选器。
相关主题