MFCreateTranscodeTopology 函数 (mfidl.h)

创建部分转码拓扑。

基础拓扑生成器通过连接所需的管道对象(源、编码器和接收器)来创建部分拓扑。 编码器和接收器是根据转码配置文件中调用方指定的设置配置的。

若要创建转码配置文件对象,请调用 MFCreateTranscodeProfile 函数,并通过调用相应的 IMFTranscodeProfile 方法设置所需的属性。

配置的转码配置文件将传递到 MFCreateTranscodeTopology 函数,该函数使用适当的设置创建转码拓扑。 然后,调用方可以在媒体会话上设置此拓扑,并启动会话以开始编码过程。 媒体会话结束时,将生成转码文件。

语法

HRESULT MFCreateTranscodeTopology(
  [in]  IMFMediaSource      *pSrc,
  [in]  LPCWSTR             pwszOutputFilePath,
  [in]  IMFTranscodeProfile *pProfile,
  [out] IMFTopology         **ppTranscodeTopo
);

参数

[in] pSrc

指向媒体源的指针,用于封装要转码的源文件。 媒体源对象公开 IMFMediaSource 接口,可以使用源解析程序创建。 有关详细信息,请参阅 使用源解析程序

[in] pwszOutputFilePath

指向以 null 结尾的字符串的指针,该字符串包含要生成的输出文件的名称和路径。

[in] pProfile

指向转码配置文件的指针,该配置文件包含音频流、视频流和文件写入到的容器的配置设置。 转码配置文件对象公开 IMFTranscodeProfile 接口,必须通过调用 MFCreateTranscodeProfile 函数来创建。 创建对象后,调用方必须通过调用相应的 IMFTranscodeProfile 方法提供配置设置。

[out] ppTranscodeTopo

接收指向转码拓扑对象的 IMFTopology 接口的指针。 调用方必须释放接口。

返回值

函数返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
函数调用成功, ppTranscodeTopo 接收指向转码拓扑的指针。
E_INVALIDARG
pwszOutputFilePath 包含无效字符。
MF_E_MEDIA_SOURCE_NO_STREAMS_SELECTED
媒体源中未选择流。
MF_E_TRANSCODE_NO_CONTAINERTYPE
配置文件不包含 MF_TRANSCODE_CONTAINERTYPE 属性。
MF_E_TRANSCODE_NO_MATCHING_ENCODER
对于一个或多个流,找不到接受配置文件中给定媒体类型的编码器。
MF_E_TRANSCODE_PROFILE_NO_MATCHING_STREAMS
配置文件未为媒体源上的任何选定流指定媒体类型。

注解

有关使用此函数的示例代码,请参阅以下主题:

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 mfidl.h
Library Mf.lib
DLL Mf.dll

另请参阅

IMFTopology

媒体基础函数

拓扑

转码 API