ios - запись видео с высокой частотой кадров и низким размером
Я пытаюсь записать видео со скоростью 120 кадров в секунду, в 640x480.
Я могу установить FPS с:
// currentCamera is an AVCaptureDevice, session is an AVCaptureSession
let input = try AVCaptureDeviceInput(device: currentCamera)
session.addInput(input)
let targetFrameRate = CMTimeMake(1, 120)
if let slowMoFormat = currentCamera.formats
.flatMap({ return ($0 as? AVCaptureDeviceFormat) })
.filter({ format in
for x in format.videoSupportedFrameRateRanges {
if let range = x as? AVFrameRateRange {
if range.minFrameDuration <= targetFrameRate {
return true
}
}
}
return false
}).first {
try currentCamera.lockForConfiguration()
currentCamera.activeFormat = slowMoFormat
currentCamera.activeVideoMinFrameDuration = targetFrameRate
currentCamera.activeVideoMaxFrameDuration = targetFrameRate
currentCamera.unlockForConfiguration()
}
или размер видео с
// session is an AVCaptureSession
session.sessionPreset = AVCaptureSessionPreset640x480
Но я не могу сделать оба, так как изменение activeFormat
или предустановка сеанса отменяет другое изменение. Есть что-то очевидное, что я упускаю?