在iOS上录制视频时如何保存TrueDepth数据?

时间:2019-03-15 19:08:34

标签: ios swift iphone-x truedepth-camera iphone-xs

我正在寻找一种在使用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 ?
}

有什么想法吗?

0 个答案:

没有答案