- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在Xcode中有一个RealityKit项目,我想记录ARView
。我考虑过ReplayKit,但这是为了进行屏幕录制,我只想将ARView
连同其相机提要一起录制。我考虑了AFathi的开源项目ARVideoKit,但是它不支持RealityKit ...关于不同渲染路径的一些知识。我找到了一篇中型文章,该文章描述了如何在ARKit应用程序中实现录制功能,但问题是它需要使用以下方法:func renderer(_ renderer: SCNSceneRenderer)
,在RealityKit中不可用,因为它特别是SceneKit方法。
最佳答案
我的答案假设您熟悉使用AVAssetWriter
录制视频和音频。
ARKit session(_:didUpdate:)
方法的一部分提供了一个捕获的帧。返回的ARFrame
对象具有一个名为CVPixelBuffer
的capturedFrame
。像处理常规视频录制 session 一样处理帧,除了不是用captureOutput(_:didOutput:from:)
方法捕获,而是在此处捕获。如果您还打算从麦克风录制音频,则可能仍需要captureOutput(_:didOutput:from:)
方法来进行音频录制。
就我而言,我将捕获的帧转换为MTLTexture
,并使用Metal处理视频帧,然后再将其传递给AVAssetWriter
。录制之前,我想在相机框架上画图。不幸的是,这样做很复杂,恐怕不是一个简短的复制+粘贴答案。希望将您指向ARKit返回的capturedFrame
对象是一个不错的起点。
有关如何使用AVAssetWriter
录制视频的示例:
https://programmersought.com/article/80131041234/;jsessionid=38CBA6743FB3C440DE9D2B25A6854B28
如果您想深入了解OpenGL/Metal的兔子洞,请执行以下操作:
https://developer.apple.com/documentation/metalkit/
关于swift - 如何在RealityKit中录制视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59533059/
我是一名优秀的程序员,十分优秀!