Présentation de l'enregistrement et de la lecture

Guides spécifiques à la plate-forme

La grande majorité des expériences de réalité augmentée sont "en temps réel". Elles exigent que les utilisateurs se trouvent à un certain endroit et à un moment donné, avec leur téléphone configuré en mode RA spécial et ouvert à une application de RA. Par exemple, si un utilisateur voulait voir à quoi ressemble un canapé en RA dans son salon, il doit le "placer" dans l'environnement à l'écran lorsqu'il se trouve physiquement dans la pièce.

L'API Recording and Playback élimine cette exigence "en temps réel" : vous pouvez ainsi créer des expériences de RA pouvant être visionnées n'importe où, à tout moment. L'API Recording stocke le flux vidéo d'une caméra, les données IMU ou toute autre métadonnée personnalisée que vous avez choisi de conserver dans un fichier MP4. Vous pouvez ensuite transmettre ces vidéos enregistrées à ARCore via l'API Playback, qui traitera le fichier MP4 comme un flux de session en direct. Vous pouvez toujours utiliser une session de caméra en direct, mais avec cette nouvelle API, vos applications de RA peuvent choisir d'utiliser un MP4 préenregistré plutôt que cette session en direct.

Les utilisateurs finaux peuvent également bénéficier de cette fonctionnalité. Où qu'ils se trouvent, ils peuvent récupérer n'importe quelle vidéo enregistrée avec l'API Recording and Playback depuis leur galerie native et modifier ou lire des objets, effets et filtres RA. Grâce à cette fonctionnalité, les utilisateurs peuvent faire leurs achats en RA dans un train qui se rend au bureau ou au lit en étant allongés.

Cas d'utilisation du développement avec l'API Recording and Playback

L'API Recording and Playback élimine les contraintes de temps et d'espace liées à la création d'applications de RA. Voici quelques façons de l'utiliser dans vos propres projets.

Enregistrez une seule fois, testez n'importe où

Au lieu de vous rendre physiquement dans un lieu précis chaque fois que vous devez tester une fonctionnalité de RA, vous pouvez enregistrer une vidéo à l'aide de l'API Recording, puis la lire à l'aide de n'importe quel appareil compatible. Vous créez une expérience dans un centre commercial ? Il n'est pas nécessaire d'y accéder chaque fois que vous souhaitez tester une modification. Il vous suffit d'enregistrer votre visite une fois pour pouvoir retravailler votre application et développer du contenu sans quitter votre bureau.

Réduire le temps d'itération

Au lieu d'avoir à enregistrer une vidéo pour chaque appareil Android que vous souhaitez prendre en charge, pour chaque scénario que vous souhaitez tester, vous pouvez enregistrer la vidéo une fois et la lire sur plusieurs appareils différents au cours de la phase d'itération.

Réduction de la charge de test manuel entre les équipes de développement

Au lieu de créer des ensembles de données personnalisés pour chaque nouvelle fonctionnalité, exploitez des ensembles de données préenregistrés tout en lançant de nouvelles fonctionnalités qui intègrent la profondeur ou les dernières améliorations du suivi d'ARCore.

Compatibilité avec les appareils

Vous aurez besoin d'ARCore pour enregistrer des données avec l'API Recording and Playback, mais vous n'en aurez pas besoin pour lire des contenus. Les fichiers MP4 enregistrés à l'aide de cette fonctionnalité sont essentiellement des fichiers vidéo contenant des données supplémentaires qui peuvent être visionnés avec n'importe quel lecteur vidéo. Vous pouvez les inspecter avec ExoPlayer d'Android ou avec n'importe quel lecteur compatible capable de démuxes MP4 et de gérer les données supplémentaires ajoutées par ARCore.

Comment les données vidéo et RA sont enregistrées pour la lecture

ARCore sauvegarde les sessions enregistrées dans des fichiers MP4 sur l'appareil cible. Ces fichiers contiennent plusieurs pistes vidéo et d'autres données diverses. Une fois ces sessions enregistrées, vous pouvez indiquer à votre application d'utiliser ces données à la place de la session de caméra en direct.

Que contient un enregistrement ?

ARCore capture les données suivantes dans une vidéo H.264. Vous pouvez y accéder depuis n'importe quel lecteur vidéo compatible MP4 capable de changer de piste. La piste dont la résolution est la plus élevée est la première de la liste, car certains lecteurs vidéo compatibles MP4 lisent automatiquement la première piste sans vous permettre de choisir quelle piste vidéo lire.

Piste vidéo principale (piste d'image du processeur)

Le fichier vidéo principal enregistre l'environnement ou la scène pour une lecture ultérieure. Par défaut, ARCore enregistre l'image de processeur (VGA) de 640 x 480 pixels utilisée pour le suivi du mouvement en tant que flux vidéo principal.

ARCore ne capture pas la texture GPU (haute résolution) affichée à l'écran en tant qu'image de l'appareil photo passthrough.

Si vous souhaitez qu'un flux d'images haute résolution soit disponible pendant la lecture, vous devez configurer une caméra qui fournit une image CPU avec la résolution souhaitée. Dans ce cas :

  • ARCore demandera à la fois l'image de processeur 640 x 480 (VGA) dont il a besoin pour le suivi du mouvement et l'image de processeur haute résolution spécifiée par la configuration de la caméra configurée.
  • L'enregistrement du deuxième flux d'images du processeur peut affecter les performances de l'application, et les conséquences peuvent varier d'un appareil à l'autre.
  • Pendant la lecture, ARCore utilisera l'image de processeur haute résolution capturée lors de l'enregistrement en tant que texture GPU.
  • L'image haute résolution du processeur deviendra le flux vidéo par défaut dans l'enregistrement MP4.

La configuration de la caméra sélectionnée lors de l'enregistrement détermine l'image du processeur et le flux vidéo principal dans l'enregistrement. Si vous ne sélectionnez pas de configuration de caméra avec une image de processeur haute résolution, cette vidéo sera la première piste du fichier et sera lue par défaut, quel que soit le lecteur vidéo que vous utilisez.

Visualisation de la carte de profondeur de la caméra

Il s'agit d'un fichier vidéo représentant la carte de profondeur de la caméra, enregistrée à partir du capteur de profondeur matériel de l'appareil, tel qu'un capteur de temps de vol (ou capteur ToF), et convertie en valeurs de canal RVB. Cette vidéo ne doit être utilisée qu'à des fins d'aperçu.

Événements d'appel d'API

ARCore enregistre les mesures effectuées par le gyroscope et l'accéléromètre de l'appareil. Il enregistre également d'autres données, dont certaines peuvent être sensibles:

  • Versions du format de l'ensemble de données
  • Version du SDK ARCore
  • Services Google Play pour la version RA
  • Empreinte de l'appareil (sortie de adb shell getprop ro.build.fingerprint)
  • Informations supplémentaires sur les capteurs utilisés pour le suivi de la RA
  • Lorsque vous utilisez l'API ARCore Geospatial, la position estimée de l'appareil, les relevés du magnétomètre et de la boussole