К содержимому
Sirin Video CCTV

Видеонаблюдение на ваших серверах

Для предприятий и объектов с дежурной сменой, управляющих компаний и городов, операторов видеонаблюдения как услуги и интеграторов. Дежурные смотрят камеры в браузере, архив пишется круглосуточно, каждому открыт доступ только к своим камерам — от одной площадки до тысяч камер на десятках серверов. Видео и архив остаются в вашей сети.

Видеостена 2×2 с живыми уличными камерами действующей системы.
до 1000 камер
на один медиаузел — ориентир при 2 Гбит/с суммарного битрейта
≈1 с
задержка у оператора в браузере, без плагинов
24/7 архив
с переходом по событиям и выгрузкой фрагмента файлом
0 пауз в записи
при отказе управляющего узла: медиаузлы продолжают показ и архив
Для кого

Кому она нужна и что даёт

Четыре типовые задачи. Одна установка обслуживает столько организаций, сколько нужно: филиалы предприятия, объекты подрядчика или клиентов оператора. Пока организация одна, интерфейс не показывает лишнего.

Предприятия и объекты

Дежурная смена следит за территорией, происшествия разбираются по записи.

  • Видеостены в браузере и на отдельном мониторе в режиме киоска
  • Непрерывный архив с переходом по событиям и выгрузкой фрагмента файлом
  • Видео и архив не покидают вашу сеть

Управляющие компании и города

Много объектов, тысячи камер и много людей, которым нужны разные камеры.

  • Камеры распределяются по медиаузлам: рост — это новый узел, а не новая система
  • Операторам и подрядчикам открываются только нужные камеры и действия: эфир, архив, PTZ, экспорт
  • Неизменяемый журнал: кто выдал доступ, показал пароль камеры, выгрузил архив

Видеонаблюдение как услуга

Подключать камеры клиентов и продавать им видеонаблюдение как услугу.

  • Организации-арендаторы с квотами на камеры и пользователей, данные клиентов полностью разделены
  • Камеры за NAT подключаются через агент — белый адрес и проброс портов у клиента не нужны
  • Лицензируется медиаузел по числу потоков; управляющий узел лицензии не требует

Интеграторы

Сдать заказчику систему наблюдения и связать её со смежными системами.

  • Установка на серверы заказчика: базу данных установщик ставит и настраивает сам
  • Массовое заведение камер и инвентаризация через REST API
  • Приём событий от внешних детекторов и смежных систем

Задача рядом, но не совпадает? Опишите её — скажем прямо, подходит система или нет.

Возможности

Что умеет система

Камера — это запись в управляющем узле, а не строка в конфигурации сервера: источник, профили, политика архива и права хранятся централизованно и применяются на узлах автоматически.

Приём с камер

ONVIF-камеры с автоопределением профилей, прямой RTSP по TCP и UDP, камеры за NAT через агент в закрытой сети.

Просмотр

MSE-WS с задержкой около секунды у зрителя и HLS для слабого канала — в браузере, без плагинов и установки.

Архив

Непрерывная запись на диски узла, глубина по сроку или объёму, холодная копия в S3-совместимом хранилище.

События

Системные события платформы, ONVIF-события камер, интервальные эпизоды с длительностью, вложения-доказательства.

Организации

Мультиарендность с квотами: камеры, пользователи, теги, мозаики и события одной организации не видны из другой.

Мозаики

Раскладки из камер и тегов, автосмена страниц, вывод на отдельный монитор в режиме киоска.

Управление PTZ

Поворот, наклон и зум по ONVIF — отдельной привилегией, которая выдаётся адресно, а не «за компанию».

Контроль действий

Неизменяемый журнал аудита: кто завёл камеру, показал пароль, выдал доступ, выгрузил фрагмент архива.

Как устроено

Мозг и мышцы

Система состоит из двух самостоятельных программ. Управляющий узел — консоль, API, база и права; медиаузлы забирают видео с камер, раздают его зрителям и пишут архив. Весь тяжёлый трафик идёт через узлы.

