首页 > 解决方案 > 有什么方法可以让我们使用 AVCaptureSession 在 1 秒内捕获固定数量的帧?

问题描述

我在我的应用程序中创建 BOOMERANG 效果,所以我通过设置 1 秒定时器来捕捉图像。目前在 1 秒内,我大部分时间都在 24 到 30 帧左右。

但我想一直在 1 秒内只捕获 28 帧。

任何人都可以帮我实现这一目标吗?

提前致谢。

标签: iosavfoundationavcapturesession

解决方案


在您的 AVCaptureDeviceInput 上,您将有一个视频输入。

    let frameRate = 28
    let frameDuration = CMTimeMake(1, frameRate)

    do {
        try videoDevice.unlockForConfiguration()
        videoDevice.activeVideoMaxFrameDuration = frameDuration
        videoDevice.activeVideoMinFrameDuration = frameDuration
        videoDevice.lockForConfiguration()
    } catch {
        NSLog("videoDevice lockForConfiguration returned error \(error)")
    }

您可以尝试通过帧持续时间设置最小/最大 FPS。


推荐阅读