我在 Xcode 中有一个 RealityKit 项目,我想记录ARView
。我考虑过ReplayKit,但那是为了屏幕录制,我只想录制ARView
与它的相机饲料。我考虑过 AFathi 的开源项目 ARVideoKit,但它不支持 RealityKit...有关不同渲染路径的内容。我找到了一篇Medium文章,描述了如何在ARKit应用程序中实现录音功能,但问题是它需要以下方法:func renderer(_ renderer: SCNSceneRenderer)
这在 RealityKit 中不可用,因为它是专门的 SceneKit 方法。
我的回答假设您熟悉使用录制视频和音频AVAssetWriter
.
有一个捕获的帧作为 ARKit 的一部分提供session(_:didUpdate:)
方法。这ARFrame
返回的对象有一个CVPixelBuffer
named capturedFrame
。像处理常规视频录制会话一样处理帧,只不过不是在captureOutput(_:didOutput:from:)
方法,而是在这里捕获。您可能还需要一个captureOutput(_:didOutput:from:)
如果您也打算从麦克风录制音频,请使用音频方法。
就我而言,我将捕获的帧转换为MTLTexture
并使用 Metal 处理我的视频帧,然后将它们传递给AVAssetWriter
。我想在录制之前在相机框架上画画。不幸的是,这样做非常复杂,恐怕不是一个快速而简短的复制+粘贴答案。希望您能指出capturedFrame
ARKit 返回的对象是一个很好的起点。
有关如何使用录制视频的示例AVAssetWriter
:
https://programmersought.com/article/80131041234/;jsessionid=38CBA6743FB3C440DE9D2B25A6854B28 https://programmersought.com/article/80131041234/;jsessionid=38CBA6743FB3C440DE9D2B25A6854B28
如果您想在将 3D 模型编码为视频之前将其绘制到捕获源中,您还需要精通 Metal:https://developer.apple.com/documentation/metalkit/ https://developer.apple.com/documentation/metalkit/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)