IAMTimelineGroup::SetSmartRecompressFormat 方法

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

注意

[已弃用。 此 API 可能会从 Windows 的未来版本中删除。]

 

SetSmartRecompressFormat方法指定用于智能压缩的视频压缩格式。

音频组不支持智能重压。

语法

HRESULT SetSmartRecompressFormat(
   long *pFormat
);

参数

pFormat

指向描述压缩格式的 结构的指针。 目前,只有 SCompFmt0 结构有效。 必须将此参数强制转换为 long 类型的指针。

返回值

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

备注

调用此方法之前,请对同一组调用 IAMTimelineGroup::SetMediaType 方法以指定未压缩格式。

SetSmartRecompressFormat如果该方法成功,则可以使用智能呈现引擎输出压缩的视频流。 压缩的视频将具有 pFormat 参数中指定的宽度、高度和帧速率。 这些值将替代 SetMediaType 方法中为未压缩格式指定的值。 但是,为了获得智能再压缩的好处,这两种格式应该匹配。 换句话说,压缩格式和未压缩格式的高度、宽度和帧速率应相同。

如果智能呈现引擎无法生成压缩格式,它将生成未压缩的视频流。 如果发生这种情况,智能呈现引擎将在 IRenderEngine::ConnectFrontEnd 方法期间报告DEX_IDS_CANT_FIND_COMPRESSOR呈现错误。 应用程序可以通过 IAMErrorLog::LogError 方法捕获此错误。 (有关详细信息,请参阅 日志记录错误呈现错误。)

智能重压格式不是永久性的。 如果应用程序使用智能重压,则必须在加载项目文件时设置重压格式。

注意

头文件 Qedit.h 与版本 7 之后的 Direct3D 标头不兼容。

 

注意

若要获取 Qedit.h,请下载适用于 Windows Vista 和 .NET Framework 3.0 的Microsoft Windows SDK更新。 Qedit.h 在 Windows 7 和 .NET Framework 3.5 Service Pack 1 的Microsoft Windows SDK中不可用。

 

要求

要求
标头
Qedit.h

Strmiids.lib

另请参阅

IAMTimelineGroup 接口

错误和成功代码

智能渲染引擎

将项目写入文件