Камеры RTSP и ONVIF, в том числе через агент
Медиаузел приём, раздача, запись архива
Браузер видео идёт напрямую с узла
Управляющий узел управляет всем, но видео через него не идёт

видео управление

Узлов может быть много: камеры распределяются между ними, управляющий узел один.

Видео мимо управления
Браузер получает поток напрямую с медиаузла. Канал и процессор управляющего узла не зависят от числа зрителей — он не становится узким местом.
Узлы переживают отказ управления
Если управляющий узел недоступен, видео и запись не прерываются; перестают работать вход в консоль, выдача новых прав и изменение настроек.
Желаемое состояние
Управляющий узел хранит конфигурацию каждого медиаузла и приводит его к ней: телеметрия опрашивается примерно каждые 5 секунд, конфигурация сверяется примерно раз в минуту, изменения рассылаются сразу.
Рост — это новые узлы
Камеры распределяются между узлами; каждая камера в каждый момент принадлежит одному узлу. Управляющий узел остаётся один.
Отказал компонент Что продолжает работать Что перестаёт
Управляющий узел Видео и запись архива на узлах не прерываются Вход в консоль, выдача новых прав, события, изменение настроек
Медиаузел Остальные узлы и их камеры Видео, архив и запись камер только этого узла
База данных Узлы продолжают вещать и писать Управляющий узел целиком
Сеть до камеры Всё остальное Эта камера: видео нет, в архиве пропуск, откроется событие
Протоколы

Камеры и зрители

Тип источника выбирается один раз при заведении камеры и определяет, что будет доступно дальше: автоопределение профилей, события камеры и PTZ — или только приём потоков по готовым ссылкам.

Источники

Тип Когда выбирать Что даёт
ONVIF-камера Камера доступна по IP и поддерживает ONVIF Автоопределение профилей и адресов потоков, события камеры, PTZ
Прямой RTSP Известен готовый адрес RTSP Приём потоков по указанным ссылкам
Камера через агент Камера за NAT, в закрытой сети Стабильные зашифрованные маршруты ONVIF и RTSP через релей

Камеры заводят вручную, поиском в сети по ONVIF, из шаблона или массово через REST API. Для закрытых сетей агент сам приходит исходящим соединением на релей: белый адрес и проброс портов на объекте не нужны.

Просмотр

Протокол Доставка Где применять
MSE-WS доли секунды Наблюдение в реальном времени, работа с поворотной камерой
HLS несколько секунд Нестабильная связь и слабый канал: картинка реже рвётся
RTSP десятки миллисекунд Видеорегистраторы и стороннее ПО, служебная диагностика
Превью-кадр Плитки в списке камер и в ячейках мозаики

Режим переключается вкладкой прямо в плеере — устанавливать ничего не нужно. В колонке «Доставка» — путь до плеера; итог у зрителя определяет запас плеера: около секунды на MSE-WS, около восьми — на HLS.

Два потока камеры

Если камера отдаёт основной и дополнительный потоки, оператор переключает качество прямо над видео, а стена собирается из низкобитрейтных потоков.

На запись переключатель не влияет: архив всегда пишется основным потоком. Перекодирования нет ни на одном шаге — профили готовятся на камере.

Основной поток
полное разрешение — рассмотреть лицо, номер, надпись
Дополнительный
меньше нагрузка на канал — «для присмотра» и для больших стен
Архив

Запись и разбор

Архив — непрерывная запись потока камеры на диск медиаузла. Оператор листает время по шкале, находит момент по всплывающему кадру и выгружает нужный фрагмент файлом.

Фрагмент сохраняется в MP4 и открывается любым проигрывателем. Длительность одной выгрузки ограничена — обычно до пятнадцати минут, точный предел задаёт администратор; каждая выгрузка попадает в журнал аудита.

Глубина на каждой камере
Режим «по сроку хранения» или «по объёму хранилища»: например, 7 дней или 500 ГиБ. Запись включается для каждой камеры отдельно.
Архив принадлежит узлу
Файлы всегда лежат на том узле, к которому привязана камера; управляющий узел хранит только политику и знает, где искать записи. Пишется основной профиль.
Холодная копия в S3
Узел всегда пишет на локальный диск, а объектное хранилище подключается отдельно — как холодная копия уже записанных сегментов.
Разбор по шкале времени
Календарь отмечает дни с записью, шкала — закрашенные участки; наведение показывает кадр на этот момент, скорость от 0,5× до 16×, а по отметкам событий переходят от одного происшествия к другому.
Оператор

