存储 AVDepthData 以在 Swift 中处理

问题描述 投票:0回答:1

我正在尝试使用

VNDetectHumanBodyPose3DRequest
从我的应用程序中以 30 fps 拍摄的视频中获取 3D 关键点。由于实时请求需要很长时间,因此我使用
CMSampleBuffer
将相机中的
AVAssetWriter
保存到视频文件中。然后我在录制后处理帧。我试图通过将每个帧的
AVDepthData
合并到请求中来获得更好的结果,但我不确定如何存储深度数据以在记录后处理它们。

我无法将深度数据存储到数组中,因为它占用太多内存。我还尝试使用

CGImageDestination
将每帧保存为 HEIC 文件,并编码深度数据,但保存每帧太慢。我想我可以将每个
AVDepthData
编码为单独视频中的帧,然后将每个帧转换回来,但我不确定如何做到这一点。有谁知道解决这个问题的方法或者有任何资源可以指出我的方向吗?谢谢。

swift video-processing pose-detection
1个回答
0
投票

我意识到我可以使用

AVDepthData
Data
将每个
FileManager
中的深度映射写入磁盘上的文件。然后,在记录后,我将数据从文件读回像素缓冲区,按照here所述创建字典,并通过将字典传递到其初始化程序来重新创建
AVDepthData

© www.soinside.com 2019 - 2024. All rights reserved.