
Главное
• Разработка Android-приложений для VMS сегодня — задача про софт, а не про камеры. Мировой рынок программного обеспечения для управления видео растёт темпом около 19–30% в год до 2032 года, тогда как рынок «железа» — лишь 6%. Ценность создают софт, мобильный UX и аналитика, а Android — самый дешёвый способ положить VMS в руку каждому охраннику.
• Коммерческих путей три. Можно использовать готовое приложение вендора (Milestone, Genetec, Verkada) и мириться с его UX, встроить SDK вендора в тонкую кастомную оболочку или собрать полностью кастомный Android-клиент VMS поверх ONVIF+RTSP+WebRTC. Каждый путь — это баланс между уровнем контроля, скоростью выхода на рынок и лицензионными рисками.
• Реалистичные бюджеты на 2026 год. Сфокусированный MVP (живой просмотр, воспроизведение, пуш-уведомления) обойдётся примерно в 1,8–3,3 млн ₽ при работе с командой на агент-инжиниринге. Среднеуровневое приложение с PTZ, обратной аудиосвязью, ролевой моделью администрирования и одной-двумя интеграциями с VMS — 4,1–6,7 млн ₽. Мультитенантная корпоративная сборка с edge AI и MDM-режимом киоска — 8,2–13,5 млн ₽. Закладывайте запас сверху, если целитесь в федеральных заказчиков с требованиями NDAA.
• Самые тяжёлые задачи — это кодеки, фоновая работа и комплаенс. Патентные пулы H.265, правила foreground-сервисов в Android 14/15, ротация FCM-токенов, тишина в режиме doze, certificate pinning под MITM и Section 889 NDAA — это места, где проекты сжигают недели, если изначально недооценить объём.
• Прочитайте это до того, как подпишете ТЗ. Ниже — взгляд сеньорной инженерной команды на то, как Фора Софт оценила бы, спроектировала и собрала кастомный Android-клиент VMS сегодня: с компромиссами, KPI и подводными камнями, на которые мы наталкивались в реальных видеопроектах.
Почему этот гайд написала Фора Софт
Фора Софт почти два десятилетия делает продукты для видео и видеонаблюдения. Мы выпускали приложения для живых IP-камер, AI-видеонаблюдение для ритейла, умные SIP-домофоны, Android MDM для парков из 10 000 устройств и клиенты IPTV для приставок — то есть ровно те компоненты, которые серьёзное Android-приложение для VMS сшивает в одно целое. Мы знаем, где «утекает» бюджет задержки, какие уровни Android API ломают что и какие требования комплаенса срезать нельзя.
Этот гайд написан для продакт-оунеров, директоров по безопасности и CTO, которые прямо сейчас оценивают объём работ по кастомному Android-приложению для VMS, — а не для инженеров, выбирающих библиотеку. Сначала пройдёмся по коммерческим решениям (build или buy, во что вкладываться, что пропустить), затем по архитектуре, затем по подводным камням. Каждая цифра, каждый диапазон и каждая рекомендация опираются на проекты, которые мы выпустили, включая NetCamStudio (мультикамерный захват с управлением кодеками), Android MDM-платформу, которая держит 10 000 устройств, и SIP-to-WebRTC-домофон, который доставляет потоки от IP-домофонов на телефоны.
Наша команда использует агент-ассистированный инжиниринг (внутренние пайплайны на Claude и Cursor), чтобы сжимать ту часть разработки, которая по сути «коммодити», — CRUD-экраны администрирования, шаблонный код ONVIF-дискавери, плумбинг FCM, базовый UI настроек, — и тратить бюджет там, где это действительно важно: на производительность видео, безопасность и интеграции, за которые на самом деле платит заказчик. Поэтому наши оценки ниже заметно плотнее типичных диапазонов 2024–2025 годов.
Оцениваете кастомное Android-приложение для VMS и хотите свериться?
Возьмите список камер, перечень функций и дедлайн. За 30 минут расскажем, какой путь самый быстрый, где будет утекать бюджет и что можно срезать.
Что на самом деле должно уметь Android-приложение для VMS
Любой осмысленный Android-клиент VMS решает шесть задач, и большинство проектов недооценивают как минимум три из них. Если ваш скоуп упускает хотя бы одну — у вас не VMS-приложение, у вас просто вьюер IP-камер.
Шесть базовых задач
1. Живой мониторинг с низкой задержкой. Один поток должен открываться менее чем за 2 секунды glass-to-glass в локальной сети, мультитайл-сетка (4/9/16) — работать при потере менее 1% кадров на устройствах среднего уровня. Всё медленнее — и оператор пересядет за десктоп. Это базовая, обязательная функция.
2. Воспроизведение записи с прокруткой по таймлайну. Операторы чаще расследуют вчерашний инцидент, чем смотрят сегодняшний. Таймлайн должен прокручиваться в 4K, прыгать между событиями движения и экспортировать видеоклип-доказательство с проверяемой цепочкой хешей.
3. Оповещения в реальном времени, переживающие Android Doze. Движение, пересечение линии, человек/транспорт, зона вторжения, тампер. Сквозная задержка доставки пуша — менее 5 секунд, даже когда телефон заблокирован, простаивает и работает в режиме энергосбережения. Именно здесь большинство приложений тихо проваливаются в продакшене.
4. PTZ и двусторонняя аудиосвязь. Команды pan/tilt/zoom должны проходить круг менее чем за 500 мс, иначе джойстик кажется сломанным. Talk-back через Opus или AAC-LD с эхоподавлением, настроенным под микрофон камеры, а не телефона. Критично для активного сдерживания в ритейле и на парковках.
5. Ролевой доступ и журналы аудита. Матрица прав по камерам, журналы доступа к видео, цепочка происхождения для доказательств. Без этого вы не пройдёте ни проверку GDPR, HIPAA, ни BIPA, и корпоративный заказчик у вас не купит.
6. Устойчивость к офлайну. Кэширование превью, последнее известное состояние камер, недавние события. Переподключение с экспоненциальным бэк-оффом. Сообщайте пользователю, что он смотрит устаревшие кадры. Мобильные сети падают — ваше приложение падать не должно.
Опциональные функции, которые приносят корпоративную выручку
Когда шесть базовых задач закрыты, дальше идут функции, которыми вы обосновываете рост цены за камеру. Это же и места, где партнёры и интеграторы дифференцируются. Edge AI на устройстве (TensorFlow Lite, NNAPI) для классификации людей, транспорта и аномалий держит видео вне облака и экономит на egress-трафике. Облачный AI про запас для более тяжёлых моделей (LPR, походка, поведение) даёт допродажу с оплатой за событие. Интеграции с POS или системами контроля доступа превращают «сырое» видео в дашборды по борьбе с потерями — заказчиков в ритейле это волнует куда сильнее, чем количество пикселей. MDM-режим киоска превращает планшеты охраны в моноцелевые устройства, на которые ничего нельзя подгрузить со стороны. White-label позволяет реселлерам выпускать тот же код под своим брендом.
Кастомное Android-приложение для VMS оправдано, когда: вам нужны сценарии, которые приложение вендора отказывается поддерживать; вы работаете больше чем с одной VMS или одним брендом камер; вы делаете управляемый сервис для реселлеров; либо комплаенс требует полного контроля над путём данных.
Рынок VMS-2026 в цифрах
Если вы продаёте этот проект внутри компании, макроэкономика на вашей стороне. Три цифры делают почти всю работу.
Софт растёт примерно вдвое быстрее железа. Прогноз Memoori на 2025–2030 годы оценивает мировую выручку от «железа» для видеонаблюдения в 2,5 трлн ₽ (2024) с ростом до 3,5 трлн ₽ (2030) при темпах около 6% в год, тогда как софт для управления видео, аналитика и хранилище растут примерно по 12% в год. Сегмент мобильных VMS растёт ещё быстрее — MarketsandMarkets ожидает рост с 208 млрд ₽ (2025) до 300 млрд ₽ (2030), при 13,9% в год в сегменте AI и edge-аналитики.
База покупателей сместилась в Северную Америку и APAC. В 2024 году на Северную Америку пришлось 36% рынка мобильного видеонаблюдения. APAC растёт быстрее всех — за счёт программ умных городов в Китае, Индии и Южной Корее. Если вы строите для европейских заказчиков, GDPR — это и есть ограничение, которое определяет архитектуру; мы к нему ещё вернёмся.
Консолидация — реальность. Memoori насчитала 24 сделки M&A в секторе VMS в период с сентября 2023 по август 2025 года и около 285 млрд ₽ инвестиций в 38 сделок. Private equity перекраивает отрасль, и консолидация идёт со стороны софта, а не железа. Перевод: OEM, с которым вы интегрируетесь сегодня, в следующем году может оказаться у нового владельца. Планируйте слой интеграции как заменяемый.
Build, buy или OEM SDK: три коммерческих пути
До любого архитектурного решения определитесь, по какому из трёх путей вы идёте. Неверный путь стоит шести месяцев.
Путь A — использовать мобильное приложение вендора. XProtect Mobile, Genetec Mobile, Verkada Command, Avigilon Cloud Services. Ноль инженерных усилий. Вы наследуете UX вендора, его расписание релизов и жёсткий потолок по кастомизации. Подходит для одновендорных инсталляций до 200 камер. Становится больно в момент, когда заказчик просит функцию, которую вендор не приоритизирует.
Путь B — обернуть SDK вендора в кастомную оболочку. Большинство крупных VMS-вендоров предоставляют мобильный SDK (Milestone, Hanwha, Bosch, Network Optix Nx Witness, Eagle Eye). Вы делаете свой логин, брендинг, навигацию и нужные интеграции — SDK берёт на себя стриминг и воспроизведение. Быстрее, чем полная кастомная разработка (8–14 недель до рабочего приложения), но вы по-прежнему привязаны к одной экосистеме и одной структуре лицензионных платежей.
Путь C — построить кастомный Android-клиент VMS поверх ONVIF, RTSP, WebRTC и собственного бэкенда. Максимум контроля. Поддержка камер от разных вендоров «из коробки». Вы владеете путём данных, конвейером оповещений, слоем аналитики и лицензированием. Этим путём почти всегда заканчивают реселлеры, сервис-провайдеры и ISV в сфере безопасности, когда у них появляются повторные заказчики.
Выбирайте Путь C (полную кастомную разработку), когда: вы продаёте более чем одному заказчику; обслуживаете смешанные парки камер; AI — часть вашего ценностного предложения; либо комплаенс заставляет вас контролировать путь данных. Иначе начинайте с Пути A или B и «вырастайте».
ONVIF Profile S, G, T простым языком для продакт-оунеров
ONVIF — это единственное, что позволяет кастомному Android-приложению для VMS разговаривать с камерами двадцати разных брендов без двадцати отдельных драйверов. SOAP знать не обязательно. Обязательно знать, какие профили важны.
Profile S — это базовая поддержка живого стрима и PTZ. RTSP-видео, аудио, базовая сигнализация событий, команды pan/tilt/zoom. Почти каждая IP-камера, выпущенная с 2012 года, его поддерживает. Если камера его не поддерживает — не покупайте её в парк.
Profile G покрывает запись на самой камере и на NVR: поиск по хранилищу, выгрузку записанного видео, просмотр таймлайна. Это то, с чем фактически работает экран воспроизведения. Если ваше приложение должно прокручивать вчерашние записи с SD-карты камеры или NVR — вам нужна совместимость с Profile G с обеих сторон.
Profile T — это современный профиль: H.265, продвинутое детектирование движения, события edge-аналитики (пересечение линии, зона вторжения, классификация «человек/транспорт»), события тампера, двунаправленное аудио. Всё, что в 2026 году позиционирует себя как «AI-камера», должно поддерживать Profile T. Без него ваши AI-функции зависят от проприетарных API конкретных вендоров.
Сравнение протоколов стриминга: RTSP, WebRTC, HLS, SRT
Выберете не тот протокол — будете расхлёбывать последствия весь срок жизни продукта. Подбирайте протокол под сценарий, а не под демо вендора с выставки.
| Протокол | Типичная задержка | Сильная сторона | Слабая сторона | Лучший сценарий |
|---|---|---|---|---|
| RTSP/RTP | 200–500 мс (LAN) | Родной для любой IP-камеры, без транскодирования | Потери пакетов UDP на нестабильном WAN, боль с NAT | On-prem, одна площадка, просмотр в локальной сети |
| WebRTC | 200–500 мс (WAN) | Менее секунды через публичный интернет, обход NAT встроен | Нужна инфраструктура SFU/TURN, масштаб зависит от числа зрителей | Облачная VMS, домофоны, talk-back, удалённое PTZ |
| HLS/LL-HLS | 2–6 с (HLS), 1–3 с (LL-HLS) | Масштабируется на тысячи зрителей через CDN | Слишком высокая задержка для активного мониторинга | Публичные трансляции, образовательные стримы, архивное воспроизведение |
| SRT | 300–800 мс | Устойчив на нестабильном интернете при низкой задержке | Хуже поддерживается в браузерах, меньше мобильных декодеров | Мобильный/сотовый ингест, аплинк с дрона, contribution-стримы |
| RTMP | 2–5 с | Универсальная поддержка ингеста | Устарел для воспроизведения, наследие Flash | Только ингест, никогда — воспроизведение в VMS |
Для типичного Android-приложения для VMS правильный ответ обычно слоёный: RTSP от камеры до медиашлюза, а затем WebRTC от шлюза до телефона. Шлюз сглаживает несовпадение протоколов, терминирует шифрование, при необходимости транскодирует и даёт единую точку для проверки авторизации. Мы применяем эту схему с MediaMTX, Janus и LiveKit — в зависимости от масштаба.
Сравнительная матрица: 8 ведущих VMS-платформ
Если вы интегрируетесь с существующей VMS, а не строите свою, вот короткий список. Сильные и слабые стороны — из наших реальных интеграций, не из маркетинговых обещаний.
| Платформа | Развёртывание | AI/Edge | Дифференциатор | Кому подходит |
|---|---|---|---|---|
| Milestone XProtect | On-prem и облако | Серверный, через партнёров | Более 1000 интеграционных партнёров | Мультисайтовый энтерпрайз, ритейл-сети |
| Genetec Security Center | Гибридное облако | Свой (Omnicast) | Единая VMS + контроль доступа | Госсектор, критическая инфраструктура |
| Avigilon Alta | Cloud-first | Свой (Avigilon AI) | Appearance Search, простой UX | Средний бизнес, cloud-native |
| Hanwha Wisenet | On-prem и облако | Edge AI в камерах | Совместимость с NDAA, качество картинки | Федеральный сектор США, крупные кампусы |
| Bosch BVMS | On-prem и облако | Серверный + базовый edge | Надёжность на мегамасштабе | Критическая инфраструктура, транспорт |
| Verkada Command | Только облако | Облако + edge AI | Связка железа и софта, быстрое развёртывание | SMB и средний ритейл |
| Eagle Eye Networks | Только облако | Серверный AI | Дружественен реселлерам, white-label | MSP, интеграторы |
| Network Optix Nx Witness | On-prem и облако | SDK для плагинов | Открытый SDK, ONVIF-first | Кастомные интеграторы, OEM |
Если у вас ограничения по NDAA, шорт-лист по камерам — это по сути Hanwha, Axis, Bosch, Pelco и Avigilon. Всё с SoC HiSilicon, включая OEM-перемаркировки, пропускайте, пока не получите письменного исключения. Раздел про комплаенс ниже разбирает это подробнее.
Мультикамерная сетка: как держать 16 тайлов плавными
Grid-вьюер — это то, что просит у вас на демо каждый заказчик, и поверхность, на которой большинство приложений ломается. Математика беспощадна: девять потоков 1080p H.264 при 30 fps — это примерно 2,7 гигапикселя декода в секунду. У мобильных телефонов среднего уровня GPU начинает thermal-throttle уже через три минуты, если этим активно не управлять.
Четыре правила, которые реально работают
1. Используйте аппаратные декодеры MediaCodec, а не программные фоллбэки. Определяйте возможности устройства в рантайме. Если для кодека нет аппаратной поддержки — сначала роняйте разрешение тайла, а не частоту кадров.
2. Адаптивное разрешение для каждого тайла. 16-тайловая сетка в 1080p — это потраченные впустую пиксели: пользователь всё равно не разглядит детали в ячейке 250×140. Подтягивайте substream (480p или 360p) для тайлов уже ≈480 пикселей. Переключайтесь на основной поток, когда пользователь двойным тапом разворачивает тайл на полный экран.
3. Следите за thermal API. Android отдаёт PowerManager.getCurrentThermalStatus(). Выше уровня «moderate» — снижайте частоту с 30 до 15 кадров и предупреждайте пользователя, что устройство троттлит. Лучше показать жёлтый индикатор, чем молча заморозить тайлы.
4. Агрессивно ставьте на паузу тайлы, ушедшие с экрана. При скролле останавливайте декодеры, покинувшие вьюпорт. Возобновляйте с того же I-кадра, а не пересоздавайте соединение. Экономит CPU, GPU, батарею и трафик.
По умолчанию рендерите substream, когда: ваш типичный пользователь смотрит 9 и больше тайлов на устройствах класса «телефон». Лишний тап для полного экрана стоит меньше, чем телефон, который греется у пользователя в кармане.
Пуш-оповещения, которые действительно доходят на Android 14 и 15
Большинство VMS-приложений тихо проваливаются в надёжности пушей. Оператор видит оповещения в приложении, бэкенд видит, что оповещения отправлены, FCM показывает доставку — но телефон лежит на кухонной столешнице, заблокирован, спит, и оповещение не будит экран. За этим стоят три изменения Android-платформы.
Doze-режим и App Standby Buckets. Простаивающие телефоны уходят в Doze. Сеть, будильники и планировщик задач приостанавливаются. Высокоприоритетные сообщения FCM обходят Doze, но Google следит за злоупотреблениями: пошлёте слишком много high-priority пингов, не приводящих к видимым пользователю уведомлениям, — и ваше приложение получит понижение. Шлите хартбиты только в рабочие часы, а high-priority — только под настоящие оповещения.
Правила типов foreground-сервисов (Android 14+). Фоновые сервисы, обращающиеся к сети, микрофону, камере, геолокации или медиавоспроизведению, обязаны декларировать foregroundServiceType. Неверный тип в рантайме бросает ForegroundServiceTypeException. Для VMS-приложений актуальны типы mediaPlayback, camera, microphone и новый specialUse для сессий мониторинга.
Ротация FCM-токенов. Токены меняются при переустановке приложения, очистке данных, обновлении ОС, иногда при смене железа. Приложения, которые не подписаны на onNewToken() и не синхронизируют новый токен с бэкендом немедленно, тихо теряют 5–10% устройств в месяц. Сильнее всего страдают парки планшетов, которые перепрошивают, телефоны заказчиков, переставляющие SIM-карты, и киоск-устройства, которые перезагружаются раз в неделю.
Лечение для всех трёх вещей — будничное: корректно декларируйте типы сервисов, относитесь к onNewToken() как к продакшен-коду (а не однострочной заглушке) и измеряйте сквозную задержку пуша от серверного таймстампа до onMessageReceived(). Мы держим планку «менее 5 секунд на p95» по всему парку устройств.
Пуш-оповещения теряются в продакшене?
Принесите схему пуш-пайплайна и логи FCM за неделю. За 30 минут расскажем, где умирают оповещения, — обычно в двух конкретных местах.
Edge AI на устройстве против облачной аналитики
К 2026 году «AI-камера» — уже не функция, а галочка. Интересный вопрос — где работает этот AI. Для Android-приложения VMS значимы две локации: на самой камере (edge) или на сервере, с которым общается приложение (облако или on-prem). Сам телефон редко бывает правильным местом для тяжёлых моделей на непрерывном видеопотоке — расход батареи это сразу убивает.
Edge AI на камере — самый быстрорастущий сегмент, потому что даёт покупателю историю про приватность («видео не покидает здание») и срезает расходы на egress в облако. Камеры Hanwha, Axis, Avigilon и Verkada гоняют детекцию объектов и поведенческие модели прямо в кремнии. Ваше Android-приложение принимает готовые события — «обнаружен человек», «пересечена линия», «транспорт стоит» — и рисует их на таймлайне. Моделью вы не владеете.
Облачный или on-prem AI — это то, что нужно для возможностей, которые камера не отдаёт: распознавание номеров с региональными базами, индексирование лиц, походка, поведенческие цепочки, кросс-камерный трекинг. Эти модели живут на сервере и принимают тот же RTSP-поток, что и приложение. С точки зрения Android-клиента edge- и облачный AI выглядят одинаково — события приходят на таймлайн. Разница в том, кто платит за вычисления на каждое событие.
AI на самом телефоне оправдан в узких сценариях: «приватностный» блюр лиц прохожих до того, как их увидит оператор; классификация скачанного клипа на лету при разборе; рабочие процессы охранных планшетов, которым нужна офлайн-устойчивость. TensorFlow Lite с делегатом NNAPI даёт 5–15 мс инференса на детекцию объектов на свежем Snapdragon — это нормально для одного-двух потоков, но не для сетки из 16 тайлов. В нашем гайде по детекции аномалий мы разбираем выбор модели глубже.
Безопасность, шифрование и контроль доступа
Видеонаблюдение — это самые чувствительные данные, которыми владеет ваш заказчик. Приложение должно относиться к ним так с первого дня, а не после первого аудита.
Три слоя, требующие явного внимания
1. Транспорт. TLS 1.3 до каждого бэкенда. Certificate pinning на FCM-сервере, API-сервере, медиашлюзе. Поставляйте конфиги пиннинга по вариантам сборки — в debug-сборках без пиннинга, чтобы инженеры могли пользоваться Charles, в release-сборках — с принудительным пиннингом. Большинство приложений падают на этом на первом же пентесте.
2. Хранилище. Учётные данные и refresh-токены — в Android Keystore, а не в SharedPreferences. Кэшированное видео и превью — в EncryptedFile. Метаданные событий в SQLite шифруйте через SQLCipher или Jetpack Security. У экспортов доказательств — цепочка хешей, чтобы chain-of-custody можно было проверить.
3. Идентификация и авторизация. SSO через OIDC там, где у заказчика он есть (Okta, Entra, Google Workspace), MFA через TOTP или пуш, плюс матрица ролей по камерам, которую обеспечивает бэкенд — не приложение. Приложение — это UI-слой, не граница безопасности. Каждый запрос на видео и каждая PTZ-команда авторизуются на сервере, даже если UI прячет кнопку.
Сквозное шифрование — то, при котором облако не может расшифровать видео, — в коммерческих VMS встречается редко, потому что конфликтует с серверной записью, поиском и AI. Если заказчик его требует, скоупьте это как изменение архитектуры, а не как галочку. Настоящее E2EE в контексте VMS обычно означает, что ключ оператора хранится в аппаратном модуле на площадке, приложение забирает ключ напрямую, а облако видит только шифротекст. Это отдельный подпроект на 4–8 недель.
NDAA, GDPR, HIPAA, BIPA: карта комплаенса
Комплаенс — самая частая причина, по которой кастомное Android-приложение для VMS заворачивают на закупке, и не потому, что инжиниринг плохой, а потому что никто не задокументировал путь данных. Идите впереди этой проблемы.
Section 889 NDAA запрещает федеральным агентствам США, подрядчикам и получателям грантов использовать оборудование Hikvision, Dahua, Hytera, Huawei и ZTE, включая OEM-перемаркировки на их SoC. Если ваш заказчик хоть как-то связан с федеральным контрактом, вы не можете поддерживать эти камеры — даже если заказчик просит. Заведите матрицу комплаенса с каждым вендором камер, каждым SoC и каждым облачным регионом и получите подпись заказчика.
GDPR (ЕС/Великобритания) — это ограничение, формирующее архитектуру. Сроки хранения видео — это «минимизация данных» на юридическом языке: типично 30–90 дней, дольше нужно обосновывать. Субъекты данных могут запросить доступ (DSAR) и удаление. С первого дня делайте операторский UI «экспортировать всё, где есть человек X» и «удалить всё, где есть человек X». Трансграничная передача требует стандартных договорных оговорок, если облачный бэкенд за пределами ЕС.
HIPAA (здравоохранение США) срабатывает, когда камера смотрит на пациентов, медкарты или зоны лечения. Доступ к PHI логируется, шифруется в покое, ведётся аудит-трейл. Планируйте Business Associate Agreement с каждым облачным и SaaS-вендором в цепочке. Закладывайте четыре недели на цикл аудита под каждый релиз.
BIPA (штат Иллинойс) и другие биометрические законы США регулируют распознавание лиц, отпечатков и аналитику походки. До биометрического захвата требуется письменное согласие. Биометрические идентификаторы нельзя продавать или передавать. Планируйте процедуру отказа в приложении и жёсткий kill-switch для функций лиц по каждой камере. Несколько штатов США скопировали шаблон BIPA — рассматривайте его как пол, а не потолок.
Эталонная архитектура Android-клиента для VMS
Рабочая архитектура кастомного Android-приложения для VMS состоит из четырёх плоскостей: камеры, шлюз, бэкенд и само приложение. Чёткое разделение между ними — это разница между сборкой за шесть месяцев и сборкой за восемнадцать.
Плоскость камер. Камеры ONVIF Profile S/G/T, один или несколько вендоров, возможно за NVR. Часть камер запускает edge AI и сама эмитирует события. Камеры говорят на RTSP и ONVIF-событиях.
Плоскость шлюза. Медиашлюз (MediaMTX, Janus, LiveKit или серверная часть вендорского SDK) терминирует RTSP от камер и переотдаёт его клиентам по WebRTC или LL-HLS. Он же обеспечивает авторизацию, накладывает водяные знаки и может крутить серверный AI. Именно здесь живёт большая часть инженерного времени в серьёзной VMS.
Плоскость бэкенда. Пользовательские учётки, матрица ролей и прав, конвейер оповещений, индекс записей, журнал аудита, биллинг и админка. Мы обычно запускаем сервисы на Node.js или Kotlin поверх Postgres, Redis для горячего состояния, S3-совместимое объектное хранилище для клипов и шину событий (RabbitMQ или NATS) для оповещений.
Плоскость Android-приложения. Kotlin, Jetpack Compose для UI, ExoPlayer или собственный пайплайн на MediaCodec для видео, FCM для пушей, OkHttp+Retrofit для бэкенда, WebRTC SDK для низкой задержки и небольшой довесок TensorFlow Lite, если делаете классификацию на устройстве. Архитектура — MVVM + чистый доменный слой; CI/CD через GitHub Actions или Bitrise в Play Console.
Архитектура с медиашлюзом (вместо «камера — напрямую — приложение») оправдана, когда: у вас больше 50 камер, несколько вендоров камер, удалённые операторы за пределами LAN, серверный AI или комплаенс, требующий единой точки авторизации и аудита.
Мини-кейс: запуск ритейл-видеонаблюдения с мобильным доступом
Контекст. Оператор ритейл-безопасности с парком более 10 000 площадок, добавленных только в 2025 году, нуждался в мобильном доступе для менеджеров магазинов и региональных руководителей по предотвращению потерь. Десктоп-клиент работал, но менеджеры таскали отдельное железо и планшетные приложения, а задержки в устаревших мобильных дашбордах заметно убивали расследования. На столе лежал KPI по снижению shrink — платформе уже приписывали сокращение shrink до 30% за первый квартал в национальных продуктовых сетях.
Что мы выпустили. Мобильный VMS-сценарий поверх существующего видеопайплайна (FFmpeg, MediaMTX, MongoDB) с архитектурой медиашлюза SIP/WebRTC, которую мы уже использовали в параллельном проекте по управлению облачным видео. Мобильный опыт показывал AI-оповещения о движении менее чем за 30 секунд, связывал POS-транзакции с видеотайлами и позволял менеджерам собирать видео-доказательства с проверяемым хешем. Мы переиспользовали мост SIP-to-WebRTC, который раньше построили для проекта IP-домофонов, чтобы держать задержку под контролем.
Результат. Заказчики из сегмента быстрого питания зафиксировали на 40% меньше инцидентов с уходом без оплаты. Региональная банковская ассоциация записала на счёт платформы предотвращение мошенничества на сумму более 375 млн ₽. Среднее время установки новой площадки сократилось примерно на 60% по сравнению с устаревшим стеком. Главная мобильная победа — менеджеры перестали эскалировать тикеты «не вижу камеру на телефоне» в поддержку: оповещение и воспроизведение оказались в одном тапе друг от друга, а не в трёх приложениях и VPN.
Модель стоимости: реальные бюджеты для MVP, среднего уровня и энтерпрайза
Это реалистичные диапазоны для сеньорного агентства в 2026 году при использовании агент-ассистированного инжиниринга. Они предполагают одну команду, современный Android-стек (Kotlin, Compose, ExoPlayer) и ONVIF+RTSP+WebRTC поверх медиашлюза. Прибавляйте 20–30% для федеральных и NDAA-проектов, мультирегиональных облаков или агрессивных требований по доступности и локализации.
| Уровень | Что входит | Типичный срок | Реалистичный диапазон |
|---|---|---|---|
| MVP | RTSP/ONVIF-лайв, сетка 4–9 тайлов, базовое воспроизведение, FCM-пуши, логин/логаут, одна VMS | 8–12 недель | 1,8–3,3 млн ₽ |
| Средний уровень | Всё из MVP + PTZ, talk-back, ролевая матрица, таймлайн событий, две VMS-интеграции, офлайн-кэш | 14–18 недель | 4,1–6,7 млн ₽ |
| Энтерпрайз | Всё из «среднего» + мультитенантность, white-label, события edge AI, MDM-киоск, SSO, аудит-журнал, инструменты под GDPR/HIPAA | 22–30 недель | 8,2–13,5 млн ₽ |
Куда бюджет уходит на самом деле — это редко «камерная сетка». Он уходит в документирование под комплаенс, надёжность пушей, интеграционное тестирование на парках камер и в долгий хвост edge-кейсов по фрагментации Android-устройств. Закладывайте 25–35% бюджета на QA и пилотные операции, а не на разработку функций.
Фреймворк решений — выберите путь за пять вопросов
Если на эти пять вопросов вы можете ответить на одном листе бумаги, ваш скоуп в порядке. Если не можете — это и есть та встреча, которую стоит провести до подписания ТЗ.
Q1. Сколько камер, сколько площадок, сколько одновременно работающих операторов? Менее 50 камер и одна площадка — приложение вендора или его SDK почти всегда дешевле. Более 200 камер, несколько площадок или 10+ одновременных операторов — кастомная архитектура начинает окупаться.
Q2. Одна VMS или много? Один вендор — оболочка над его SDK. Много вендоров или неизвестные будущие — ONVIF-first кастомный клиент. Смесь вендоров через их SDK ко второму году превращается в ловушку обслуживания.
Q3. Где живёт AI? На камере, в облаке или на телефоне. Ответ определяет трафик, задержку, историю про приватность и лицензирование. Большинству проектов нужен явный выбор под каждую возможность, а не один глобальный ответ.
Q4. Какие режимы комплаенса в скоупе? NDAA, GDPR, HIPAA, BIPA, SOC 2, ISO 27001. Каждый добавляет недели. Недооценка этого — причина №1 расползания скоупа в корпоративных VMS-проектах.
Q5. Кто будет это сопровождать ближайшие три года? Если ответ «нанятое нами агентство» — закладывайте 15–25% от стоимости сборки в год. Если «наша внутренняя команда» — явно вписывайте в проект передачу знаний и контрольные точки по code review.
Подводные камни, которых стоит избегать
Вот пять мест, где мы регулярно видим, как проекты сжигают недели. Ничего экзотического — но всё это легко выпадает из ТЗ.
1. RTSP-over-UDP без TCP-фоллбэка. UDP хорош в локальной сети и ужасен в интернете. Если ваш медиашлюз не умеет договариваться о фоллбэке на TCP, первый I-кадр будет ждать пакета, который не придёт никогда, и пользователь увидит чёрный тайл. Примерно треть аудируемых нами обращений в поддержку по мобильным VMS упирается в это.
2. Недооценка лицензирования H.264 и H.265. Лицензионные сборы по H.264 в 2026 году скакнули с плоского потолка в 7,5 млн ₽ к ярусной структуре, где OTT-публикаторам Tier-1 грозят сборы до 337 млн ₽ в год. H.265 контролируют три отдельных патентных пула. Если вы выпускаете коммерческое приложение, декодирующее любой из них, поговорите с медиа-лицензионным юристом до запуска — не предполагайте, что лицензия вендора камер покрывает вашего клиента.
3. Пропуск ротации FCM-токенов. Приложения без полноценной реализации onNewToken() тихо перестают получать оповещения на 5–10% устройств в месяц. Пользователь ничего не видит — пока на аудите не обнаружатся пропущенные оповещения о движении на ключевых камерах.
4. Отключённый в debug-сборках certificate pinning, который забыли вернуть. Классика. Под QA настроили Charles-прокси, пиннинг выключили, чтобы тесты проходили, флаг отключения дожил до release-сборки. Пентестеры и охотники за багами обожают такое. Решение — конфиги пиннинга, привязанные к варианту сборки, плюс CI, который роняет релиз, если пиннинг выключен.
5. NDAA-дрейф парка камер. Заказчик добавляет OEM-камеру с SoC HiSilicon. Комплаенс ломается молча. Решение — публиковать allow-list по железу, отказываться добавлять камеры, проваливающие SoC-проверку, и проводить квартальные аудиты парка. В нашем обзоре ведущих вендоров видеонаблюдения отмечено, кто из них прозрачно публикует свой статус по NDAA.
KPI, которые имеют значение: качество, бизнес, надёжность
Любому Android-приложению для VMS нужен инструментированный дашборд KPI с первой недели пилота, а не после запуска. Три блока с порогами, которые мы держим как минимальную планку для релиза.
KPI по качеству. Time-to-first-frame < 1 с в LAN, < 2 с в WAN. Доля выпавших кадров < 3% при обычной нагрузке, < 1% для оповещений уровня безопасности. PTZ round-trip < 500 мс. Сквозная задержка пуша < 5 с на p95. Холодный старт < 3 с на устройстве среднего уровня.
Бизнес-KPI. Дневное число активных операторов, среднее число тайлов на сессию, обработанных оповещений за смену, экспортов видео-доказательств в неделю, время до первого действия по оповещению высокого уровня. Это то, что директор по операциям заказчика реально показывает финансовому директору.
KPI по надёжности. Сессии без падений > 99,5% (Crashlytics). Доля ложноположительных оповещений о движении < 10% (настраивается по каждой камере). Успех доставки пуша > 98%. Успешное переподключение после смены сети > 99%. Разряд батареи < 8% в час с одним открытым тайлом.
Нужно второе мнение по предложению вендора?
Пришлите ТЗ, схему архитектуры и список камер. Скажем, что оставить, что срезать и чего не хватает, — без счёта за чтение.
Когда НЕ стоит делать кастомное Android-приложение для VMS
Кастомная разработка Android-приложения для VMS — дорогое удовольствие и неправильный ответ для заметной доли покупателей. Примерно одному из четырёх приходящих мы говорим, что кастом не стоит этих денег, — и потом они нас благодарят. Отойдите от кастома, когда:
Вы работаете с одним вендором VMS и менее чем 50 камерами. Мобильное приложение вендора плюс тонкий слой кастомных дашбордов поверх его REST API дадут вам 95% ценности за 10% стоимости.
Единственный дифференциатор — брендинг. White-label дешевле кастомного кода. Большинство корпоративных вендоров его предлагают. Если единственный смысл сборки — «наш логотип на экране логина», заплатите за white-label.
Вы не сможете финансировать сопровождение. Android движется быстро. Уровни API устаревают. FCM ротируется. Новые правила foreground-сервисов выходят каждые двенадцать месяцев. Если вы не готовы выделять примерно 1,8–3,7 млн ₽ в год на сопровождение и обновления под платформу — не начинайте.
Ваш срок — меньше восьми недель. MVP, выпускаемый за восемь недель, реален, но всё, что короче, — это в лучшем случае ребрендинг приложения вендора. Мы скажем вам это на первом же звонке.
FAQ
Сколько времени занимает разработка кастомного Android-приложения для VMS?
Сфокусированный MVP с живым просмотром, воспроизведением, пушами и одной VMS-интеграцией выпускается за 8–12 недель. Средний уровень с PTZ, talk-back, ролевой матрицей и двумя VMS-интеграциями — 14–18 недель. Энтерпрайз с мультитенантностью, edge AI, MDM и SSO — 22–30 недель. Аудиты комплаенса добавляют по четыре недели на каждый режим.
Будет ли приложение работать с нашей существующей инсталляцией Milestone, Genetec или Avigilon?
Да, но путь интеграции отличается. Milestone отдаёт XProtect Mobile SDK; Genetec предлагает мобильные компоненты Security Center; Avigilon — закрытое облако с интеграцией через документированный REST. Для Bosch, Hanwha и Axis входная точка — обычно ONVIF Profile S/G. Закладывайте две-три недели на каждую VMS под сертификацию и полевые тесты.
Сколько камер одновременно потянет один Android-планшет?
От четырёх до девяти живых потоков 720p/30fps — комфортно на современном планшете (Galaxy Tab S, Pixel Tablet). Шестнадцать тайлов требуют адаптивного разрешения, по 480p и ниже на тайл. Воспроизведение архива гораздо легче — тот же планшет может листать архивы 100+ камер. Реальный потолок задаёт thermal throttling, а не сеть.
Нужно ли сквозное шифрование и стоит ли оно прироста задержки?
Если вы работаете с PII, здравоохранением или регулируемым ритейлом — планируйте его. Грамотно реализованный аппаратно-ускоренный AES-GCM добавляет менее 50 мс задержки. Дороже идёт операционная часть — управление ключами, восстановление при потере устройств и утрата серверного поиска при настоящем E2EE. Скоупьте это как подпроект на 4–8 недель.
Какой уровень Android API целить в 2026 году?
Компилируйте против API 35 (Android 15), как минимум таргетируйте API 33 (Android 13). Большинство головной боли с foreground-сервисами и broadcast-ресиверами сконцентрировано между API 31 и 35 — закладывайте явное тестирование на каждом уровне. Ниже API 30 вы теряете доступ к платформенным возможностям, которые заказчики будут считать самой собой разумеющимися: современный photo picker, изменения в плитках быстрых настроек, обновлённые возможности MediaCodec.
Можно ли запустить это в режиме киоска или MDM-блокировки на охранных планшетах?
Да. Используйте Android Enterprise с управляемым развёртыванием через Google Play, плюс DevicePolicyManager для режима киоска и lock-task. Отключайте Home и Recents, управляйте пиннингом приложений, форсируйте таймаут экрана и поставляйте удалённый kill-switch для потерянных и украденных устройств. Прибавьте две-три недели на хардеринг MDM и пилот.
Какие работы по комплаенсу и аудиту нужно планировать на постоянной основе?
GDPR: хранение менее 90 дней без обоснования, аудит доступа к видео, эндпоинты на удаление. HIPAA: логирование доступа к PHI, ролевой доступ, шифрование в покое, ежегодный аудит. BIPA: явное согласие на биометрию, запрет на продажу и обмен, процедура отказа. NDAA: задокументированные allow-list по железу и облакам, никаких Hikvision и Dahua, никаких перемаркировок HiSilicon. Закладывайте четыре недели QA и неделю комплаенс-ревью на каждый крупный релиз.
Стоит ли поддерживать Android Auto, Wear OS, Android TV и складные устройства?
Складные устройства даются «бесплатно», если строить на Compose с адаптивной разметкой. Android TV окупается, только если вы выходите в диспетчерские или дашборды для гостиных: в середине 2024 года Google сообщала о 220 миллионах ежемесячно активных устройств на Android TV OS и росте 47% год к году — аудитория реальная, но специфическая. Wear OS для VMS редко окупается дальше простых сводок по оповещениям. Android Auto под живое видео не разрешён политикой Google. Скоупьте всё это отдельными фазами.
Что почитать дальше
Мобильные приложения для IP-камер
Создание мощных мобильных приложений для IP-камер
Глубокий технический спутник: ONVIF-дискавери, согласование RTSP, PTZ-команды и нюансы аудио talk-back.
Облачная VMS
Архитектура безопасного облачного управления видео
Как спроектировать бэкенд, с которым общается Android-клиент: шифрование, аудит-трейлы, мультитенантные паттерны.
Edge AI
Модели детекции аномалий для видеонаблюдения
Выбор подходящего семейства моделей под события, которые показывает ваше VMS-приложение, — и что из этого крутится на edge.
Умные домофоны
Умные домофоны на Android
Двусторонний звук, мосты SIP-to-WebRTC и архитектурный паттерн, который мы переиспользуем в проектах с домофонами.
Ритейл-безопасность
Продвинутое видеонаблюдение для ритейла
Как интеграция POS и видео, настройка ложных срабатываний и BIPA формируют требования к Android-клиенту VMS в ритейле.
Готовы оценить своё кастомное Android-приложение для VMS?
Кастомное Android-приложение для VMS оправдывает себя, когда вы обслуживаете больше одного заказчика или больше одной VMS, когда AI — часть вашего предложения или когда комплаенс заставляет контролировать путь данных. Ниже этой планки приложение вендора или оболочка над его SDK — более разумный выбор. Так или иначе, путь внутри один и тот же: ONVIF со стороны камер, медиашлюз посередине, аккуратный Android-клиент сверху и неутомимый дашборд KPI с первой недели.
Если вы прямо сейчас оцениваете проект, самое полезное, что можно сделать на этой неделе, — выписать ответы на пять вопросов из фреймворка выше. Если они выдержат двадцать минут внутреннего давления, у вас есть реальный проект. Если нет — это та встреча, в которой мы хотим оказаться. До того, как ТЗ подпишут, а не после.
Принести скоуп Android VMS на рабочую встречу?
Тридцать минут. Мы приведём двух сеньорных инженеров со шрамами от разработки кастомных Android-приложений для VMS, реальный набросок архитектуры и реалистичный бюджет, который можно отнести финдиректору.
