Введение в запись и воспроизведение

Руководства для конкретных платформ

Подавляющее большинство событий дополненной реальности происходит «в реальном времени». Они требуют, чтобы пользователи находились в определенном месте в определенное время, при этом их телефон был переведен в специальный режим AR и открыт для AR-приложения. Например, если пользователь хочет увидеть, как диван AR выглядит в его гостиной, ему придется «поместить» диван в экранную среду, пока он физически находится в комнате.

API записи и воспроизведения устраняет это требование «реального времени», позволяя вам создавать AR-приложения, которые можно просматривать где угодно и в любое время. API записи хранит видеопоток камеры, данные IMU или любые другие пользовательские метаданные, которые вы хотите сохранить в файле MP4. Затем вы можете передать эти записанные видео в ARCore через API воспроизведения, который будет обрабатывать MP4 так же, как поток сеанса в реальном времени. Вы по-прежнему можете использовать сеанс прямой трансляции с камеры, но благодаря этому новому API ваши приложения AR могут использовать предварительно записанный MP4 вместо этого сеанса в реальном времени.

Конечные пользователи также могут воспользоваться этой функцией. Независимо от того, где они находятся в реальной жизни, они могут извлечь любое видео, записанное с помощью API записи и воспроизведения, из своей собственной галереи, а также редактировать или воспроизводить объекты, эффекты и фильтры AR. Благодаря этой функции пользователи могут совершать покупки в дополненной реальности, находясь в поезде по дороге в офис или валяясь в постели.

Варианты использования для разработки с использованием API записи и воспроизведения

API записи и воспроизведения устраняет временные и пространственные ограничения при создании приложений AR. Вот несколько способов использовать его в своих проектах.

Запишите один раз, тестируйте где угодно

Вместо того, чтобы физически отправляться в определенное место каждый раз, когда вам нужно протестировать функцию AR, вы можете записать видео с помощью API записи, а затем воспроизвести его на любом совместимом устройстве. Приобретаете опыт работы в торговом центре? Нет необходимости заходить туда каждый раз, когда вы хотите протестировать изменение. Просто запишите свое посещение один раз, а затем повторяйте и развивайте его, не выходя из собственного рабочего стола.

Сократите время итерации

Вместо того, чтобы записывать видео для каждого отдельного устройства Android, которое вы хотите поддерживать, для каждого отдельного сценария, который вы хотите протестировать, вы можете записать видео один раз и воспроизвести его на нескольких разных устройствах на этапе итерации.

Сократите нагрузку на ручное тестирование команд разработчиков.

Вместо создания пользовательских наборов данных для каждого нового объекта используйте предварительно записанные наборы данных при запуске новых функций, которые включают в себя глубину или последние улучшения отслеживания от ARCore.

Совместимость устройств

Вам понадобится ARCore для записи данных с помощью API записи и воспроизведения, но он вам не понадобится для воспроизведения. Файлы MP4, записанные с использованием этой функции, по сути представляют собой видеофайлы с дополнительными данными, которые можно просмотреть с помощью любого видеоплеера. Вы можете просмотреть их с помощью Android ExoPlayer или любого совместимого проигрывателя, который может как демультиплексировать MP4, так и управлять дополнительными данными, добавленными ARCore.

Как видео и данные AR записываются для воспроизведения

ARCore сохраняет записанные сеансы в файлы MP4 на целевом устройстве. Эти файлы содержат несколько видеодорожек и другие разные данные. После сохранения этих сеансов вы можете указать своему приложению использовать эти данные вместо сеанса прямой трансляции с камеры.

Что в записи?

ARCore записывает следующие данные в видео H.264. Вы можете получить к нему доступ на любом MP4-совместимом видеоплеере, способном переключать треки. Дорожка с самым высоким разрешением находится первой в списке, поскольку некоторые видеоплееры, совместимые с MP4, автоматически воспроизводят первую дорожку в списке, не позволяя вам выбрать, какую видеодорожку воспроизводить.

Первичная видеодорожка (дорожка изображения процессора)

Основной видеофайл записывает окружающую среду или сцену для последующего воспроизведения. По умолчанию ARCore записывает изображение ЦП размером 640x480 (VGA), которое используется для отслеживания движения, в качестве основного видеопотока.

ARCore не захватывает текстуру графического процессора (высокого разрешения), которая отображается на экране как изображение с камеры.

Если вы хотите, чтобы во время воспроизведения был доступен поток изображений с высоким разрешением, вы должны настроить камеру , которая обеспечивает изображение ЦП с желаемым разрешением. В этом случае:

  • ARCore запросит как изображение ЦП 640x480 (VGA), необходимое для отслеживания движения, так и изображение ЦП с высоким разрешением, указанное в настроенной конфигурации камеры.
  • Захват второго потока изображений ЦП может повлиять на производительность приложения, причем на разных устройствах это может повлиять по-разному.
  • Во время воспроизведения ARCore будет использовать изображение ЦП высокого разрешения, полученное во время записи, в качестве текстуры ГП во время воспроизведения.
  • Изображение ЦП высокого разрешения станет видеопотоком по умолчанию в записи MP4.

Выбранная конфигурация камеры во время записи определяет изображение ЦП и основной видеопоток при записи. Если вы не выберете конфигурацию камеры с изображением процессора высокого разрешения, это видео будет первой дорожкой в ​​файле и будет воспроизводиться по умолчанию, независимо от того, какой видеопроигрыватель вы используете.

Визуализация карты глубины камеры

Это видеофайл, представляющий карту глубины камеры, записанную с аппаратного датчика глубины устройства, такого как времяпролетный датчик (или датчик ToF), и преобразованную в значения канала RGB. Это видео следует использовать только в целях предварительного просмотра.

События вызова API

ARCore записывает измерения с датчиков гирометра и акселерометра устройства. Он также записывает другие данные, некоторые из которых могут быть конфиденциальными:

  • Версии формата набора данных
  • Версия ARCore SDK
  • Сервисы Google Play для версии AR
  • Отпечаток устройства (выходные данные adb shell getprop ro.build.fingerprint )
  • Дополнительная информация о датчиках, используемых для AR-слежения
  • При использовании ARCore Geospatial API предполагаемое местоположение устройства, показания магнитометра и показания компаса.