Backward scrubbing是否像使用AVPlayerItem在iOS中进行前向擦洗一样顺畅?

时间:2016-12-07 08:35:25

标签: ios swift avplayer avplayeritem

我使用AVPlayer进行视频播放。我正在使用以下代码行进行前向擦洗,它工作正常。但是当我使用滑块向后擦洗时,它看起来很不稳定并且跳过几帧。

let valueToUpdate = Float(value) * Float(self.highlightsPlayer.clipTimeDuration)
self.highlightsPlayer.highlightsPlayerItem?.seek(to: CMTimeMakeWithSeconds(TimeInterval(valueToUpdate), 240))

有没有任何解决方案,前向和后向擦洗以相同的方式工作?

提前感谢。

1 个答案:

答案 0 :(得分:3)

它与压缩和关键帧有关。想象一下,您正在扫描已压缩的视频。每隔10秒就会获得一张完整的图像,但是对于这10帧之间的每一帧,您只需获得已更改的像素。因此,向前扫描很容易,您只需按原样组合像素,并根据速度显示较少的帧。倒退并不容易。要在你的一个关键帧后面甚至1帧,你需要跳回到前一个关键帧(10秒后),然后将所有图像组合到你需要的图像之前。

显然这有点简化,因为有可变速率压缩算法,但这应该给你一般的想法。