Как сохранить данные TrueDepth при записи видео на iOS? - PullRequest
0 голосов
/ 15 марта 2019

Я ищу способ сохранить информацию о глубине (для каждого кадра) в файл во время записи видео с помощью камеры TrueDepth. Я нашел решения для сохранения данных глубины во время фотографирования, но не с видео.

В настоящее время у меня есть код для записи видео и сохранения его в файл и одновременного захвата данных глубины. Тем не менее, я не знаю, как сохранить данные глубины. В основном я использую AVCaptureSession и AVCaptureMovieFileOutput для сохранения записанного видео. Я обнаружил, что данные глубины задаются AVCaptureDepthDataOutput, но как я могу сохранить их в файл?

Основные части кода:

let captureSession = AVCaptureSession()
let sessionOutput = AVCapturePhotoOutput()
let movieOutput = AVCaptureMovieFileOutput()
let depthDataOutput = AVCaptureDepthDataOutput()

if let device = AVCaptureDevice.default(.builtInTrueDepthCamera,
                                 for: .video, position: .front) {
let input = try AVCaptureDeviceInput(device: device )

  if captureSession.canAddInput(input){
    captureSession.sessionPreset = AVCaptureSession.Preset.photo
    captureSession.addInput(input)
    if captureSession.canAddOutput(sessionOutput){   
      captureSession.addOutput(sessionOutput)
      // Code for adding previewing the video
    }
  }

  if captureSession.canAddOutput(depthDataOutput){
    captureSession.addOutput(depthDataOutput)
  }
  if let connection = depthDataOutput.connection(with: .depthData) {
    connection.isEnabled = true
    depthDataOutput.isFilteringEnabled = false
    print("Depth data working")
  } else {
    print("No AVCaptureConnection")
  }

  // Capture the video to a file
  captureSession.addOutput(movieOutput)
  captureSession.startRunning()

  // ...
  // How to store the depth data from AVCaptureDepthDataOutput ?
}

Есть идеи?

...