Я ищу способ сохранить информацию о глубине (для каждого кадра) в файл во время записи видео с помощью камеры 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 ?
}
Есть идеи?