微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我想逐帧读取电影文件,对每一帧运行一些图像处理算法,并在 iOS 应用程序中按顺序显示结果帧。有一些机制可以使用实时摄像机源执行此操作,例如使用 AVCaptureSession,我想对已保存到磁盘的电影执行类似操作。

我正在尝试使用 AVAssetReader 和 AVAssetReaderTrackOutput 来执行此操作,但是在 this 文档中,它明确指出“AVAssetReader 不适用于实时源,并且无法保证其性能用于实时操作"

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

编辑

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

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

解决方法

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

您可能想查看 Apple 的 this sample project,他们使用 Core Image 滤镜突出显示视频中的 HDR 部分。它显示了实时处理和回放所需的整个设置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。