我尝试使用DirectShow录制视频,我需要一个H.264编码器滤镜。我试图安装:
x264vfw
像这里建议的那样:
how to use x264 encoder with directshow
但使用视频压缩器枚举器:
IEnumMoniker* EnumIterator = nullptr;
if (DeviceDenumerator->CreateClassEnumerator(CLSID_VideoCompressorCategory, &EnumIterator,
0) != S_OK)
{
return nullptr;
}
此过滤器仅列出32位应用程序。使用x64应用程序时,它不会出现。
如何安装该视频压缩器的x64版本?
答案 0 :(得分:1)
对于64位应用程序,您确实需要64位版本的过滤器(也称为x264vfw64
),您需要在SourceForge上查看以下注释:
从64位Windows(x264vfw64)的40_2491bm_40895版本开始,其中合并为一个安装程序,其中包含32位Windows(x264vfw)的版本。因此,如果您想使用最新版本的x264vfw,请从此处下载:http://sourceforge.net/projects/x264vfw/files/x264vfw/
因此,installer referenced there应该安装编码器过滤器的32位和64位版本。
更新。 64位版本的不可用性似乎是known problem。该票据说明64位子系统没有包装器来接收VFW编码器,并且安装的H.264压缩对于DirectShow仍然是不可见的。
我个人认为此描述不准确。实际上,当请求DirectShow视频编码器枚举时,有一个层可以选择较旧的Video For Windows编解码器(例如x264vfw)并通过AVI Compressor Filter包装器公开它们,以便DirectShow应用程序可以利用这些传统编解码器。
...使视频压缩管理器(VCM)编解码器能够加入过滤器图形。每个编解码器都显示为过滤器的单独实例。
64位Windows的64位子系统仍然具有此过滤器(与故障单解析中的语句相对)。然而,在64位DirectShow中可能确实存在这样的兼容层不再可用的原因。目前的状态似乎是x264vfw开发人员意识到了这个问题,并且没有或计划为其提供解决方案。