Стена и лента событий

Мозаика — сохранённая раскладка: сетка до восьми ячеек по горизонтали и по вертикали, заполненная камерами и тегами. Тег разворачивается в свои камеры сам, поэтому новая камера на объекте попадает на стену без переделки раскладки. Ту же мозаику выводят на отдельный монитор в режиме киоска — без меню и шапки.

Настраивать оператору нечего: камеры, права и раскладки назначает администратор. Видео открывается в браузере и в мобильных приложениях.

Раздел Что в нём
Обзор Стартовый экран дежурного: сводка за сегодня и живая лента событий
Камеры Список камер, к которым открыт доступ, с просмотром и архивом
Мозаики Назначенные раскладки: несколько камер на одном экране
События Журнал происшествий: фильтры, вложения, переход к записи
Система не анализирует видео сама. События приходят от камер по ONVIF, от самой платформы — например «Узел не в сети» или «Поток недоступен» — и от внешних детекторов, которые присылают их по отдельному токену, не дающему доступа к видео.
Плотность

Сотни потоков на логическое ядро

Медиаузел построен на том же ядре, что и медиасервер, и наследует его главное свойство — высокую плотность потоков: расход линеен и предсказуем.

на одно логическое ядро Современный серверный процессор. Точное число зависит от характеристик потоков — битрейта, разрешения и числа дорожек.

250+ потоков

на логическое ядро процессора 15-летней давности Реальный замер на стенде: Xeon E5-2620 v1, 2,0 ГГц. Не расчёт и не экстраполяция — измерено под нагрузкой на пятнадцатилетнем железе.

≈100 потоков

до 50 Гбит/с

с одного узла Верхняя граница трафика одной машины при достаточной полосе. Как и плотность, зависит от характеристик потоков.

Зрители обходятся почти даром

Поток камеры упаковывается один раз, и эта работа не зависит ни от числа смотрящих, ни от числа протоколов. Оператор добавляет к ней только отправку байтов, поэтому смена из двадцати человек на общей стене не удваивает нагрузку узла.

Откуда это берётся

Ядро написано на Rust — современном высокопроизводительном языке. Дальше дело в качестве: выверенный и тщательно протестированный код и архитектура, спроектированная под эту нагрузку с самого начала.

Узел под нагрузкой: 146 потоков, 132 из них в эфире — 1,34 из 16 рабочих ядер и 1,27 ГБ памяти процесса. Узел измеряет себя сам и показывает это в консоли, API и метриках.
Планирование

Сколько узлов и сколько дисков

Узел не перекодирует видео, поэтому нагрузку определяет суммарный битрейт, а не число камер и не их разрешение: сто камер по 8 Мбит/с тяжелее трёхсот по два. По процессору запас велик — считать надо сеть и диск. Глубина архива на память не влияет вообще.

Один медиаузел: камеры по 2 Мбит/с с записью

Камер Память Входящая сеть
до 50 8 ГБ 100 Мбит/с
100 8 ГБ 200 Мбит/с
250 16 ГБ 500 Мбит/с
500 16–32 ГБ 1 Гбит/с
1000 32–64 ГБ 2 Гбит/с

Это ориентир, а не гарантия. Держите запас 30–50 % по памяти — и помните, что два узла по 250 камер всегда предпочтительнее одного на 500.

Архив на 100 камер, терабайты без запаса

Битрейт 7 суток 14 суток 30 суток
1 Мбит/с 3,8 7,6 16,2
2 Мбит/с 7,6 15,1 32,4
4 Мбит/с 15,1 30,2 64,8

Один мегабит в секунду записи — примерно 10,8 ГБ в сутки. Добавьте 10–15 % запаса; звук G.711 прибавляет около 0,7 ГБ в сутки на камеру, а копия в объектном хранилище равна по объёму локальной.

