【发布时间】:2016-03-15 20:35:20
【问题描述】:
如果我创建一个AVPlayerLayer 并给它一个远程视频以进行流式传输,并包含一个UISlider 用于将视频擦洗到不同的点,那么向前擦洗非常精确和流畅。超级棒。
然而,向后擦洗非常不稳定且不可靠,有很多丢帧。
有没有办法防止这种情况发生?我猜AVPlayer 会积极地删除视频中已经观看过的部分,并且只是减少了缓冲区,但我很好奇是否有办法遏制这种行为。
将rate 设置为 -1 而不是 1 时也可以看到相同的情况,其中 1 播放流畅,-1 则断断续续。
【问题讨论】:
-
这更多地与关键帧有关。在播放模式和快进模式下,帧都是从关键帧向前合成的。但是,当倒带所有解码器时,每个关键帧都必须继续,因此它会卡顿。这只是其编码方式的本质。正如@Karim 在下面建议的那样,处理此问题的唯一有效方法是在流式传输时将内容实际写入磁盘。
标签: ios cocoa-touch avfoundation avplayer