关于速率控制

在 Media Foundation 中, 播放速率 表示为当前播放速率与正常播放速率的比率。 例如,2.0 的速率是正常速度的两倍,而 0.5 是正常速度的一半。 负值表示反向播放。 -2.0 的播放速率以两倍于正常速度向后播放流。 0 的速率会导致呈现一个帧;之后,演示时钟不会前进。 若要以零速率获取另一帧,应用程序必须查找新位置。

应用程序使用以下接口来控制播放速率。

若要获取这两个接口,请在媒体会话上调用 IMFGetService::GetService 。 服务标识符为MF_RATE_CONTROL_SERVICE。

通过使用速率控制服务,应用程序可以实现快进和反向播放。

细化

精简 是减少流中样本数以降低总比特率的任何过程。 对于视频,精简通常通过删除增量帧并仅传送关键帧来实现。 通常,管道可以使用精简播放支持更快的播放速率,因为数据速率较低,因为增量帧未解码。

精简不会更改样本上的时间戳或持续时间。 例如,如果视频流的标称速率为每秒 25 帧,则即使媒体源删除所有增量帧,每个帧的持续时间仍标记为 40 毫秒。 这意味着一个帧的结束和下一帧的开始之间会有一个时间差。

清理

清理是通过与滚动条、时间线或其他时间视觉表示形式交互,即时查找流中的特定点的过程。 这个词来自卷轴到卷带播放器的时代,当来回摇动卷轴以找到一个部分就像用磁带擦洗播放头。

通过将播放速率设置为零,在 Media Foundation 中实现清理。 有关详细信息,请参阅 如何执行清理

速率控制

查找、快进和反向播放

服务接口