Доступ и события

Что видно и что записывается

Роль определяет, какие разделы доступны, грант — какие камеры и с какими возможностями. Без грантов список камер у оператора пуст: права только добавляются, запретить грантом нельзя.

Шесть привилегий на камеру

Прямой эфир
Живое видео камеры
Архив
Просмотр записей на шкале времени
События
Лента происшествий по камере
PTZ
Поворот, наклон и зум по ONVIF
Экспорт
Скачивание фрагмента архива файлом
Превью
Одиночный кадр в списках и ячейках мозаики

Область гранта — вся организация, тег или одна камера. Несколько грантов складываются по максимуму; ссылка доступа не может выдать больше, чем есть у того, кто её выпустил.

Восемь системных событий

  • Узел не в сети интервал
  • Поток недоступен интервал
  • Ошибка авторизации камеры мгновенное
  • Хранилище архива недоступно мгновенное
  • Потеряна подписка на события ONVIF интервал
  • Ошибка управления ONVIF PTZ мгновенное
  • Некорректная конфигурация узла мгновенное
  • Квота организации мгновенное

Плюс события самих камер по ONVIF и события от внешних детекторов, принимаемые по отдельному модульному токену. Интервальное событие живёт от открытия до закрытия и показывает длительность.

Управление

Консоль и REST API

В системе нет действия, доступного в интерфейсе и недоступного в API: через него делают массовое заведение камер, инвентаризацию, перенос между узлами, выгрузку событий и внешний мониторинг.

Группы операций

Единый базовый адрес на том же хосте, что и консоль: отдельного порта под API нет. Ответы — JSON; живые данные идут потоками SSE — лента событий, состояние флота, телеметрия узлов, журнал аудита.

  • Аутентификация
  • Камеры
  • События
  • Узлы и хранилища
  • Теги, мозаики, шаблоны
  • Организации и пользователи
  • Мониторинг и служебное
Листание курсором
Выборка листается ключом последней строки, а не смещением: страница не «съезжает», когда данные меняются под запросом.
Живые данные потоком
События, состояние флота и журналы отдаются потоком SSE. Поток конечен — не длиннее пяти минут, после чего клиент переподключается.
Роль читается из базы
Не из токена: понижение прав действует со следующего же запроса, а не после истечения выданного токена.
Пределы пакетных операций
Не более 500 идентификаторов в одной пакетной операции, 32 тегов и 4 профилей на камеру, 50 камер в одной подписке.

Три роли

Суперадмин
Вся установка: организации, узлы, хранилища, настройки, TLS
Админ организации
Своя организация: камеры, пользователи, теги, мозаики, события
Оператор
Только то, что открыто грантами: без грантов список камер пуст

Журнал аудита

Неизменяемый, только на добавление: время, кто, что сделал, над каким объектом, с какого адреса. Отдельно от технических журналов служб.

Отдельную камеру можно показать ссылкой: получатель открывает её в браузере без учётной записи. Срок ссылки — от часа до 90 дней; её можно ограничить сайтом и адресами, отозвать — в любой момент.

Развёртывание

Ставится на ваши серверы

Управляющий узел и медиаузлы устанавливаются на обычные серверы Linux. Видео, архив и события остаются в вашей сети: наружу уходят только проверка лицензии узла и выпуск сертификатов.

Обновление управляющего узла можно делать в рабочее время: узлы переживают его перезапуск без потери видео и записи.

Два сервиса systemd
Управляющий узел и медиаузел ставятся отдельно и могут работать на разных серверах — рекомендуемый вариант.
Linux x86-64
Ядро 5.1 и новее, glibc 2.31, systemd. Оборудование общего назначения.
База данных
Управляющему узлу нужна PostgreSQL: установщик ставит и настраивает её сам. Ориентир для малой и средней установки — 2–4 ядра и 4–8 ГБ памяти.
TLS без прокси
Сертификаты выпускаются автоматически по ACME. Узел должен быть доступен браузеру: видео идёт напрямую с него.
Лицензируется узел
Управляющий узел лицензии не требует. Предел — число одновременных потоков на узле; при недоступности службы активации узел продолжает работать несколько суток.
Резервное копирование
Состояние установки — это база управляющего узла и вложения событий; узлы восстанавливаются из конфигурации.
Сеть

