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

Guias específicos da plataforma

A grande maioria das experiências de realidade aumentada é "em tempo real". Eles exigem que os usuários estejam em um determinado lugar em determinado momento, com o smartphone configurado em um modo de RA especial e aberto em um app de RA. Por exemplo, para conferir como um sofá de RA fica na sala de estar, ele precisa "colocar" o sofá no ambiente da tela enquanto está fisicamente na sala.

A API Recording and Playback acaba com esse requisito "em tempo real", permitindo que você crie experiências de RA que podem ser visualizadas em qualquer lugar, a qualquer momento. A API Recording armazena o stream de vídeo de uma câmera, dados IMU ou qualquer outro metadado personalizado que você escolha salvar em um arquivo MP4. Você pode então alimentar esses vídeos gravados no ARCore por meio da 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 usar um MP4 pré-gravado em vez da sessão ao vivo.

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

Casos de uso para desenvolvimento 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 nos seus próprios projetos.

Grave uma vez e teste em qualquer lugar

Em vez de ir fisicamente a um local sempre que precisar testar um recurso de RA, é possível gravar um vídeo usando a API Recording e reproduzir usando qualquer dispositivo compatível. Quer criar uma experiência em um shopping center? Você não precisa acessar essa página sempre que quiser testar uma mudança. Basta gravar sua visita uma vez e iterar e desenvolver a partir do conforto de sua própria mesa.

Reduzir o tempo de iteração

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

Reduza a carga de teste manual entre as equipes de desenvolvimento

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

Compatibilidade do dispositivo

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

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

O ARCore salva sessões gravadas em arquivos MP4 no dispositivo de destino. Esses arquivos contêm várias faixas de vídeo e outros dados diversos. Depois que essas sessões forem salvas, você poderá indicar ao app que use esses dados em vez de uma sessão de câmera ao vivo.

O que uma gravação contém?

O ARCore captura os seguintes dados no vídeo H.264. Você pode acessá-lo em qualquer player de vídeo compatível com MP4 capaz de trocar de faixa. A faixa de resolução mais alta é a primeira da lista, pois alguns players de vídeo compatíveis com MP4 reproduzem automaticamente a primeira faixa da lista, sem que você possa escolher qual faixa de vídeo será reproduzida.

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. De padrão, o ARCore registra a imagem de CPU de 640 x 480 (VGA) usada para rastreamento de movimento como o vídeo principal. riacho.

O ARCore não captura a textura da GPU (de alta resolução) que é renderizada para 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, precisa configurar uma câmera que forneça uma imagem de CPU que tenha a resolução desejada. Nesse caso:

  • O ARCore solicitará a imagem da CPU de 640 x 480 (VGA) exigida para o rastreamento de movimento e a imagem de CPU de alta resolução especificada pelo configuração da câmera.
  • A captura do segundo stream de imagem da CPU pode afetar o desempenho do app. dispositivos diferentes podem ser afetados de maneira distinta.
  • Durante a reprodução, o ARCore usará a imagem de CPU de alta resolução que foi capturada durante a gravação como textura GPU durante a reprodução.
  • A imagem da CPU de alta resolução se tornará o fluxo de vídeo padrão nos Gravação de 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, esse vídeo será a primeira faixa do arquivo e será reproduzido por padrão, independentemente do player de vídeo usado.

Visualização do 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. Este vídeo deve ser usado apenas para fins de visualização.

Eventos de chamada de API

O ARCore registra as medições dos sensores de giroscópio e acelerômetro do dispositivo. Ela também registra outros dados, e 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)
  • Mais informações sobre os sensores usados no rastreamento de RA
  • Ao usar a API ARCore Geospatial, a localização estimada e as leituras do magnetômetro e da bússola do dispositivo