用于DirectShow的H.264编码器滤波器

时间:2018-05-25 17:24:03

标签: video h.264 directshow encoder

我尝试使用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版本?

1 个答案:

答案 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开发人员意识到了这个问题,并且没有或计划为其提供解决方案。