Introdução à gravação e reprodução

Guias específicos da plataforma

A grande maioria das experiências de realidade aumentada é "em tempo real". Elas exigem que os usuários estejam em um determinado lugar em um determinado momento, com o smartphone configurado em um modo especial de RA e aberto para um app de RA. Por exemplo, se um usuário quisesse ver a aparência de um sofá de RA na sala, ele precisaria "colocar" o sofá no ambiente da tela enquanto estivesse fisicamente na sala.

A API Recording and Playback elimina esse requisito de "tempo real", permitindo que você crie experiências de RA que podem ser vistas em qualquer lugar, a qualquer momento. A API Recording armazena o stream de vídeo de uma câmera, os dados de IMU ou qualquer outro metadado personalizado que você escolha salvar em um arquivo MP4. Você pode alimentar esses vídeos gravados no ARCore com a API Playback, que tratará o MP4 como um feed de sessão ao vivo. Você ainda pode usar uma sessão de câmera ao vivo, mas com essa nova API, seus aplicativos de RA podem optar por usar um MP4 pré-gravado em vez dessa sessão ao vivo.

Os usuários finais também podem aproveitar esse recurso. Não importa onde eles estão na vida real, eles podem abrir qualquer vídeo gravado com a API Recording and Playback na galeria nativa deles e editar ou reproduzir objetos, efeitos e filtros de RA. Com esse recurso, os usuários podem fazer compras de RA enquanto se deslocam de trem para o escritório ou estão dormindo.

Casos de uso para desenvolver com a API Recording and Playback

A API Recording and Playback remove as restrições de tempo e espaço da criação de apps de RA. Aqui estão algumas maneiras de usá-lo em seus próprios projetos.

Grave uma vez e teste em qualquer lugar

Em vez de ir a um local físico toda vez que você precisar testar um recurso de RA, é possível gravar um vídeo usando a API Recording e reproduzi-lo em qualquer dispositivo compatível. Está criando uma experiência em um shopping? Não é necessário acessar toda vez que quiser testar uma mudança. Basta gravar sua visita uma vez, iterar e desenvolver do conforto da sua própria mesa.

Reduzir o tempo de iteração

Em vez de gravar um vídeo para cada dispositivo Android que você quer oferecer suporte, para cada cenário que você quer testar, é possível gravar o vídeo uma vez e reproduzi-lo em vários dispositivos diferentes durante a fase de iteração.

Reduza a carga manual de testes entre as equipes de desenvolvimento

Em vez de criar conjuntos de dados personalizados para cada novo recurso, aproveite os conjuntos de dados pré-gravados ao lançar novos recursos que incorporam profundidade ou as últimas melhorias de rastreamento do ARCore.

Compatibilidade do dispositivo

Você precisará do ARCore para gravar dados com a API Recording and Playback, mas não para reproduzir tudo. Os MP4s gravados com esse recurso são basicamente arquivos de vídeo com dados extras que podem ser visualizados em qualquer player de vídeo. Você pode inspecioná-los com o ExoPlayer do Android ou qualquer player compatível que possa remover a multiplexação de MP4s e gerenciar os outros dados adicionados pelo ARCore.

Como os dados de vídeo e RA são gravados para reprodução

O ARCore salva as sessões gravadas em arquivos MP4 no dispositivo de destino. Estes arquivos contêm várias faixas de vídeo e outros dados diversos. Depois de salvar essas sessões, é possível direcionar seu app para usar esses dados em vez de uma sessão de câmera ao vivo.

O que há em uma gravação?

O ARCore captura os seguintes dados no vídeo H.264. Você pode acessá-la em qualquer player de vídeo compatível com MP4 capaz de alternar entre faixas. A faixa com maior resolução é a primeira da lista, porque alguns players de vídeo compatíveis com MP4 reproduzem automaticamente a primeira faixa da lista, sem permitir que você escolha qual faixa de vídeo reproduzir.

Faixa de vídeo principal (faixa de imagem da CPU)

O arquivo de vídeo principal grava o ambiente ou a cena para reprodução posterior. Por padrão, o ARCore registra a imagem da CPU de 640 x 480 (VGA) usada para o rastreamento de movimento como o stream de vídeo principal.

O ARCore não captura a textura de GPU (de alta resolução) renderizada na tela como a imagem da câmera de passagem.

Se você quiser que um stream de imagem de alta resolução esteja disponível durante a reprodução, configure uma câmera que forneça uma imagem da CPU com a resolução desejada. Neste caso:

  • O ARCore solicitará a imagem da CPU de 640 x 480 (VGA) necessária para o rastreamento de movimento e a imagem da CPU de alta resolução especificada pela configuração de câmera configurada.
  • A captura do segundo fluxo de imagem da CPU pode afetar o desempenho do app, e dispositivos diferentes podem ser afetados de maneiras diferentes.
  • Durante a reprodução, o ARCore usará a imagem de alta resolução da CPU que foi capturada durante a gravação como a textura GPU durante a reprodução.
  • A imagem de alta resolução da CPU se tornará o stream de vídeo padrão na gravação MP4.

A configuração da câmera selecionada durante a gravação determina a imagem da CPU e o stream de vídeo principal na gravação. Se você não selecionar uma configuração de câmera com uma imagem de CPU de alta resolução, este vídeo será a primeira faixa no arquivo e será reproduzido por padrão, independentemente do player de vídeo usado.

Visualização de mapa de profundidade da câmera

Esse é um arquivo de vídeo que representa o mapa de profundidade da câmera, gravado pelo sensor de profundidade do hardware do dispositivo, como um sensor de tempo de voo (ou sensor ToF), e convertido em valores de canal RGB. Esse vídeo deve ser usado apenas para fins de prévia.

Eventos de chamada de API

O ARCore registra as medições dos sensores do giroscópio e acelerômetro do dispositivo. Ele também registra outros dados, alguns deles podem ser confidenciais:

  • Versões do formato do conjunto de dados
  • Versão do SDK do ARCore
  • Google Play Services para versão de RA
  • Impressão digital do dispositivo (saída de adb shell getprop ro.build.fingerprint)
  • Outras informações sobre os sensores usados para o rastreamento em RA
  • Ao usar a API ARCore Geospatial, a localização estimada do dispositivo, leituras do magnetômetro e leituras da bússola