О сервере


Описание сервера и его функциональности

Сервер (стример) – это компьютер, работающий на операционной системе Ubuntu (версии 20.04 LTS; 18.04 LTS; 22.04 LTS) или Debian (версия 10 и 11). На сервере функционирует специальная служба под названием "main-streamer", которая отвечает за получение видео с камер, последующую трансляцию этого видео по запросу и хранение видеозаписей. Стример способен передавать RTSP-потоки для ретрансляции видео с подключенных камер, снижая нагрузку на сами камеры.

Сервер обладает простым веб-интерфейсом, через который можно осуществить базовую настройку некоторых параметров сервера и просмотреть камеры. Кроме того, сервер также может быть настроен с использованием конфигурационного файла, в котором определяются основные параметры работы сервера.

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

На сервере хранятся следующие данные: видеозаписи, журналы камер, журналы сервера и список камер. Информация о пользователях и их правах доступа к камерам хранится на управляющем сервере.

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

Все взаимодействия между клиентом, управляющим сервером и сервером хранения осуществляются через защищенное соединение SSL. Сервер хранения использует бесплатные SSL-сертификаты Let’s Encrypt сроком действия 90 дней. Процесс выдачи сертификатов полностью автоматизирован и выполняется через командную строку сервера. Для корректной работы необходимо однократно получить сертификат, после чего сервер хранения будет автоматически продлевать его действие.

Состояние сервера можно проверить с помощью проверочного скрипта, который можно запустить в командной строке стримера, либо можно просмотреть статистику работы сервера в личном кабинете партнера. Кроме того, имеется система автоматического информирования об отказах сервера через Telegram-канал и E-mail.

Регулярно выпускаются обновления для сервера, их можно установить через командную строку. Информация по выходу обновлений доступна в Личном Кабинете и Telegram-канале.

Характеристики сервера

Технические характеристики сервера

Минимальные требования к серверу:

  • Центральный процессор (ЦП): Любой одноядерный процессор на архитектуре x86-x64 с тактовой частотой 1 ГГц и выше.
  • Оперативная память (ОЗУ): Минимум 4 ГБ или больше.
  • Жесткий диск: Емкость от 50 ГБ и выше.

Конфигурация сервера, необходимая для работы с определенным количеством камер, напрямую зависит от их числа. В таблице приведены примеры рекомендуемой "железной" конфигурации для подключения камер с разрешением 2 мегапикселя и средним битрейтом 2 Мбит/с.

Характеристики сервера для разного количества камер:

В качестве носителей под архив рекомендуется использовать жёсткие диски, подключённые локально напрямую в сервер с файловой системой EXT4.

Для хранения архива рекомендуется использовать специализированные жесткие диски линеек:

  • Seagate SkyHawk
  • Western Digital Blue
  • Western Digital Purple
Внимание!
  • Для хранения видеоархива крайне нежелательно использование сетевых хранилищ (NAS). Часто сетевые хранилища показывают гораздо меньшую скорость работы, нежели жесткие диски расположенные локально – непосредственно в сервере.

Расчёт среднего битрейта камер

Данная метрика понадобится при расчёте аппаратный части севера и расчёта канала сети.

Битрейт потока на камерах видеонаблюдения всегда плавающий и зависит от разных факторов:

  1. От настроек кодирования видео на камере: кодек, частота кадров, разрешение, тип битрейта (VBR / CBR), заданный битрейт или качество и прочее.
  2. От самой картинки. Точнее того, что на этой картинки отображается: время суток, динамика в кадре, цветность, контраст и прочее.На практике средний битрейт на камере будет изменятся в течении суток при одинаковых настройках кодирования. Днём он как правило выше из-за большего движения в кадре и лучшей освещённости, а ночью — ниже из-за меньшей динамики в кадре и большего контраста (из-за подсветки) и малого количества цветов в случае ч/б режима.

