녹화 및 재생 소개

플랫폼별 가이드

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

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

최종 사용자도 이 기능을 활용할 수 있습니다. 사용자가 어디에 있든 관계없이 기본 갤러리에서 녹화 및 재생 API로 녹화된 동영상을 가져와 AR 객체, 효과, 필터를 수정하거나 재생할 수 있습니다. 이 기능을 사용하면 사용자가 직장으로 통근하는 기차 안이나 침대에서 AR 쇼핑을 할 수 있습니다.

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

녹화 및 재생 API를 사용하면 AR 앱을 빌드할 때의 시간과 공간 제약이 사라집니다. 다음은 자체 프로젝트에서 이 기능을 사용할 수 있는 몇 가지 방법입니다.

한 번 녹화하여 어디서나 테스트

AR 기능을 테스트할 때마다 실제로 해당 위치로 이동하는 대신 Recording API를 사용하여 동영상을 녹화한 후 호환되는 기기를 사용하여 재생할 수 있습니다. 쇼핑몰에서 환경을 구축하고 있나요? 변경사항을 테스트할 때마다 거기로 이동할 필요는 없습니다. 방문을 한 번 기록한 다음 편안하게 사무실에서 반복하고 개발하면 됩니다.

반복 시간 줄이기

지원하려는 모든 Android 기기의 동영상을 녹화할 필요 없이 테스트하려는 모든 시나리오에 대해 동영상을 한 번 녹화하고 반복 단계에서 여러 기기에서 재생할 수 있습니다.

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

모든 새 기능에 맞게 맞춤 데이터 세트를 만드는 대신 사전 녹음된 데이터 세트를 활용하면서 깊이 또는 ARCore의 최신 추적 개선사항을 통합하는 새 기능을 출시하세요.

기기 호환성

Recording and Playback API로 데이터를 기록하려면 ARCore가 필요하지만 재생하려면 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를 사용할 때 기기의 예상 위치, 자기계 측정값, 나침반 측정값