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 nécessitent que les utilisateurs se trouvent à un endroit précis à un moment donné, avec leur téléphone en mode RA spécial et une application de RA ouverte. Par exemple, si un utilisateur souhaite voir à quoi ressemble un canapé en RA dans son salon, il doit "placer" le canapé dans l'environnement à l'écran tout en se trouvant physiquement dans la pièce.

L'API Recording and Playback élimine cette exigence de "temps réel", ce qui vous permet de créer des expériences de RA qui peuvent être visionnées n'importe où et à 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 choisissez d'enregistrer 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 fichier MP4 préenregistré au lieu de cette session en direct.

Les utilisateurs finaux peuvent également profiter de cette fonctionnalité. Où qu'ils se trouvent dans la vie réelle, ils peuvent afficher n'importe quelle vidéo enregistrée avec l'API Recording and Playback depuis leur galerie native, et modifier ou lire des objets, des effets et des filtres de RA. Grâce à cette fonctionnalité, les utilisateurs peuvent faire leurs achats en RA dans le train qui les emmène au bureau ou allongés dans leur lit.

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

L'API Recording and Playback supprime les contraintes de temps et d'espace liées à la création d'applications de RA. Voici quelques exemples d'utilisation dans vos propres projets.

Enregistrer une fois, tester partout

Au lieu de vous rendre physiquement à un endroit 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 sur n'importe quel appareil compatible. Vous créez une expérience dans un centre commercial ? Vous n'avez pas besoin de vous y rendre chaque fois que vous souhaitez tester une modification. Il vous suffit d'enregistrer votre visite une seule fois, puis d'itérer et de développer depuis le confort de 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 seule fois et la lire sur plusieurs appareils différents pendant la phase d'itération.

Réduire la charge de test manuel pour les équipes de développement

Au lieu de créer des ensembles de données personnalisés pour chaque nouvelle fonctionnalité, utilisez des ensembles de données préenregistrés lorsque vous lancez de nouvelles fonctionnalités qui intègrent la profondeur ou les dernières améliorations de suivi d'ARCore.

Compatibilité avec les appareils

Vous aurez besoin d'ARCore pour enregistrer des données avec l'API Recording and Playback, mais pas pour les lire. 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 à l'aide de n'importe quel lecteur vidéo. Vous pouvez les inspecter avec ExoPlayer d'Android ou tout lecteur compatible capable de démultiplexer les fichiers MP4 et de gérer les données supplémentaires ajoutées par ARCore.

Comment les données vidéo et de RA sont-elles enregistrées pour la lecture ?

ARCore enregistre 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 configurer votre application pour qu'elle utilise ces données à la place d'une 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 sur n'importe quel lecteur vidéo compatible MP4 capable de changer de piste. La piste de résolution la plus élevée est la première de la liste, car certains lecteurs vidéo compatibles MP4 lisent automatiquement la première piste de la liste sans vous permettre de choisir la 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 du processeur 640 x 480 (VGA) utilisée pour le suivi des mouvements comme flux vidéo principal.

ARCore ne capture pas la texture GPU (haute résolution) qui est affichée à l'écran comme image de la caméra de transfert.

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 du processeur 640 x 480 (VGA) requise pour le suivi des mouvements et l'image du processeur haute résolution spécifiée par la configuration de la caméra configurée.
  • La capture du deuxième flux d'images du processeur peut affecter les performances de l'application, et différents appareils peuvent être affectés différemment.
  • Pendant la lecture, ARCore utilisera l'image du processeur haute résolution capturée lors de l'enregistrement comme texture GPU.
  • L'image du processeur haute résolution 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 de l'enregistrement. Si vous ne sélectionnez pas de configuration de caméra avec une image du 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 de prévisualisation.

Événements d'appel d'API

ARCore enregistre les mesures des capteurs de gyromètre et d'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
  • Version des services Google Play pour la RA
  • Empreinte de l'appareil (résultat 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, l'emplacement estimé de l'appareil, les lectures du magnétomètre et les lectures de la boussole