在iOS中反转视频播放

时间:2012-08-10 13:01:21

标签: ios avfoundation media

我想在AVPlayer中向后播放视频。我已经尝试将rate属性更改为-1.0,虽然它确实有效,但它并不顺利。有什么方法可以顺利播放视频吗?

2 个答案:

答案 0 :(得分:6)

正如评论中所述,问题在于关键帧以及大多数编解码器不能反向播放的事实。有两种重新编码视频的选项,不需要您在编辑时实际反转视频。

  1. 将每个帧都设为关键帧。我已经看到这种方法适用于依赖于关键帧的H.264等编解码器。基本上如果每一帧都是一个关键帧,那么每个帧都可以在不依赖任何先前帧的情况下进行解码,因此它实际上与向前播放相同。
  2. 使用不使用关键帧和非关键帧的编解码器(基本上所有帧都是关键帧)。 PhotoJPEG是一个这样的选择,虽然我不完全确定它是否在iOS上播放。我想是的。它在Mac上运行良好。
  3. 请注意,与每个x帧的典型"关键帧相比,这两个选项中的任何一个都会产生更大的文件大小。编码视频。

答案 1 :(得分:1)

您必须到达当前项目的末尾,然后将费率设置为负值。像这样:

-(void)reversePlay { CMTime durTime = myPlayer.currentItem.asset.duration; if (CMTIME_IS_VALID(durTime)) { [myPlayer seekToTime:durTime toleranceBefore:kCMTimeZero toleranceAfter:kCMTimeZero]; [myPlayer setRate:-1.0]; } else NSLog(@"Invalid time"); }

来源:https://stackoverflow.com/a/16104363/701043

相关问题