如何在iOS中实时从磁盘读取视频文件



我想逐帧读取电影文件,在每帧上运行一些图像处理算法,并在iOS应用程序中按顺序显示生成的帧。有一些机制可以通过实时摄像机馈送来实现这一点,例如使用AVCaptureSession,我想对已经保存到磁盘的电影进行类似的处理。

我试图用AVAssetReader和AVassetRReaderTrackOutput来实现这一点,但在本文档中,它明确指出"AVAssetReader不打算与实时源一起使用,并且其性能不能保证用于实时操作">

所以我的问题是:实时读取电影画面的正确方法是什么?

编辑

为了进一步阐明我所说的";实时";,考虑到可以从相机馈送中捕获帧,对每帧运行一些计算机视觉算法(即对象检测、过滤等(,并以合理的帧速率(30-60 FPS(显示过滤后的帧。我想做完全相同的事情,除了输入源是一个已经保存在磁盘上的视频。

我不想阅读整部电影,处理整件事,只在整个处理管道完成后才显示结果(我认为这是非实时的(。我希望处理是逐帧完成的,为了做到这一点,必须逐帧实时读取文件。

为了实时播放和处理视频,可以使用AVPlayer类。实时处理视频帧的最简单方法是在AVPlayerItem上进行自定义视频合成。

你可能想看看苹果公司的这个示例项目,他们使用核心图像过滤器在视频中突出显示HDR部分。它显示了实时处理和播放所需的整个设置。

最新更新