Для упрощения расчётов предлагаем такой примерный средний битрейт с одной камеры:

  • Для камеры c матрицей 1080P/2MP и настройками: H264, 1920x1080, 25 FPS и VBR со средним качеством ≈ 2 Mbps,
  • Для камеры c матрицей 3MP и настройками: H264, 2048x1536, 25 FPS и VBR со средним качеством ≈ 3 Mbps
  • Для камеры c матрицей 4MP и настройками: H264, 2592x1520, 25 FPS и VBR со средним качеством ≈ 4 Mbps
  • Для камеры c матрицей 5MP и настройками: H264, 2560x1960, 25 FPS и VBR со средним качеством ≈ 5 Mbps
  • Для камеры c матрицей 6MP и настройками: H264, 3072x2048, 25 FPS и VBR со средним качеством ≈ 6 Mbps
  • Для камеры c матрицей 4K/8MP и настройками: H264, 3840x2160, 25 FPS и VBR со средним качеством ≈ 8 Mbps
  • Для камеры c матрицей 8K/32MP и настройками: H264, 7680x4320, 25 FPS и VBR со средним качеством ≈ 32 Mbps

Для кодека HEVC/H265 битрейт примерно в два раза меньше при одинаковых настройках качества.

Чтобы рассчитать общий средний битрейт со всех камер нужно средний битрейт одной камеры умножить на количество камер. Примеры:

  • Планируется добавить на сервер 30 камер 2Mpx и 10 камер 4MPx, кодек h264. Расчет будет таким: 30 × 2 Mbps + 10 × 4 Mbps = 100 Mbps.
  • Планируется добавить на сервер 100 камер 2Mpx и 20 камер 8MPx, кодек h264. Расчет будет таким: 100 × 2 Mbps + 20 × 8 Mbps = 360 Mbps.
Обращаем внимание, что таким образом подсчет будет очень примерным, но достаточным для расчета сетевой нагрузки. Если нужно более точно узнать скорость потока видео с каждой камеры, то придётся это проверять «в живую» через RTSP, например, в VLC или ffmpeg.Битрейтом аудио потока в общем можно пренебречь в расчётах из-за малого размера и нечастого использования.

Расчёт ширины интернет-канала

Ширина канала интернет для сервера рассчитывается исходя из общего битрейта со всех камер, планирующихся добавить на сервер (см. выше). Приводим несколько сценариев:

  1. Потоки с камер забираются через интернет:
  • Ширина входящего канала интернет должна быть минимум на 15% больше, чем входящий битрейт со всех камер.
  • Ширина исходящего канала рассчитывается как минимум 15% от входящего битрейта со всех камер (исходя из практики МКД).

Примеры:

Входящий битрейт со всех камер — 100 Mbps

  • Ширина входящего канала интернет в этом случае потребуется от 115 Mbps.
  • ширина исходящего канала интернет в этом случае потребуется от 15 Mbps.

Входящий битрейт со всех камер — 500 Mbps

  • Ширина входящего канала интернет в этом случае потребуется от 575 Mbps.
  • Ширина исходящего канала интернет в этом случае потребуется от 75 Mbps.
  1. Потоки с камер забираются из локальной сети:
  • Ширина входящего канала интернет может быть минимально комфортной для SSH и обмена запросами с управляющем сервером, например от 10 Mbps, т.к. основной трафик нужен только на отдачу клиентам.
  • Ширина исходящего интернет канала должна составлять минимум 15% от общего битрейта со всех камер (исходя из практики МКД)

Примеры:

Входящий битрейт со всех камер — 100 Mbps

  • Ширина входящего интернет канала в этом случае потребуется от 10 Mbps.
  • Ширина исходящего канала интернет в этом случае потребуется от 15 Mbps.

