Разработка мобильного VR-приложения для просмотра 360°-видео

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Разработка мобильного VR-приложения для просмотра 360°-видео
Сложный
от 1 недели до 3 месяцев
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Разработка мобильного VR-приложения для просмотра 360°-видео

360°-видео — это не обычное видео в сферическом футляре. Это equirectangular-проекция, которую нужно развернуть на сфере вокруг пользователя, синхронизировать с движением головы и не допустить артефактов на сшивке — всё при частоте кадров, достаточной для комфортного VR.

Техническая сторона: sphere mapping

Equirectangular-видео (2:1 соотношение сторон, стандарт YouTube и Facebook 360) отображается на инвертированную сферу — пользователь смотрит изнутри. Разрешение для комфортного просмотра: минимум 4K (3840×2160), желательно 5.7K или 8K. При 4K на каждый глаз приходится ~30 пикселей на градус — это граница, ниже которой видна «сетка» пикселей.

На Unity создаём инвертированную сферу с обращёнными нормалями внутрь:

// Стандартная Unity Sphere + специальный материал
// Или через пакет com.unity.xr.management

// Шейдер для 360-видео
// vert: передаём UV как есть
// frag: сэмплируем _MainTex с UV, горизонтальный flip для правильной ориентации

На нативном Android через MediaPlayer + OpenGL ES:

// Создаём Surface для MediaPlayer, рендерим как texture на сферу
SurfaceTexture surfaceTexture = new SurfaceTexture(textureId);
Surface surface = new Surface(surfaceTexture);
mediaPlayer.setSurface(surface);
mediaPlayer.prepareAsync();

На iOS — AVPlayer + SCNSphere в SceneKit или RealityKit:

let sphere = SCNSphere(radius: 10)
sphere.firstMaterial?.isDoubleSided = true // или инвертированные нормали
sphere.firstMaterial?.diffuse.contents = avPlayer
let sphereNode = SCNNode(geometry: sphere)
sphereNode.scale = SCNVector3(-1, 1, 1) // flip X для правильного direction
sceneView.scene.rootNode.addChildNode(sphereNode)

Стереоскопический 360: top-bottom и side-by-side форматы

Обычное 360-видео — монокулярное. Стереоскопическое 360 (настоящий VR-эффект глубины) кодируется двумя способами:

  • Top-Bottom (TB): верхняя половина кадра = левый глаз, нижняя = правый. Соотношение сторон 1:1 вместо 2:1.
  • Side-by-Side (SBS): левый глаз — левая половина, правый — правая. Соотношение 4:1.

При рендеринге на сфере нужно передавать в шейдер тип формата и корректно сэмплировать UV для каждого глаза.

Потоковое воспроизведение: HLS/DASH для 360

360-видео — это файлы 2–8 GB для 10-минутного контента при 4K–8K. Загружать целиком перед воспроизведением неприемлемо. Решение — адаптивный стриминг.

Для 360 HLS нужна особая нарезка на сегменты с учётом spherical projection — идеально использовать Spatial Media spec от Google, который встраивает метаданные о типе проекции прямо в файл. ffmpeg с флагом --spherical при создании манифеста.

Адаптивное переключение битрейта критично: при поворотах головы вся сфера видна, но основная нагрузка — на зоне перед взглядом. Viewport-dependent streaming (или Tile-based streaming) отдаёт высокое разрешение только для текущего направления взгляда. Это снижает трафик в 3–5 раз. Реализуется через MPEG-OMAF или кастомный DASH-сервер с информацией о Viewport.

Spatial audio

360-видео без позиционного звука — это полвпечатления. Ambisonics (формат B-format или AmbiX) — пространственный формат, в котором звук автоматически ориентируется под направление взгляда.

На Android — AndroidMediaPlayer + Resonance Audio SDK от Google (встроен в Google Cardboard SDK). На iOS — AVAudioEngine с AVAudioEnvironmentNode для пространственного позиционирования источников.

Unity: пакет com.google.resonance-audio или встроенный Unity Spatial Audio с Ambisonics поддержкой из Audio Settings.

Кеширование и offline

Пользователь хочет смотреть 360-туры без интернета. Предзагрузка: фоновый DownloadManager (Android) / URLSessionDownloadTask (iOS), хранение сегментов HLS на устройстве. Для каталога туров — SQLite с метаданными (preview-frame, длительность, описание) и путями к локальным файлам.

Процесс работы

Определение контентной стратегии: источники 360-видео, монокулярное или стереоскопическое, форматы.

Разработка плеера: sphere rendering, UV-маппинг для формата файлов, head tracking синхронизация.

Стриминг: HLS/DASH интеграция, адаптивное качество, offline кеширование.

Spatial audio интеграция.

Тестирование на целевых устройствах в Cardboard, оценка latency и motion sickness.

Ориентиры по срокам

Базовый плеер для монокулярного 360-видео с локальным воспроизведением — 1 неделя. Полнофункциональный плеер со стримингом, spatial audio, стереоскопическим форматом и offline — 3–6 недель.