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или предустановка сеанса отменяет другое изменение. Есть что-то очевидное, что я упускаю?

0 ответов

Другие вопросы по тегам