Входящий битрейт со всех камер — 500 Mbps

  • Ширина входящего канала интернет в этом случае потребуется от 10 Mbps.
  • Ширина исходящего канала интернет в этом случае потребуется от 75 Mbps.
  1. Потоки с камер забираются и из локальной сети, и из интернет:
  • Ширина входящего канала интернет должна быть минимум на 15% больше, чем входящий битрейт со всех камер, приходящих из внешней сети.
  • Ширина исходящего канала рассчитывается как 15% от входящего битрейта со всех камер, как локальных, так и внешних (исходя из практики МКД).

Примеры:

Входящий битрейт со всех камер — 200 Mbps (100 Mbps из интернет и 100 Mbps локально)

  • Ширина входящего канала интернет в этом случае потребуется от 115 Mbps.
  • Ширина исходящего канала интернет в этом случае потребуется от 30 Mbps.

Входящий битрейт со всех камер — 500 Mbps (250 Mbps из интернет и 250 Mbps локально)

  • ширина входящего канала интернет в этом случае потребуется от 287.5 Mbps.
  • ширина исходящего канала интернет в этом случае потребуется от 75 Mbps.

Место размещения сервера

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

Дата-центр: Этот вариант подходит для проектов с высоким бюджетом. Размещение сервера в профессиональном дата-центре обеспечивает высокий уровень надежности, безопасности и высокоскоростное соединение с интернетом.

Собственный дата-центр: Этот вариант подходит для провайдеров, у которых есть собственные инфраструктуры и ресурсы для размещения сервера. Он предоставляет большую гибкость и контроль над инфраструктурой, но требует значительных инвестиций.

Размещение на объекте: Рекомендуется для многоквартирных домов (МКД). Этот вариант позволяет использовать более ограниченный интернет-канал и экономить на затратах, особенно при объединении нескольких домов.

Офисное размещение: Этот вариант подходит для всех, кто имеет доступ к недорогому высокоскоростному интернету в офисе. Он удобен и прост в установке, но требует обеспечения надежного питания и безопасности в офисной среде.

Домашнее размещение: Этот вариант прост и быстр в установке, но не является наиболее надежным. Он бюджетен, так как использует интернет и электричество по тарифу для физических лиц.

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

Аренда и размещение сервера в дата-центре

Арендованный сервер - можно арендовать физический сервер или виртуальный в специализированном дата-центре.

Размещение сервера в дата-центре – установка собственного сервера в помещении дата-центра, что может быть востребовано при повышенных требованиях к безопасности и стабильности, зависящих от внешних факторов: размещение сервера производится в специализированном охраняемом помещении, при обеспечении постоянного контроля и качества интернет-соединения.

Рекомендованные дата-центры:

Для обеспечения стабильной работы сервера требуется соответствующее интернет-соединение. Ниже приведены требования к интернет-соединению для сервера:

  1. Статический IP-адрес: Для удаленного доступа к серверу необходим статический IP-адрес, который позволит постоянно идентифицировать сервер в сети.
  2. Скорость соединения: Определение необходимой скорости зависит от способа передачи видеопотока и расположения сервера относительно камер.
  • Сервер на объекте: Если сервер находится на объекте вместе с камерами и использует локальную сеть для передачи видеопотока, то достаточно стабильного канала upload-соединения для отдачи видео клиентам.
  • Удаленный сервер: Если сервер удаленно расположен от камер, видеопоток будет передаваться через интернет. В этом случае требуется широкий канал download-соединения для принятия потоков с камер и стабильный канал upload-соединения для передачи видео клиентам.

Для определения необходимой скорости на download можно просуммировать битрейты потоков со всех камер. Например, для 10 камер с разрешением 2 мегапикселя и средним битрейтом 2 Мбит/с, рекомендуется иметь интернет-канал пропускной способностью не менее 20 Мбит/с.

Скорость на upload зависит от ожидаемого количества интернет-соединений от клиентов. Если предполагается, что одновременно будет подключено, например, 20 пользователей, и битрейт одной камеры составляет 2 Мбит/с, то рекомендуется иметь скорость upload соединения не менее 40 Мбит/с.

Схема работы: