筛选器类别

[与本页关联的功能 DirectShow 是一项旧版功能。 它已被 MediaPlayerIMFMediaEngine媒体基础中的音频/视频捕获所取代。 这些功能已针对 Windows 10 和 Windows 11 进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngine媒体基础中的音频/视频捕获,而不是 DirectShow。 如果可能,Microsoft 建议应重写使用旧 API 的现有代码,以尽可能地使用新的 API。]

下表列出了 DirectShow 筛选器类别的 CLSID。

DirectShow 筛选器类别

此处列出的类别由筛选器映射器枚举。 但在默认情况下,筛选器映射器会忽略 MERIT_DO_NOT_USE 或更少优点的类别。 有关更多信息,请参阅 IFilterMapper2::EnumMatchingFilters。 这里列出的所有类别也可以使用系统设备枚举器来枚举。

Uuids.h 中声明了以下类别。 包含头文件 Dshow.h。

友好名称 CLSID 优点
音频捕获源 CLSID_AudioInputDeviceCategory MERIT_DO_NOT_USE
音频压缩器 CLSID_AudioCompressorCategory MERIT_DO_NOT_USE
音频呈现器 CLSID_AudioRendererCategory MERIT_NORMAL
设备控制筛选器 CLSID_DeviceControlCategory MERIT_DO_NOT_USE
DirectShow 筛选器 CLSID_LegacyAmFilterCategory MERIT_NORMAL
外部呈现器 CLSID_TransmitCategory MERIT_DO_NOT_USE
Midi 呈现器 CLSID_MidiRendererCategory MERIT_NORMAL
视频捕获源 CLSID_VideoInputDeviceCategory MERIT_DO_NOT_USE
视频压缩器 CLSID_VideoCompressorCategory MERIT_DO_NOT_USE
WDM 流解压缩设备 CLSID_DVDHWDecodersCategory注意:此类别包含硬件 DVD 解码器。
MERIT_DO_NOT_USE
WDM 流捕获设备 AM_KSCATEGORY_CAPTURE MERIT_DO_NOT_USE
WDM 流十字形设备 AM_KSCATEGORY_CROSSBAR MERIT_DO_NOT_USE
WDM 流呈现设备 AM_KSCATEGORY_RENDER MERIT_DO_NOT_USE
WDM 流 T 形/分音器设备 AM_KSCATEGORY_SPLITTER MERIT_DO_NOT_USE
WDM 流 TV 音频设备 AM_KSCATEGORY_TVAUDIO MERIT_DO_NOT_USE
WDM 流 TV 调试器设备 AM_KSCATEGORY_TVTUNER MERIT_DO_NOT_USE
WDM 流 VBI 编解码器 AM_KSCATEGORY_VBICODEC MERIT_DO_NOT_USE

头文件 Ks.h 中声明了以下类别。

友好名称 CLSID 优点
WDM 流通讯转换 KSCATEGORY_COMMUNICATIONSTRANSFORM MERIT_DO_NOT_USE
WDM 流数据转换 KSCATEGORY_DATATRANSFORM MERIT_DO_NOT_USE
WDM 流接口转换 KSCATEGORY_INTERFACETRANSFORM MERIT_DO_NOT_USE
WDM 流混音器设备 KSCATEGORY_MIXER MERIT_DO_NOT_USE

头文件 Bdamedia.h 中声明了以下类别。 包括以下头文件:ks.h、ksmedia.h 和 bdamedia.h。

友好名称 CLSID 优点
BDA 网络供应商 KSCATEGORY_BDA_NETWORK_PROVIDER MERIT_NORMAL
BDA 接收器组件 KSCATEGORY_BDA_RECEIVER_COMPONENT MERIT_DO_NOT_USE
BDA 绘制筛选程序 KSCATEGORY_IP_SINK MERIT_DO_NOT_USE
BDA 源筛选器 KSCATEGORY_BDA_NETWORK_TUNER MERIT_DO_NOT_USE
BDA 传输信息呈现器 KSCATEGORY_BDA_TRANSPORT_INFORMATION MERIT_NORMAL

注意

解码器在“DirectShow 筛选器”类别 (CLSID_LegacyAmFilterCategory) 下注册。

其他筛选器类别

此处列出的类别可以用系统设备枚举器来进行枚举,但不会向筛选器映射器显示,智能连接也不使用这些类别。

头文件 Qedit.h 中声明了以下类别。

友好名称 CLID 优点
视频效果(1 个输入) CLSID_VideoEffects1Category MERIT_DO_NOT_USE
视频效果(2 个输入) CLSID_VideoEffects2Category MERIT_DO_NOT_USE

这些类别包含 DirectShow 编辑服务的视频效果和过渡:

  • “视频效果(1 个输入)”包含视频效果。
  • “视频效果(2 个输入)”包含视频过渡。

有关详细信息,请参阅枚举效果和过渡

头文件 Uuids.h 中声明了以下类别。 包含头文件 Dshow.h。

友好名称 CLID 优点
EncAPI 编码器 CLSID_MediaEncoderCategory MERIT_DO_NOT_USE
EncAPI 多路复用器 CLSID_MediaMultiplexerCategory MERIT_DO_NOT_USE

DirectShow 筛选器元类别

友好名称 CLSID 优点
ActiveMovie 筛选器类别 CLSID_ActiveMovieCategories 不适用

此元类别包含筛选器类别的列表。 如果筛选器类别未出现在此列表中,筛选器映射器将忽略该类别,这意味着该筛选器不适用于智能连接

要枚举筛选器类别列表,请调用 ICreateDevEnum::CreateClassEnumerator 并输入 CLSID_ActiveMovieCategories 值。 此方法返回的标记支持以下属性。

属性名称 说明
"FriendlyName" 类别名称 (VT_BSTR)。
"Merit" 类别优点 (VT_I4)。 如果不存在此属性,则作为 MERIT_DO_NOT_USE 处理。
"CLSID" 类别 CLSID (VT_BSTR)。

要在此列表中添加新的筛选器类别,请调用 IFilterMapper2::CreateCategory

DMO 类别

DirectX 媒体对象 (DMO) 使用的枚举机制与 DirectShow 筛选器有所不同。 有关详细信息,请参阅注册 DMO。 但可以使用系统设备枚举器来枚举 DMO 类别。 标记绑定到 DMO 封装程序筛选器,并自动通过 DMO 来初始化筛选器。

此外,为了实现智能连接,一些 DMO 类别被映射为 DirectShow 筛选器类别:

DMO 类别 DirectShow 等效项
DMOCATEGORY_AUDIO_ENCODER CLSID_AudioCompressorCategory
DMOCATEGORY_AUDIO_DECODER CLSID_LegacyAmFilterCategory
DMOCATEGORY_VIDEO_ENCODER CLSID_VideoCompressorCategory
DMOCATEGORY_VIDEO_DECODER CLSID_LegacyAmFilterCategory

请注意,视频效果和音频效果类别不会映射到任何 DirectShow 类别。

常量和 GUID

枚举设备和筛选器

智能连接

注册表项的布局

使用筛选器映射器

使用系统设备枚举器