Как записать видео в RealityKit?

У меня есть проект RealityKit в Xcode, и я хочу записать ARView. Я рассматривал ReplayKit, но он предназначен для записи экрана, я хочу записывать толькоARViewсо своей камерой. Я рассматривал проект с открытым исходным кодом ARVideoKit от AFathi, но он не поддерживает RealityKit... кое-что о разных путях рендеринга. Я нашел статью Medium, в которой описывается, как реализовать функцию записи в приложении ARKit, но проблема в том, что для этого требуется метод:func renderer(_ renderer: SCNSceneRenderer) который недоступен в RealityKit, потому что это метод SceneKit.

1 ответ

Мой ответ предполагает, что вы знакомы с записью видео и аудио с помощью AVAssetWriter.

Есть захваченный кадр, который предоставляется как часть ARKit. session(_:didUpdate:)метод. ВARFrame возвращенный объект имеет CVPixelBuffer названный capturedFrame. Обращайтесь с кадром, как с обычным сеансом видеозаписи, за исключением того, что онcaptureOutput(_:didOutput:from:)метод, он вместо этого фиксируется здесь. Вам все еще может понадобитьсяcaptureOutput(_:didOutput:from:) для звука, если вы также собираетесь записывать звук с микрофона.

В моем случае я преобразовал свой захваченный кадр в MTLTexture и использовал Metal для обработки моих видеокадров перед передачей их AVAssetWriter. Я хотел нарисовать поверх рамок камеры перед записью. К сожалению, сделать это очень сложно, и я боюсь, что это не быстрый и короткий ответ "копировать + вставить". Надеюсь, указывая вам наcapturedFrame объект, возвращаемый ARKit, - хорошее место для начала.

Пример того, как записывать видео с помощью AVAssetWriter:https://programmersought.com/article/80131041234/;jsessionid=38CBA6743FB3C440DE9D2B25A6854B28

Если вы хотите погрузиться в кроличью нору OpenGL / Metal:https://developer.apple.com/documentation/metalkit/

Другие вопросы по тегам