我有一个应用程序需要使用任意 CGAffineTransform 将视频/电影中的帧渲染到 CGBitmapContext 中。我希望它有一个不错的帧速率,至少像 20fps。
我尝试过使用 AVURLAsset 和 [AVAssetImageGenerator copyCGImageAtTime:],并且正如该方法的文档明确指出的那样,它非常慢,有时会降低到 5fps。
有什么更好的方法来做到这一点?我想我可以使用 AVPlayerLayer 设置 AVPlayer,然后将 [CGLayer renderInContext:] 与我的转换一起使用。这行得通吗?或者当 AVPlayerLayer 注意到它没有显示在屏幕上时,它可能不会运行?
还有什么方法可以推荐吗?