SMPTE 时间代码支持
[与此页面关联的功能(Windows Media Format 11 SDK)是一项旧功能。 它已被 源读取器 和 接收器编写器取代。 源读取器 和 接收器编写器 已针对 Windows 10 和 Windows 11 进行了优化。 Microsoft强烈建议新代码尽可能使用 源读取器 和 接收器编写器,而不是 Windows 媒体格式 11 SDK。 Microsoft建议重写使用旧 API 的现有代码,以尽可能使用新 API。]
Windows 媒体格式 SDK 为 SMPTE 时间代码提供有限的支持,这是电影和电视的标准时间代码格式。 可以将包含示例的 SMPTE 时间代码数据作为数据单元扩展。 扩展的数据部分是一个 WMT_TIMECODE_EXTENSION_DATA 结构,其中包含原始 SMPTE 时间戳中的信息。
维护 ASF 文件中的 SMPTE 时间代码具有性能限制。 每个具有关联 SMPTE 时间戳的示例都需要传输时间戳结构中的 14 个字节。 在流式处理方案中,这种增加的带宽要求可能是灾难性的。 因此,建议仅在视频编辑过程中将 SMPTE 时间代码保存在 ASF 文件中,这通常使用本地文件完成。 创建最终文件时,应删除数据单元扩展。
可以像读取任何其他数据单元扩展一样读取 SMPTE 时间戳,但读取对象提供对 SMPTE 时间代码搜索的集成支持。 若要能够搜索 SMPTE 时间戳,必须先按 SMPTE 时间代码为文件编制索引。 可以使用 IWMIndexer2::Configure 方法将索引器配置为索引时间代码。
使用异步读取器,可以使用 IWMReaderTimecode 接口和 IWMReaderAdvanced3::StartAtPosition 方法通过 SMPTE 时间戳导航文件。 使用同步读取器时,请使用 IWMSyncReader2::SetRangeByTimecode。
相关主题