Introducción a la grabación y reproducción

Guías específicas para cada plataforma

La gran mayoría de las experiencias de realidad aumentada son "en tiempo real". Requieren que los usuarios se encuentren en un lugar determinado y en un momento determinado, con el teléfono en un modo especial de RA abierto a una app de RA. Por ejemplo, si un usuario quisiera ver cómo se ve un sofá de RA en su sala de estar, tendría que "colocar" el sofá en un entorno de pantalla mientras se encuentra físicamente en la habitación.

Las APIs de Recording y Playback eliminan este requisito de “tiempo real” para que puedas crear experiencias de RA que se puedan ver en cualquier momento y lugar. La API de grabación almacena la transmisión de video por Internet de una cámara, datos IMU o cualquier otro metadato personalizado que elijas guardar en un archivo MP4. Luego, puedes enviar esos videos grabados a ARCore mediante la API de reproducción, que tratará el archivo MP4 como el feed de una sesión en vivo. Aún puedes usar una sesión de cámara en vivo, pero con esta nueva API, tus aplicaciones de RA pueden optar por usar un MP4 grabado previamente en lugar de esa sesión en vivo.

Los usuarios finales también pueden aprovechar esta función. Sin importar dónde se encuentren en la vida real, pueden acceder a cualquier video grabado con las API de grabación y reproducción desde su galería nativa y editar o reproducir objetos, efectos y filtros de RA. Con esta función, los usuarios pueden realizar sus compras con RA mientras viajan en un tren a la oficina o en la cama descansando.

Casos de uso para desarrollar con las APIs de grabación y reproducción

La API de Recording and Playback quita las limitaciones de tiempo y espacio de la compilación de apps de RA. Aquí hay algunas formas de utilizarlo en tus propios proyectos.

Graba una vez y pruébala en cualquier lugar

En lugar de ir físicamente a una ubicación cada vez que necesites probar una función de RA, puedes grabar un video con la API de Grabación y luego reproducirlo en cualquier dispositivo compatible. ¿Vas a crear una experiencia en un centro comercial? No es necesario ir allí cada vez que quieras probar un cambio. Solo debe registrar su visita una vez y, luego, iterar y desarrollar desde la comodidad de su escritorio.

Reduce el tiempo de iteración

En lugar de tener que grabar un video para cada dispositivo Android que quieras admitir, puedes grabar el video una vez y reproducirlo en varios dispositivos diferentes durante la fase de iteración en cada caso que quieras probar.

Reduce la carga de las pruebas manuales en los equipos de desarrollo

En lugar de crear conjuntos de datos personalizados para cada función nueva, aprovecha los conjuntos de datos pregrabados mientras lanzas funciones nuevas que incorporan profundidad o las últimas mejoras de seguimiento de ARCore.

Compatibilidad con dispositivos

Necesitarás ARCore para grabar datos con las APIs de grabación y reproducción, pero no lo necesitarás para reproducir contenido. Los archivos MP4 grabados con esta función son, básicamente, archivos de video con datos adicionales que se pueden ver con cualquier reproductor de video. Puedes inspeccionarlos con ExoPlayer de Android o con cualquier reproductor compatible que pueda decodificar archivos MP4 y administrar los datos adicionales que agrega ARCore.

Cómo se graban los datos de video y de RA para su reproducción

ARCore guarda las sesiones grabadas en archivos MP4 en el dispositivo de destino. Estos archivos contienen varias pistas de video y otros datos variados. Una vez que se guarden estas sesiones, puedes indicar la app para que use estos datos en lugar de una sesión de cámara en vivo.

¿Qué contiene una grabación?

ARCore captura los siguientes datos en un video de H.264. Puedes acceder a él en cualquier reproductor compatible con MP4 que pueda cambiar de pista. La pista con la resolución más alta es la primera de la lista, ya que algunos reproductores compatibles con MP4 reproducen automáticamente la primera pista de la lista sin permitir que elijas la pista de video que quieres reproducir.

Pista de video principal (pista de imagen de CPU)

El archivo de video principal graba el entorno o la escena para reproducirlos más adelante. De forma predeterminada, ARCore registra la imagen de CPU de 640 x 480 (VGA) que se usa para el seguimiento de movimiento como transmisión de video principal.

ARCore no captura la textura de GPU (de alta resolución) que se renderiza en la pantalla como imagen de cámara de transferencia.

Si deseas que esté disponible una transmisión de imágenes de alta resolución durante la reproducción, debes configurar una cámara que proporcione una imagen de CPU con la resolución deseada. En este caso, ocurre lo siguiente:

  • ARCore solicitará la imagen de CPU de 640 x 480 (VGA) que requiere para el seguimiento de movimiento y la imagen de CPU de alta resolución especificada en la configuración de la cámara.
  • La captura de la segunda transmisión de imágenes de la CPU puede afectar el rendimiento de la app y los diferentes dispositivos pueden verse afectados de manera diferente.
  • Durante la reproducción, ARCore usará la imagen de CPU de alta resolución que se capturó durante la grabación como textura GPU durante la reproducción.
  • La imagen de la CPU de alta resolución se convertirá en la transmisión de video por Internet predeterminada en la grabación en MP4.

La configuración de la cámara seleccionada durante la grabación determina la imagen de la CPU y la transmisión de video principal en la grabación. Si no seleccionas una configuración de cámara con una imagen de CPU de alta resolución, este video será la primera pista del archivo y se reproducirá de forma predeterminada, independientemente del reproductor que uses.

Visualización del mapa de profundidad de la cámara

Este es un archivo de video que representa el mapa de profundidad de la cámara, que se registra con el sensor de profundidad de hardware del dispositivo, como un sensor de tiempo de vuelo (o sensor ToF), y se convierte en valores de canal RGB. Este video solo debe usarse con fines de vista previa.

Eventos de llamada a la API

ARCore registra mediciones del girómetro y los sensores del acelerómetro del dispositivo. También registra otros datos, algunos de los cuales pueden ser sensibles:

  • Versiones de formatos de conjuntos de datos
  • Versión del SDK de ARCore
  • Servicios de Google Play para la versión de RA
  • Huella digital del dispositivo (resultado de adb shell getprop ro.build.fingerprint)
  • Información adicional sobre los sensores que se usan para el seguimiento de RA
  • Cuando se usa la API de ARCore Geospatial, la ubicación estimada del dispositivo, las lecturas del magnetómetro y las lecturas de la brújula