Кто с кем разговаривает

Видео идёт от медиаузла к браузеру напрямую, поэтому узел должен быть доступен зрителю — управляющий узел видео не проксирует и от числа зрителей не зависит.

Порт 80 нужен постоянно, а не только при установке: сертификат продлевается автоматически примерно каждые 60 дней.

Откуда Куда Порт Зачем
Браузер оператора Управляющий узел 443 Консоль, API, страница плеера
Браузер оператора Медиаузел 443 или 9443 Видео: живое, архив, превью
Управляющий узел Медиаузел тот же, что и у браузера Управление, телеметрия, конфигурация
Медиаузел Управляющий узел 443 Ключи проверки прав и отзывы
Медиаузел Камера 554 Приём видео по RTSP
Управляющий узел Камера 80 · 8000 · 554 ONVIF: поиск, профили, PTZ, события
Управляющий узел PostgreSQL 5432 База данных, обычно на том же хосте
Интернет Узлы 80 Проверка при автоматическом выпуске сертификата
Туннельный агент Релей 443 Исходящее соединение из закрытой сети
Интерфейс

Как это выглядит

Консоль администратора и мастер заведения камеры. Всё, что делает консоль, доступно и по REST API — интерфейс не имеет привилегий, недоступных вашей системе автоматизации.

Живая стена 2×2: реальные камеры действующей системы. Мозаика собирается из камер и тегов и выводится на отдельный монитор в режиме киоска.
Мониторинг: доступность узлов, камеры и профили в эфире и отдельный счётчик того, что требует внимания.
Заведение камеры: тип источника — ONVIF, прямой RTSP или камера за NAT через агент — и многоразовый шаблон настроек. Всего три шага.
Вопросы

Что спрашивают чаще всего

Восемь вопросов из тех, что задают до внедрения. Полный список — в разделе «Вопросы и ответы» документации.

Сколько камер тянет один узел?
По процессору запас огромный: от 250 потоков на одно логическое ядро современной машины. Определяющий фактор — суммарный битрейт, а не число камер: 100 камер по 8 Мбит/с нагружают узел сильнее, чем 300 по 2 Мбит/с. Раньше процессора кончаются сеть и диск, поэтому два узла по 250 камер предпочтительнее одного на 500.
Камера пропадала, а событие не создалось — почему?
Так задумано: короткие «моргания» подавляются. Камера объявляется недоступной после трёх подряд неудачных опросов — примерно через 15 секунд, при этом начало эпизода ставится задним числом на первый неудачный опрос.
Что означает счётчик «Ошибки» у камеры?
Число переподключений к источнику с момента запуска потока, а не количество испорченных кадров. У здоровой камеры там ноль: первое подключение не считается.
Можно ли перенести камеру на другой узел без потери архива?
Нет. Записи не переезжают между узлами — нужные фрагменты выгружаются файлом до переноса.
Почему архив не пишется?
Причин обычно три: диск не инициализирован, у камеры выключена запись либо не в порядке сам том — кончилось место или он подменён.
Сколько места нужно под архив?
Поток в 1 Мбит/с даёт примерно 10–11 ГБ на камеру в сутки. К расчёту добавляется 10–15 % запаса; звук G.711 прибавляет около 0,7 ГБ в сутки на камеру.
Почему выкидывает, когда коллега заходит под тем же логином?
Сработал лимит одновременных сеансов организации: система завершает самый старый сеанс. Вытеснение записывается в журнал аудита.
Что обязательно резервировать?
Три вещи: базу PostgreSQL, файл настроек управляющего узла и его ключи. Видеоархив в резервную копию обычно не включают — узлы восстанавливаются из конфигурации.

Проверьте на своих камерах

По запросу выдаём демо-лицензию: ставите систему у себя, заводите часть парка и смотрите работу смены на своих камерах — стену, архив и разбор события. Помогаем с настройкой и отвечаем по ходу проверки.