【发布时间】:2022-11-22 05:01:41
【问题描述】:
我正在尝试使用以下代码找到可用的 DirectShow 视频编码器:
ICreateDevEnumPtr pEnm(CLSID_SystemDeviceEnum,NULL,CLSCTX_INPROC_SERVER);
// Video Compressor
if(pEnm!= NULL)
{
IEnumMonikerPtr pEnumMoniker;
hr = pEnm->CreateClassEnumerator(CLSID_VideoCompressorCategory,&pEnumMoniker,0);
//......
}
但是,系统(Windows 10 x64)中安装的一些视频压缩器有不同的类别。 例如“Microsoft MPEG-2 编码器”和“VisioForge H264 编码器”具有类别 {083863F1-70DE-11d0-BD40-00A0C911CE86} - CLSID_LegacyAmFilterCategory
如果我在我的代码中使用 CLSID_LegacyAmFilterCategory 而不是 CLSID_VideoCompressorCategory,我会得到很多不相关的对象。
您能否建议枚举系统中安装的 DirectShow 视频压缩器的正确方法?
【问题讨论】:
标签: directx directshow video-compression