1

我正在使用 DirectShowLib 和 SampleGrabber 来捕获 AVI 文件的视频帧。我通过使用图形生成器和几个过滤器来实现这一点。一切正常,我能够初始化图形和过滤器。

然后我添加了代码来获取一些视频信息,如尺寸、帧速率等。为此,我使用了 IMediaDet。但是当我尝试初始化它时:

Type t = Type.GetTypeFromCLSID(new Guid("65BD0710-24D2-4ff7-9324-ED2E5D3ABAFA"));
IMediaDet mediaDet = (IMediaDet)Activator.CreateInstance(t);

Activator.CreateInstance(t)抛出异常:

由于以下错误,检索具有 CLSID {65BD0710-24D2-4FF7-9324-ED2E5D3ABAFA} 的组件的 COM 类工厂失败:80040154。

我不认为这是构建的问题,因为过滤器和图形构建器正在初始化。任何人都有任何想法,或者是否有任何其他 API 可以用来收集 AVI 文件信息,如尺寸、帧速率、视频长度?

4

2 回答 2

1

我想你打错了Guid。它与 qedit.dll 支持的 65BD0711-24D2-4FF7-9324-ED2E5D3ABAFA 接近,相差一位数。

于 2010-01-23T16:12:21.803 回答
0

0x80040154 - 未注册类 - 通常这意味着两件事之一 - CLSID 错误,或者实现该类的 DLL/EXE 未(正确)在机器上注册。

您可以检查 HKCR/CLSID 下的注册表,看看它是否真的在机器上注册。

于 2010-01-23T15:42:47.337 回答