使用 MPEG-2 拆分器

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

注意

从 Microsoft® Windows® XP 开始,MPEG-2 拆分器筛选器已弃用。 请改用 MPEG-2 多路复用器

 

MPEG-2 拆分器筛选器支持至少包含以下流类型之一的 MPEG-2 程序流的拉取模式播放。

  • MPEG-2 视频
  • MPEG-2 音频
  • 编码为 DVD-Video 定义的 Dolby AC-3 音频
  • LPCM (线性脉冲代码调节) 编码为DVD-Video定义的音频

有关 MPEG-2 拆分器支持的媒体类型的列表,请参阅 MPEG-2 拆分器媒体类型

MPEG-2 拆分器不分析传输流。 将 MPEG-2 多复用器筛选器用于仅) (推送模式的传输流。

时间戳

播放 MPEG-2 程序流时,MPEG-2 拆分器筛选器会将其遇到的第一个系统时钟引用视为任何流的时间源。 这不同于使用演示时间戳的 MPEG-1 流拆分器 IAMParse::GetParseTime 方法返回已处理数据的 (可能估计) 流系统时钟时间。

如果 MPEG-2 拆分器筛选器遇到具有不连续属性集的输入样本 (则可以使用 IMediaSample::SetDiscontinuityIMediaSample2::SetProperties) 设置不连续属性, 它会跳过数据,直到找到数据中的第一个包,并调整其时间戳,使该包的系统时钟引用 (SCR) 被视为与中断前的 SCR 时间相同。 如果 SCR 时钟显示为向后跳跃或向前跳跃超过一秒,则 (符合 MPEG-2 程序流规范) ,这也被视为时钟不连续,并且从传递给下游筛选器的时间戳中减去明显的时钟差异。

流选择

播放 MPEG-2 程序流时,会选择遍历节目流的第一个视频流和第一个音频流。 最多支持一个音频和一个视频输出引脚。 通过 IAMStreamSelect 接口,可以选择相同类型的不同流,最多可以选择系统标头中的音频限制指定的数量。 对于 MPEG-2 音频,当前假定流形成从流0xC0开始的连续范围。

支持的接口

MPEG-2 拆分器筛选器支持以下接口。

DirectShow 中的 MPEG-2 支持