首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在iPhone应用程序中捕获60fps

在iPhone应用程序中捕获60fps
EN

Stack Overflow用户
提问于 2012-04-27 12:15:00
回答 2查看 10.8K关注 0票数 16

我正在做一个项目,我们将使用iPhones作为捕捉场景的相机。录制时,我们需要录制@60fps,而不是30fps (本机支持)。因此,我正在开发一个应用程序来实现这一点,因为iPhone 4S硬件支持720p@60fps (如果你越狱你的手机就可以做到这一点)。

有没有人知道如何在iOS的Objective-C中做到这一点?今天我看到了一款应用程序(slopro),它可以在没有越狱的手机上记录60fps。任何建议或建议都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2012-05-01 03:03:09

经过一些修修补补,这个答案分成了两部分:

如何以60fps捕获帧

iPhone4s/5.1上的AVCaptureSessionPreset1280x720,帧持续时间设置为:

connection.videoMinFrameDuration = CMTimeMake(1, 60);*
connection.videoMaxFrameDuration = CMTimeMake(1, 60);

给你一个稳定的,超级流畅的捕捉。

如何将帧捕获到文件中@60fps

捕获帧是很好的,但您可能想要保留它们。

正如Brad在评论中指出的那样,将这些帧写入文件是另一回事。遗憾的是,无论我尝试什么配置,通过AVAssetWriter对帧进行编码都会导致捕获速率下降到观察到的~37fps,再多的alwaysDiscardsLateVideoFrames操作也无法改变它。然而,在这种方法中,每一帧都是从AVFoundation复制到你的应用程序,然后再复制回来,这对公交车来说是非常没有意义的,而且非常累人。幸运的是,AVFoundation有一个类可以消除这种往返过程:AVCaptureMovieFileOutput

如果您让AVFoundation为您编写,那么iPhone4S可以捕获帧+音频并以60fps*的速度将其编码为.mov文件,而无需费力(约25%的CPU)。

虽然60fps的视频捕获是一个很棒的功能,但我还是忍不住感到有点失望,因为AVCaptureMovieFileOutput排除了很多有趣的东西(例如,使用GL着色器的实时效果,没有帧丢失的录制开始/停止)。

蛋糕/吃掉它

*59如果您仍在运行iOS 5.0.1

票数 15
EN

Stack Overflow用户

发布于 2012-04-27 12:28:15

我以前没有尝试过,也许这些是相关的:

AVCaptureConnection Class Reference

时需要

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10344637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档