MF_TRANSCODE_ADJUST_PROFILE_FLAGS 枚举 (mfidl.h)

定义 在 MF_TRANSCODE_ADJUST_PROFILE 属性中设置的配置文件标志。

这些标志在拓扑生成期间由 MFCreateTranscodeTopology 检查。 基于这些标志, MFCreateTranscodeTopology 根据拓扑中使用的编码器的输入要求,通过修改流的配置设置来调整转码配置文件。

有关应用程序可以指定的流设置的详细信息,请参阅 使用转码 API

语法

typedef enum _MF_TRANSCODE_ADJUST_PROFILE_FLAGS {
  MF_TRANSCODE_ADJUST_PROFILE_DEFAULT = 0,
  MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES = 1
} MF_TRANSCODE_ADJUST_PROFILE_FLAGS;

常量

 
MF_TRANSCODE_ADJUST_PROFILE_DEFAULT
值: 0
Media Foundation 对音频和视频流使用应用程序指定的设置。 如果应用程序未提供所需的设置,则会创建拓扑,但编码会话失败。 对于视频流,将修改帧速率和交错模式设置。 有关详细信息,请参阅“备注”。
MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES
值:1
对于音频和视频流,通过复制输入源属性来填充缺少的流设置。 此标志可确保转码的输出文件与输入文件最匹配。

注解

如果指定 了MF_TRANSCODE_ADJUST_PROFILE_DEFAULT 标志,则会对视频流进行以下更改:

  • 如果在 MFCreateTranscodeTopologypSrc 参数中指定的媒体源的帧速率与应用程序在 MF_MT_FRAME_RATE 属性中指定的帧速率相差小于 1/1000,则配置文件将使用媒体源帧速率。 这是因为管道认为差异可以忽略不计。
  • 如果应用程序未通过设置 MF_MT_INTERLACE_MODE 属性指定交错模式,则配置文件将更改为使用渐进帧。
MF_TRANSCODE_ADJUST_PROFILE_DEFAULT标志必须附带应用程序提供的所需音频和视频流属性。 对于音频流,所需的属性如下所示: 对于视频流,所需的属性如下所示: 如果未设置这些属性, MFCreateTranscodeTopology 将创建拓扑,但媒体会话无法生成编码的文件。 故障代码取决于拓扑中的 MFT 节点。 例如,如果应用程序未设置帧大小,则 WMV 编码器无法对内容进行编码,并且应用程序通过媒体会话获取MF_E_INVALIDMEDIATYPE错误代码。

如果要使用输入流属性转码文件,请使用 MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES 标志。 在拓扑中插入 MFT 节点之前,输入源流属性将复制到输出媒体类型。 如果设置其他流属性,则此标志不会覆盖设置的值。 只有缺少的属性才使用输入源的属性值填充。 此标志在需要以与输入源相同的格式生成输出文件的 remux 方案中很有用。 如果要执行格式转换,请确保设置流的 MF_MT_SUBTYPE 属性,以指定拓扑生成器必须使用的编码器。 除非设置了 MF_TRANSCODE_DONOT_INSERT_ENCODER ,否则会将转换节点添加到拓扑中。 在本例中,和 内容未编码。 相反,如果容器允许,内容将嵌入到指定的容器中。

例如,假设输入源是 MP3 文件。 将容器设置为 MFTranscodeContainerType_ASF,不设置任何流属性,并设置 MF_TRANSCODE_ADJUST_PROFILE_USE_SOURCE_ATTRIBUTES 标志。 在这种情况下,生成的输出文件是包含 MP3 媒体数据的 ASF 文件 (.wma) 。 请注意,如果使用此标志,某些输入流属性和容器类型可能不兼容。

要求

   
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
标头 mfidl.h

另请参阅

Media Foundation 枚举

转码 API