0

我正在 DirectShow 中处理 MP4 过滤器。我目前正在尝试创建一个 IBaseFilter 对象,但其中一个要求是 CoCreateInstance 的 CLSID。

我对这个 ID 的来源感到困惑。我可以从 GraphEdit > Insert Filter 获得它吗?如果是这样,它给我的格式是 {00000000-0000-0000-0000-000000000000} 但是我见过的大多数例子都是格式

static const GUID CLSID_MPEG4Demux = { 0x025BE2E4, 0x1787, 0x4DA4, 0xA5, 0x85, 0xC5, 0xB2, 0xB9, 0xEE, 0xB5, 0x7C };

我需要一个转换器吗?

4

1 回答 1

4

CLSID 是注册类的基本 COM 标识符。注册为可供公众使用的 DirectShow 过滤器都有其 CLSID,由其开发人员硬编码。如果您在 MP4 过滤器上的工作假设您是 MP4 过滤器的开发人员,那么您需要将自己的 CLSID 放入(通过“创建 GUID”(guidgen.exe)工具、API生成)。如果要查找现有注册过滤器的 CLSID,可以使用 GraphEdit 查找,或者更确切地说是GraphStudioNext浏览注册过滤器列表:

在此处输入图像描述

于 2016-05-04T17:28:55.417 回答