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

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

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Разработка мобильного приложения для стриминга видео
Сложный
от 2 недель до 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

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

Видеостриминговое приложение — это не «AVPlayer + список видео». Это CDN-интеграция, адаптивный битрейт, DRM, аналитика качества воспроизведения (QoE), offline-загрузка и каталог с поиском. Каждая крупная часть системы имеет нетривиальные технические решения.

Адаптивный стриминг: HLS и DASH

HLS (HTTP Live Streaming) — стандарт Apple, нативная поддержка на iOS и macOS. На Android поддерживается через ExoPlayer (Media3). DASH (Dynamic Adaptive Streaming over HTTP) — открытый стандарт, лучше поддерживается на Android, на iOS — через ExoPlayer в WKWebView или сторонние плееры.

Для кроссплатформенного приложения — HLS как основной формат: работает нативно на iOS, ExoPlayer обрабатывает его на Android без дополнительной настройки.

Сервер транскодирует видео в несколько renditions: 360p/500кбит, 720p/2.5Мбит, 1080p/5Мбит, 4K/15Мбит. ABR (Adaptive Bitrate) алгоритм на клиенте — ExoPlayer использует AdaptiveTrackSelection с DefaultBandwidthMeter. AVPlayer на iOS — встроенный алгоритм, настраивается через AVPlayerItem.preferredForwardBufferDuration и AVPlayerItem.preferredMaximumResolution.

// Android ExoPlayer — настройка ABR и буферизации
val trackSelector = DefaultTrackSelector(context).apply {
    setParameters(
        buildUponParameters()
            .setMaxVideoSizeSd() // ограничить 480p на слабых сетях
            .setMinVideoBitrate(500_000)
            .setForceHighestSupportedBitrate(false)
    )
}

val loadControl = DefaultLoadControl.Builder()
    .setBufferDurationsMs(
        DefaultLoadControl.DEFAULT_MIN_BUFFER_MS,
        30_000, // максимальный буфер 30 секунд
        1500,   // буфер для старта воспроизведения
        3000    // буфер для возобновления после underrun
    ).build()

val player = ExoPlayer.Builder(context)
    .setTrackSelector(trackSelector)
    .setLoadControl(loadControl)
    .build()

DRM: защита платного контента

FairPlay (iOS) и Widevine (Android) — обязательны для VOD-платформы с монетизацией. Схема: при старте воспроизведения клиент получает license challenge → отправляет на DRM license server → получает лицензию → расшифровывает поток.

Widevine Level 1 (L1) требует TEE на устройстве — доступен на большинстве современных Android-устройств Snapdragon/Exynos. L3 — программная защита, работает везде, менее надёжен. Проверить уровень: MediaDrm.getPropertyString(MediaDrm.PROPERTY_SECURITY_LEVEL).

DRM license server: собственный (Shaka Packager + Shaka Streamer), Axinom, BuyDRM, или облачные провайдеры (AWS Elemental MediaConvert + AWS License Server, Azure Media Services). Для российского рынка — нужно учитывать локализацию инфраструктуры.

Офлайн-просмотр с DRM. iOS: AVAssetDownloadTask с FairPlay offline license (persistent license). Android: DownloadManager ExoPlayer + offline Widevine license через OfflineLicenseHelper. Лицензия имеет срок действия — нужно учитывать при продлении подписки и отмене.

Каталог и поиск

Каталог фильмов/сериалов — Elasticsearch для полнотекстового поиска с multi_match по title, description, cast. Фасетный поиск: жанры, год, рейтинг — aggregations + filters. Autocomplete — edge_ngrams analyzer.

На мобильном клиенте: lazy loading постеров через Glide/Coil (Android) или Kingfisher/Nuke (iOS) с DownsamplingImageProcessor — постеры 1920×1080 не нужны в сетке 3×3.

Персонализация: история просмотров, watchlist, «продолжить просмотр» — часто делается через backend-логику с кэшированием в Redis. На клиенте — синхронизация при каждом открытии приложения + local state через CoreData/Room.

Качество воспроизведения (QoE)

QoE-метрики — обязательная аналитика для стриминга:

  • Buffering ratio: время в буферизации / время воспроизведения. Норма < 1%.
  • Startup time: от нажатия Play до первого кадра. Норма < 2 секунд.
  • Bitrate switches: количество переключений ABR. Слишком частые — нестабильная сеть или плохо настроенный ABR.
  • Error rate: 4xx/5xx от manifest/segment CDN.

На Android: AnalyticsListener ExoPlayer — все события с таймстемпами. На iOS: AVPlayerItemAccessLog, AVPlayerItemErrorLog. Агрегируем через Firebase Analytics, Mixpanel или собственный pipeline.

Cast и AirPlay

Chromecast: Google Cast SDK на Android и iOS. GCKSessionManager + GCKRemoteMediaClient для управления воспроизведением на TV. Требует Google Cast Framework в приложении — дополнительный вес ~1.5 МБ.

AirPlay на iOS: работает из коробки через AVPlayer + MPNowPlayingInfoCenter. Убедиться, что AVPlayerItem.externalPlaybackVideoGravity настроен, и allowsExternalPlayback = true.

Subтитры и субтитры

WebVTT (preferred) или SRT — форматы субтитров в HLS. ExoPlayer поддерживает оба нативно. На iOS: AVAsset + AVMediaCharacteristicLegible track. Стилизация субтитров через AVTextStyleRule на iOS, SubtitleView styling на Android.

Множественные дорожки: несколько языков аудио через HLS alternate audio tracks, EXT-X-MEDIA тег в playlist.

Сроки

MVP с HLS стримингом, каталогом и базовым поиском без DRM: 4–6 недель. Полноценная платформа с DRM, offline, Chromecast/AirPlay, QoE-аналитикой: 3–5 месяцев. Стоимость рассчитывается индивидуально после анализа требований.