【问题标题】:Record video from front facing camera during ARKit ARSession on iPhone X在 iPhone X 上的 ARKit ARSession 期间从前置摄像头录制视频
【发布时间】:2018-11-25 14:40:35
【问题描述】:

我正在使用ARSessionARFaceTrackingConfiguration 结合使用来跟踪我的脸。同时,我想从 iPhone X 的前置摄像头录制视频。为此,我使用的是AVCaptureSession,但当我开始录制时,ARSession 会被中断。

这是两个sn-ps代码:

// Face tracking
let configuration = ARFaceTrackingConfiguration()
    configuration.isLightEstimationEnabled = false
let session = ARSession()
session.run(configuration, options: [.removeExistingAnchors, .resetTracking])

// Video recording
let camera = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front)!
input = try! AVCaptureDeviceInput(device: camera)
session.addInput(input)
session.addOutput(output)

有人知道如何同时做这两件事吗?像 Snapchat 这样的应用程序允许用户同时记录和使用 True Depth 传感器,所以我想我的要求是完全可行的。谢谢!

【问题讨论】:

    标签: ios swift avfoundation arkit iphone-x


    【解决方案1】:

    ARKit 运行自己的AVCaptureSession,一次只能运行一个捕获会话 - 如果您运行一个捕获会话,则您抢占了 ARKit,这会阻止 ARKit 工作。

    但是,ARKit 确实提供了对其从捕获会话中接收到的相机像素缓冲区的访问权限,因此您可以通过将这些样本缓冲区提供给 AVAssetWriter 来录制视频。 (这与您从AVCaptureVideoDataOutput 录制视频时使用的工作流程基本相同......与AVCaptureMovieFileOutput 相比,这是一种较低级别的视频录制方式。)

    您还可以将 ARKit 摄像头像素缓冲区(请参阅 ARFrame.capturedImage)提供给其他处理实时摄像头图像的技术,例如 Vision 框架。 Apple 有一个 sample code project 来展示这种用法。

    【讨论】:

    • 好消息。我会尽快试用并回复您。谢谢里克
    • 嗨 rickster,示例代码项目链接目前已损坏。你知道它有没有被转移到别的地方吗?
    • 编辑帖子以修复链接
    • @rickster - 我按照你说的从 RealityKit 以及我用 Arduino 构建的捕获设备录制视频和音频,结果是一样的:没有音频的视频。 This is a question of mine 关于那个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    相关资源
    最近更新 更多