MPEG 示例属性

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

MPEG 示例具有以下特征。

时间戳

并非所有样本都有启动和停止时间。 数据包和有效负载数据的示例停止时间没有用;它通常设置为开始时间加 1。 如果从它们生成的系统层数据包具有有效的 PTS,则 MPEG 数据包或有效负载数据样本将设置启动和停止时间。

有关时间戳的详细信息,请参阅 ISO1-11172 的第 2.4.1 节:“数据包标头可能包含引用数据包中第一个访问单元的 DTS 和 PTS) (解码和/或演示时间戳。

对于MPEG_Stream主要类型,开始时间是第一个字节的字节位置,其评级为每秒 1 字节。 停止时间是最后一个字节的字节位置。 因此,连续采样的第一个数据包的停止时间应等于下一个数据包的开始时间。 对于视频 CD 数据,媒体的来源必须与 CDFS 公开的视频 CD 文件的格式与开始时的标准 RIFF 区块匹配。

对于 MPEG 视频数据包和有效负载类型,时间戳是其图片开始代码从示例中开始的第一个视频帧的呈现时间。

对于 MPEG 音频数据包和有效负载类型,时间戳是同步代码从示例中开始的第一个音频帧的呈现时间。

假定处理筛选器可以成功预生成没有时间戳的数据包和有效负载数据。

中断

例如,如果流 (存在中断、实时数据中的间隙或数据中的错误或查找) 之后,则会在下一个媒体示例中设置不连续属性。 这也允许时间戳中断。

流结束通知

当解码器收到此通知时,它必须处理任何缓冲数据。 然后,任何新数据都必须从非连续属性开始。

DirectShow 中的 MPEG-2 支持