Сучасний відеострімінг: розробка для iOS та Android
Уявіть: ваша VOD-платформа втрачає 30% користувачів на старті через тривалу буферизацію. Або контент витікає в піратські мережі, тому що DRM налаштовано некоректно. Саме такі завдання ми вирішуємо щодня, розробляючи відеострімінгові додатки для iOS та Android. Це не просто «AVPlayer + список відео» — це CDN-інтеграція, адаптивний бітрейт, DRM-захист, QoE-аналітика, офлайн-завантаження та інтелектуальний каталог. Наша команда має понад 5 років досвіду в стрімінгу та сертифікована за ISO 27001 (гарантія безпеки). Ми реалізували більше 20 проектів для VOD-сервісів, включаючи інтеграцію з популярними CDN та DRM-провайдерами. Вартість розробки MVP стартує від $15,000, а повноцінної платформи — від $45,000. Завдяки оптимізації CDN витрати на трафік знижуються до 30%. Зв'яжіться з нами — ми допоможемо оцінити вимоги та обрати оптимальне рішення.
Як забезпечити високу якість відтворення?
Адаптивний бітрейт
HLS (HTTP Live Streaming) — стандарт Apple з нативною підтримкою на iOS. На Android через ExoPlayer (Media3). DASH — відкритий стандарт, краще підтримується на Android, на iOS — через ExoPlayer в WKWebView. Для кроссплатформенного додатку обираємо HLS як основний: нативно на iOS, ExoPlayer обробляє на Android без додаткового налаштування. HLS краще DASH в 2 рази за швидкістю старту на iOS (startup time 0.5 с проти 1.2 с).
Сервер транскодує відео в кілька rendition: 360p/500 кбіт/с, 720p/2.5 Мбіт/с, 1080p/5 Мбіт/с, 4K/15 Мбіт/с. ABR алгоритм на клієнті: ExoPlayer використовує AdaptiveTrackSelection з DefaultBandwidthMeter. AVPlayer на iOS — вбудований алгоритм, налаштовується через preferredForwardBufferDuration та preferredMaximumResolution. При стабільній мережі користувач отримує 1080p, на слабкій — автоматичне зниження до 360p, що економить трафік до 30%.
// Android ExoPlayer — налаштування ABR та буферизації val trackSelector = DefaultTrackSelector(context).apply { setParameters( buildUponParameters() .setMaxVideoSizeSd() .setMinVideoBitrate(500_000) .setForceHighestSupportedBitrate(false) ) } val loadControl = DefaultLoadControl.Builder() .setBufferDurationsMs( DefaultLoadControl.DEFAULT_MIN_BUFFER_MS, 30_000, 1500, 3000 ).build() val player = ExoPlayer.Builder(context) .setTrackSelector(trackSelector) .setLoadControl(loadControl) .build() QoE-метрики та аналітика
QoE-метрики обов'язкові для стрімінгу. Buffering ratio — час у буферизації / час відтворення, норма <1%. При перевищенні 2% користувачі йдуть. Startup time — від натискання Play до першого кадру, норма <2 секунд. Оптимізація попереднього завантаження сегментів. Bitrate switches: кількість перемикань ABR. Занадто часті — нестабільна мережа або поганий ABR. Error rate: 4xx/5xx від CDN, цільовий рівень <0.1%.
На Android: AnalyticsListener ExoPlayer з таймстемпами. На iOS: AVPlayerItemAccessLog, AVPlayerItemErrorLog. Агрегуємо через Firebase Analytics або власний pipeline. Вартість розробки варіюється залежно від глибини аналітики та вибору інфраструктури.
Чому важливий захист контенту?
DRM: FairPlay та Widevine
Widevine (Android) та FairPlay (iOS) обов'язкові для монетизації контенту. Схема: клієнт отримує license challenge → відправляє на DRM license server → отримує ліцензію → розшифровує потік. Widevine Level 1 вимагає TEE на пристрої — доступний на більшості сучасних Snapdragon/Exynos. L3 — програмний захист, менш надійний. Час отримання ліцензії зазвичай менше 0.5 секунди при оптимальному налаштуванні сервера.
DRM license server: власний (Shaka Packager), Axinom, BuyDRM або хмарні (AWS Elemental MediaConvert, Azure Media Services). Для українського ринку — локалізація інфраструктури. Apple FairPlay Streaming вимагає відповідної ліцензії.
Докладніше про DRM-ліцензії
Офлайн-перегляд з DRM: iOS використовує AVAssetDownloadTask з FairPlay offline license (persistent). Android — DownloadManager ExoPlayer + OfflineLicenseHelper. Ліцензія має термін дії — враховується при продовженні підписки та відміні.Інтелектуальний каталог та пошук
Elasticsearch для повнотекстового пошуку з multi_match по title, description, cast. Фасетний пошук: жанри, рік, рейтинг — aggregations + filters. Autocomplete через edge_ngrams analyzer.
На мобільному клієнті: lazy loading постерів через Glide/Coil (Android) або Kingfisher/Nuke (iOS) з DownsamplingImageProcessor. Персоналізація: історія переглядів, watchlist, «продовжити перегляд» — backend-логіка з кешуванням в Redis, синхронізація при кожному відкритті + local state через CoreData/Room.
Додаткові функції
Cast та AirPlay
Chromecast: Google Cast SDK на Android та iOS. GCKSessionManager + GCKRemoteMediaClient для керування на TV. Вимагає Google Cast Framework (~1.5 МБ). AirPlay на iOS: з коробки через AVPlayer + MPNowPlayingInfoCenter. Переконатися, що allowsExternalPlayback = true.
Субтитри та аудіодоріжки
WebVTT (preferred) або SRT — субтитри в HLS. ExoPlayer підтримує обидва нативно. На iOS: AVAsset + AVMediaCharacteristicLegible. Стилізація через AVTextStyleRule на iOS, SubtitleView на Android. Множинні аудіодоріжки через EXT-X-MEDIA тег.
Порівняння протоколів стрімінгу
| Параметр | HLS | DASH |
|---|---|---|
| Стандарт | Apple HTTP Live Streaming | MPEG-DASH |
| Нативна підтримка | iOS/macOS | Android (ExoPlayer) |
| Формат сегментів | MPEG-TS, fMP4 | fMP4 |
| Субтитри | WebVTT, CEA-708 | WebVTT, TTML |
| ABR | Вбудовано в AVPlayer | ExoPlayer AdaptiveTrackSelection |
| DRM | FairPlay | Widevine, PlayReady |
Основні етапи розробки
| Етап | Термін | Зміст |
|---|---|---|
| Аналіз вимог | 1 тиждень | Визначення target audience, контент, CDN, DRM, аналітика |
| Проектування | 1–2 тижні | Архітектура, API-схеми, моделі даних, вибір стеку |
| Реалізація плеєра | 2–4 тижні | Інтеграція HLS/DASH, ABR, DRM, офлайн |
| QoE та аналітика | 1 тиждень | Збір метрик, дашборди, алерти |
| Тестування та публікація | 2 тижні | QA, App Store Review, Google Play Console |
Як ми це робимо
- Аналізуємо контент та вимоги до DRM, ABR, QoE.
- Проектуємо архітектуру з урахуванням масштабування та CDN.
- Реалізуємо плеєр з адаптивним бітрейтом та DRM.
- Інтегруємо офлайн-завантаження та аналітику.
- Тестуємо на реальних пристроях та публікуємо в сторах.
Що входить в роботу
Наші інженери надають: технічну документацію (архітектура, API-схеми), вихідний код з коментарями, інтеграцію з CDN та DRM-сервером, налаштування QoE-аналітики, інструкції з деплою, підтримку протягом місяця після запуску. Отримайте консультацію — ми оцінимо ваш проект та запропонуємо оптимальне рішення.
Терміни розробки
MVP з HLS, каталогом та базовим пошуком без DRM: 4–6 тижнів. Повноцінна платформа з DRM, офлайн, Chromecast/AirPlay, QoE-аналітикою: 3–5 місяців. Вартість розраховується індивідуально після аналізу вимог. Наприклад, розробка MVP відеострімінгового додатку коштує від $15,000, а повної платформи — від $45,000. Замовте оцінку — ми безкоштовно розрахуємо терміни та бюджет.







