实例化编码器 MFT
在 Microsoft 媒体基础中,编码器作为媒体基础转换 (MFT) 实现。 在创建编码器之前,必须先找到最符合需求的编码器。
Windows Media 音频编解码器
类别:MFT_CATEGORY_AUDIO_ENCODER
主要类型:MFMediaType_Audio
子类型:MFAudioFormat_WMAudioV9、MFAudioFormat_WMAudioV8、MFAudioFormat_WMAudio_Lossless、MFAudioFormat_WMASPDIF
Windows Media 视频编解码器
类别:MFT_CATEGORY_VIDEO_ENCODER
主要类型:MFMediaType_Video
子类型:MFVideoFormat_WVC1、MFVideoFormat_WMV3、MFVideoFormat_WMV2、MFVideoFormat_WMV1
媒体基础提供多个函数,应用程序可以调用这些函数来枚举系统中可用的各种编码器。 编码器注册为 COM 对象,注册表项遵循 COM 类工厂的标准格式。 注册表维护编码器的 CLSID,这些编码器按媒体格式(音频或视频)分类。 Windows Media 编码器的类标识符在 wmcodecdsp.h 头文件中定义为常量。 在媒体基础中,可以通过调用 MFTRegisterLocal 或 MFTRegisterLocalByCLSID 来注册编码器,方法是指定类别、支持的输入类型和支持的输出类型。 通过这些函数成功注册后,媒体基础枚举函数会考虑 MFT。
若要创建编码器 MFT 的实例,应用程序具有以下选择。
- 直接创建编码器 MFT 并接收指向 IMFTransform 接口的指针。 有关详细信息,请参阅使用 CoCreateInstance 创建编码器。
- 为编码器 MFT 创建激活对象的实例,并接收指向 IMFActivate 接口的指针。 有关详细信息,请参阅使用编码器的激活对象。
如果应用程序使用管道层 ASF 组件将文件编码为 ASF 格式,则必须将编码器 MFT 作为转换节点插入管道中。 在编码拓扑中创建转换节点时,可以将对象类型设置为指向 IMFTransform 接口或 IMFActivate 对象的指针。 媒体基础为 Windows Media 编码器提供激活对象,以便可以方便地将其设置为编码拓扑中的转换节点。 解析拓扑后,媒体会话使用激活对象创建编码器 MFT 的实例。
相关主题