녹음 및 재생 소개

플랫폼별 가이드

증강 현실 경험의 대부분은 '실시간'으로, 사용자는 특정 시간에 휴대폰을 특별한 AR 모드로 설정한 후 AR 앱으로 열어야 합니다. 예를 들어, 사용자가 AR 소파가 거실에 어떻게 보이는지 확인하려면 방에 있는 동안 소파에 놓아야 합니다.

Recording and Playback API는 이러한 '실시간' 요구사항을 충족하지 않아도 되므로 언제 어디서나 시청할 수 있는 AR 환경을 만들 수 있습니다. Recording API는 카메라의 동영상 스트림, IMU 데이터 또는 MP4 파일에 저장하도록 선택한 기타 맞춤 메타데이터를 저장합니다. 그런 다음 Playback API를 통해 녹화된 동영상을 ARCore에 피드하면 MP4를 실시간 세션 피드처럼 취급할 수 있습니다. 실시간 카메라 세션을 계속 사용할 수 있지만 이 새로운 API를 사용하면 AR 애플리케이션에서 실시간 세션 대신 사전 녹화된 MP4를 사용하도록 선택할 수 있습니다.

최종 사용자도 이 기능을 활용할 수 있습니다. 실제 위치에 상관없이 Recording and Playback API로 녹화된 동영상을 네이티브 갤러리에서 가져와 AR 객체, 효과, 필터를 수정하거나 재생할 수 있습니다. 이 기능을 사용하면 기차로 출근하거나 침대에서 느긋하게 쉬는 동안 AR 쇼핑을 할 수 있습니다.

Recording and Playback API를 사용한 개발 사용 사례

Recording and Playback API는 AR 앱 빌드에 필요한 시간과 공간 제약을 없애줍니다. 자체 프로젝트에서 사용할 수 있는 방법은 다음과 같습니다.

한 번 녹화, 어디서나 테스트

AR 기능을 테스트할 때마다 실제 위치로 이동하는 대신 Recording API를 사용하여 동영상을 녹화한 다음 호환되는 기기를 사용하여 재생할 수 있습니다. 쇼핑몰에서 쇼핑을 하고 싶으신가요? 변경사항을 테스트하려고 할 때마다 테스트할 필요가 없습니다. 방문 기록을 한 번만 녹화한 다음, 책상 앞에서 편안하게 반복하면서 수정하세요.

반복 시간 줄이기

테스트하려는 모든 단일 시나리오에서 지원하고자 하는 모든 Android 기기에 동영상을 녹화하는 대신, 동영상을 한 번 녹화한 후 반복 단계에서 여러 기기에서 재생할 수 있습니다.

개발팀 간의 수동 테스트 부담 감소

새로운 모든 특성을 위한 맞춤 데이터 세트를 만드는 대신 사전 기록된 데이터 세트를 사용하는 동시에 ARCore의 깊이 또는 최신 추적 개선사항을 포함하는 새 기능을 출시할 수 있습니다.

기기 호환성

Recording and Playback API를 사용하여 데이터를 녹화하려면 ARCore가 필요하지만 작업을 재생하는 데는 필요하지 않습니다. 이 기능을 사용하여 녹화된 MP4는 기본적으로 동영상 플레이어를 사용하여 볼 수 있는 추가 데이터가 포함된 동영상 파일입니다. Android의 ExoPlayer 또는 MP4를 듀싱하고 ARCore에서 추가한 추가 데이터를 관리할 수 있는 호환 가능한 플레이어를 사용하여 검사할 수 있습니다.

재생을 위해 동영상 및 AR 데이터가 기록되는 방식

ARCore는 녹화된 세션을 대상 기기의 MP4 파일에 저장합니다. 이러한 파일에는 여러 동영상 트랙 및 기타 데이터가 포함됩니다. 이러한 세션이 저장되면 앱에서 실시간 카메라 세션 대신 이 데이터를 사용하도록 가리킬 수 있습니다.

통화 내용

ARCore는 H.264 동영상에서 다음 데이터를 캡처합니다. 트랙을 전환할 수 있는 모든 MP4 호환 동영상 플레이어에서 액세스할 수 있습니다. 일부 MP4 호환 동영상 플레이어가 목록에 있는 첫 번째 트랙을 자동으로 재생하기 때문에 재생할 동영상 트랙을 선택할 수 없으므로 해상도가 가장 높은 트랙이 목록의 첫 번째 트랙입니다.

기본 동영상 트랙 (CPU 이미지 트랙)

기본 동영상 파일은 나중에 재생할 수 있도록 환경이나 장면을 녹화합니다. 기본적으로 ARCore는 모션 추적에 사용되는 640x480 (VGA) CPU 이미지를 기본 동영상 스트림으로 기록합니다.

ARCore는 화면에 렌더링되는 (고해상도) GPU 텍스처를 패스 스루 카메라 이미지로 캡처하지 않습니다.

재생 중에 고해상도 이미지 스트림을 사용할 수 있게 하려면 원하는 해상도의 CPU 이미지를 제공하는 카메라를 구성해야 합니다. 이 경우에는 다음과 같습니다.

  • ARCore는 모션 추적에 필요한 640x480 (VGA) CPU 이미지와 구성된 카메라 구성에서 지정한 고해상도 CPU 이미지를 모두 요청합니다.
  • 두 번째 CPU 이미지 스트림을 캡처하면 앱 성능에 영향을 미칠 수 있고 기기에 따라 다른 영향을 받을 수 있습니다.
  • 재생 중에 ARCore는 녹화 중에 캡처된 고해상도 CPU 이미지를 재생 중에 GPU 텍스처로 사용합니다.
  • 고해상도 CPU 이미지가 MP4 녹화의 기본 동영상 스트림이 됩니다.

녹화 중에 선택한 카메라 구성에 따라 CPU 이미지와 녹화의 기본 동영상 스트림이 결정됩니다. 고해상도 CPU 이미지가 있는 카메라 구성을 선택하지 않으면 이 동영상이 파일의 첫 번째 트랙이 되며 사용하는 동영상 플레이어에 관계없이 기본적으로 재생됩니다.

카메라 심도 맵 시각화

카메라의 깊이 맵을 나타내는 동영상 파일로, 기기의 심도(예: 비행 시간 센서(또는 ToF 센서))에서 기록되고 RGB 채널 값으로 변환됩니다. 이 동영상은 미리보기 목적으로만 사용해야 합니다.

API 호출 이벤트

ARCore는 기기의 자이로미터 및 가속도계 센서의 측정값을 기록합니다. 또한 기타 민감한 데이터도 기록하며 그중 일부는 민감한 정보일 수 있습니다.

  • 데이터 세트 형식 버전
  • ARCore SDK 버전
  • AR 버전용 Google Play 서비스
  • 기기 지문 (adb shell getprop ro.build.fingerprint의 출력)
  • AR 추적에 사용되는 센서에 관한 추가 정보
  • ARCore Geospatial API를 사용할 때 기기의 예상 위치, 자기계 판독값, 나침반 측정값