녹화 및 재생 소개

플랫폼별 가이드

증강 현실 경험의 대부분은 '실시간'입니다. 사용자가 특정 시간에 특정 장소에 머물러야 하며, 휴대전화를 특수 AR 모드로 설정하고 AR 앱을 열어야 합니다. 예를 들어 사용자가 AR 소파가 거실에서 어떻게 보이는지 확인하고 싶다면 사용자가 실제로 방에 있는 동안 화면 환경에 소파를 '배치'해야 합니다.

Recording and Playback API는 이러한 '실시간' 요구사항을 없애고, 언제 어디서나 볼 수 있는 AR 환경을 만들 수 있게 해줍니다. Recording API는 카메라의 동영상 스트림, IMU 데이터 또는 사용자가 MP4 파일로 저장하도록 선택한 기타 맞춤 메타데이터를 저장합니다. 그런 다음 MP4를 라이브 세션 피드처럼 처리하는 Playback API를 통해 녹화된 동영상을 ARCore에 피드할 수 있습니다. 라이브 카메라 세션을 계속 사용할 수 있지만, 이 새로운 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 버전
  • Google Play AR 서비스 버전
  • 기기 지문 (adb shell getprop ro.build.fingerprint의 출력)
  • AR 추적에 사용되는 센서에 관한 추가 정보
  • ARCore Geospatial API 사용 시 기기의 예상 위치, 자기계 판독값, 나침반 판독값