10

我在 Xcode 中有一个 RealityKit 项目,我想记录ARView. 我考虑过 ReplayKit,但那是为了屏幕录制,我只想ARView用它的摄像头录制。我考虑了 Afathi 的开源项目 ARVideoKit,但它不支持 RealityKit ......关于不同渲染路径的东西。我找到了一篇 Medium 文章,它描述了如何在 ARKit 应用程序中实现录制功能,但问题是它需要方法:func renderer(_ renderer: SCNSceneRenderer)该方法在 RealityKit 中不可用,因为它专门是 SceneKit 方法。

4

1 回答 1

4

我的回答假设您熟悉使用AVAssetWriter.

作为 ARKitsession(_:didUpdate:)方法的一部分提供了一个捕获的帧。返回的ARFrame对象有一个CVPixelBuffer命名的capturedFrame. 像处理常规视频录制会话一样处理帧,除了不是在captureOutput(_:didOutput:from:)方法中捕获,而是在此处捕获。captureOutput(_:didOutput:from:)如果您还打算从麦克风录制音频,您可能仍然需要一种音频方法。

就我而言,我将捕获的帧转换为 aMTLTexture并使用 Metal 处理我的视频帧,然后将它们传递给AVAssetWriter. 我想在录制之前在我的相机框架上画画。不幸的是,这样做非常复杂,恐怕不是快速而简短的复制+粘贴答案。希望将您指向capturedFrameARKit 返回的对象是您开始的好地方。

关于如何使用录制视频的示例AVAssetWriterhttps ://programmersought.com/article/80131041234/;jsessionid=38CBA6743FB3C440DE9D2B25A6854B28

如果您想在将 3D 模型编码为视频之前将其绘制到捕获源中,您还需要精通 Metal: https ://developer.apple.com/documentation/metalkit/

于 2020-07-17T08:24:37.057 回答