gpt4 book ai didi

iphone - 在 iPhone 应用程序中捕获 60fps

转载 作者:IT王子 更新时间:2023-10-29 08:19:31 28 4
gpt4 key购买 nike

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

有人知道如何在 iOS 上的 Objective-C 中执行此操作吗?今天我看到一个应用程序(slopro)可以在非越狱手机上录制 60fps。非常感谢任何建议或提示。

最佳答案

经过一些修改,这个答案分为两部分:

如何以 60fps 捕获帧

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

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

为您提供稳定、 super 流畅的捕捉。

如何将帧捕获到文件@60fps
捕获帧非常好,但可能您想保留它们。
正如布拉德在评论中指出的那样,将这些帧写入文件是另一回事。遗憾的是,无论我尝试何种配置,通过 AVAssetWriter 对帧进行编码都会导致捕获率下降到观察到的 ~37fps 并且无论怎样摆弄 alwaysDiscardsLateVideoFrames 都无法改变它.然而,在这种方法中,每一帧都从 AVFoundation 复制到您的应用程序,然后再复制回来,这对于总线来说是毫无意义的并且非常耗时。幸运的是,AVFoundation 有一个类可以消除这种往返:AVCaptureMovieFileOutput

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

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

蛋糕/吃它

*59 如果你还在运行 iOS 5.0.1

关于iphone - 在 iPhone 应用程序中捕获 60fps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10344637/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com