Представьте: ваша VOD-платформа теряет 30% пользователей на старте из-за длительной буферизации. Или контент утекает в пиратские сети, потому что DRM настроен некорректно. Именно такие задачи мы решаем ежедневно, разрабатывая видеостриминговые приложения для iOS и Android. Это не просто «AVPlayer + список видео» — это CDN-интеграция, адаптивный битрейт, DRM-защита, QoE-аналитика, офлайн-загрузка и интеллектуальный каталог. Наша команда имеет более 5 лет опыта в стриминге и реализовала более 20 проектов для VOD-сервисов, включая интеграцию с популярными CDN и DRM-провайдерами. Свяжитесь с нами — мы поможем оценить требования и выбрать оптимальное решение.
Как обеспечить высокое качество воспроизведения?
Адаптивный битрейт
HLS (HTTP Live Streaming) — стандарт Apple с нативной поддержкой на iOS. На Android через ExoPlayer (Media3). DASH — открытый стандарт, лучше поддерживается на Android, на iOS — через ExoPlayer в WKWebView. Для кроссплатформенного приложения выбираем HLS как основной: нативно на iOS, ExoPlayer обрабатывает на Android без дополнительной настройки.
Сервер транскодирует видео в несколько 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 месяцев. Стоимость рассчитывается индивидуально после анализа требований. Закажите оценку — мы бесплатно рассчитаем сроки и бюджет.







