在 Swift 中设置高帧率录制
Setting high frame rate recording in Swift
我正在尝试创建一个应用程序以 120fps 的速度录制视频,但我遇到了麻烦。
首先,当 print(device.activeFormat)
时,我在日志中得到了这个
AVCaptureDeviceFormat: 0x13fe49890 'vide'/'420v' 1920x1080, { 2- 30 fps}, fov:58.080, supports vis, max zoom:104.38 (upscales @1.55), AF System:1, ISO:34.0-544.0, SS:0.000024-0.500000
但是我的设备是iPhone5s,支持120fps,不知道为什么这里的范围是2-30fps。
其次,当我 device.activeVideoMaxFrameDuration = CMTimeMake(1, 120)
将最大帧速率更改为 120 fps 时,我在日志中收到此错误:
[AVCaptureVideoDevice setActiveVideoMaxFrameDuration:] - the passed activeVideoMaxFrameDuration 1:120 is not supported by the device.
我做错了什么?
谢谢!
正如您从打印 (device.activeFormat) 中看到的那样,给定 {2- 30 fps} 时最大支持 fps 为 30。因此,不支持使用 device.activeVideoMaxFrameDuration = CMTimeMake(1, 120) 设置 120 fps。
我正在尝试创建一个应用程序以 120fps 的速度录制视频,但我遇到了麻烦。
首先,当 print(device.activeFormat)
时,我在日志中得到了这个
AVCaptureDeviceFormat: 0x13fe49890 'vide'/'420v' 1920x1080, { 2- 30 fps}, fov:58.080, supports vis, max zoom:104.38 (upscales @1.55), AF System:1, ISO:34.0-544.0, SS:0.000024-0.500000
但是我的设备是iPhone5s,支持120fps,不知道为什么这里的范围是2-30fps。
其次,当我 device.activeVideoMaxFrameDuration = CMTimeMake(1, 120)
将最大帧速率更改为 120 fps 时,我在日志中收到此错误:
[AVCaptureVideoDevice setActiveVideoMaxFrameDuration:] - the passed activeVideoMaxFrameDuration 1:120 is not supported by the device.
我做错了什么?
谢谢!
正如您从打印 (device.activeFormat) 中看到的那样,给定 {2- 30 fps} 时最大支持 fps 为 30。因此,不支持使用 device.activeVideoMaxFrameDuration = CMTimeMake(1, 120) 设置 120 fps。