AVI 拆分器筛选器
[与此页面关联的功能(DirectShow)是一项旧功能。 它已被 MediaPlayer、IMFMediaEngine取代,并在媒体基金会 音频/视频捕获。 这些功能已针对 Windows 10 和 Windows 11 进行了优化。 Microsoft强烈建议新代码尽可能使用 MediaPlayer、IMFMediaEngine 和 Media Foundation 中的音频/视频捕获,而不是 DirectShow。 Microsoft建议重写使用旧 API 的现有代码,以尽可能使用新 API。]
AVI 拆分器筛选器用于播放 AVI 文件。 它接受采用 AVI 格式的数据,并将其拆分为其构成流,以便进一步处理和/或呈现。
标签 | 价值 |
---|---|
筛选器接口 | 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 方法。 目前,定义了以下属性。
财产 | 描述 |
---|---|
名字 | 返回从 AVI 文件中的 'strn' 区块获取的流的名称。 如果此区块不存在,Read 方法将返回E_INVALIDARG。 |
IPropertyBag::Write 方法返回E_FAIL。 AVI Mux 筛选器支持 IPropertyBag::Write,用于将流属性保存到 AVI 文件中。
AVI 拆分器不允许下游筛选器使用自己的分配器。
文件中的交错持续时间确定 AVI 拆分器将分配多少内存来处理它。 在一秒钟区块中交错的文件需要更多的内存来处理,而文件的交错持续时间设置为一两个帧。 在现代计算机上,这通常不是问题,除非同时运行 AVI 拆分器的多个实例。
寻求
如果文件包含视频流,AVI 拆分器支持按帧编号查找。 若要启用基于帧的查找,请使用值 TIME_FORMAT_FRAME在 Filter Graph Manager 上调用 IMediaSeeking::SetTimeFormat。
如果文件包含音频流,AVI 拆分器支持按样本编号进行查找。 若要启用基于样本的查找,请使用值 TIME_FORMAT_SAMPLE在 Filter Graph 管理器上调用 SetTimeFormat。
在这两种情况下,该流的输出引脚必须连接到呈现器筛选器。
相关主题