AVI 复用筛选器
[与此页面关联的功能(DirectShow)是一项旧功能。 它已被 MediaPlayer、IMFMediaEngine取代,并在媒体基金会 音频/视频捕获。 这些功能已针对 Windows 10 和 Windows 11 进行了优化。 Microsoft强烈建议新代码尽可能使用 MediaPlayer、IMFMediaEngine 和 Media Foundation 中的音频/视频捕获,而不是 DirectShow。 Microsoft建议重写使用旧 API 的现有代码,以尽可能使用新 API。]
AVI 复用器筛选器接受多个输入流,并将其交错为 AVI 格式。 该筛选器为每个输入流使用单独的输入引脚,并为 AVI 流使用一个输出引脚。
视频捕获或创作应用程序可以使用此筛选器将文件以 AVI 格式保存到磁盘。 筛选器通常连接到 文件编写器 筛选器,但它可以连接到输入引脚支持 IStream 的任何筛选器,IMemInputPin 接口。
标签 | 价值 |
---|---|
筛选器接口 | IBaseFilter、IConfigAviMux、IConfigInterleaving、IMediaSeeking、IPersistMediaPropertyBag、ISpecifyPropertyPages |
输入引脚媒体类型 | 与旧式 FOURCC 或MEDIATYPE_AUXLine21Data对应的任何主要类型。 (有关详细信息,请参阅 FOURCCMap 类。)
|
输入引脚接口 | IAMStreamControl、IMemInputPin、IPin、IPropertyBag、IQualityControl |
输出引脚媒体类型 | MEDIATYPE_Stream,MEDIASUBTYPE_Avi |
输出引脚接口 | IPin,IQualityControl |
筛选 CLSID | CLSID_AviDest |
属性页 CLSID | CLSID_AviMuxProptyPage、CLSID_AviMuxProptyPage1 |
可执行 | qcap.dll |
优点 | MERIT_DO_NOT_USE |
筛选器类别 | CLSID_LegacyAmFilterCategory |
言论
以下注释描述了 AVI Mux 筛选器功能的各个方面。
引 脚
创建 AVI Mux 筛选器时,它具有一个输入引脚。 连接每个输入引脚时,筛选器会创建新的输入引脚。
流属性
输入引脚支持 IPropertyBag 接口,用于在单个流上设置属性。 目前,定义了以下属性:
财产 | 描述 |
---|---|
名字 | 流的名称。 此属性以 'strn' 区块的形式编写。 |
如果筛选器正在运行或暂停,则 IPropertyBag::Write 方法将返回VFW_E_WRONG_STATE。
帧速率
如果上游筛选器未在 AvgTimePerFrameVIDEOINFOHEADER 结构的成员中指定帧速率,AVI Mux 将使用第一个视频帧上的时间戳。 AVI 文件格式不支持可变帧速率。
已删除的帧
AVI Mux 筛选器根据每个样本的媒体时间(如果可用)或其他样本的时间戳计算丢弃的帧。 它为每个删除的帧写入零长度索引条目。
IMediaSeeking
AVI Mux 筛选器实现 IMediaSeeking 接口,如下所示:
- GetCurrentPosition 方法返回多路复用的当前进度。 如果要转码文件(比实时慢),此值比 Filter Graph 管理器返回的值更准确。 有关详细信息,请参阅 GetCurrentPosition 参考页的“备注”部分。
- GetDuration 方法查询每个上游筛选器,并返回最长流的持续时间。 如果其中任一筛选器失败(或不支持 IMediaSeeking),AVI Mux 将返回一个失败代码,并在找到最长持续时间的 pDuration 参数中填充。 但是,在这种情况下,pDuration 的值不一定是最长输入流的长度。
- AVI Mux 不实现 GetStopPosition、GetPositions、GetAvailable、GetRate 或 GetPreroll 方法;它也不实现任何 Set* 方法进行查找。
AVI 2.0 文件格式扩展
DirectShow 目前支持以下 AVI 2.0 文件格式扩展:
- 增加 AVI 文件大小(大于 1 GB)
- 分层索引编制
有关详细信息,请参阅 OpenDML AVI M-JPEG 文件格式小组委员会发布的“OpenDML AVI 文件格式扩展”版本 1.02。
相关主题