Для изменения параметров работы сервера доступны 2 метода настройки: правки в конфигурационном файле стримера (ms.conf) или через Web-панель сервера.
Для опытных пользователей и тех, кто нуждается в более тонких и специализированных настройках, мы рекомендуем использовать конфигурационный файл для настройки сервера. Для пользователей, не имеющих профессионального опыта, доступен веб-интерфейс, который облегчает процесс настройки.
Однако, вся документация далее будет основываться на примерах настройки сервера через конфигурационный файл.
Конфигурационный файл представляет собой текстовый документ, в котором содержатся основные настройки сервера, такие как указание дисков для архивной записи, настройки портов подключения, использование SSL-сертификата, а также указание домена и другие параметры.
Преимуществом настройки через конфигурационный файл является возможность задать обширный набор параметров работы службы MainStreamer.
Однако, недостатком данного способа настройки является необходимость понимать синтаксис файла и быть внимательным при его редактировании, поскольку допущенная ошибка может привести к остановке службы MainStreamer и прекращению записи видео.
Изменения в файле и настройка производятся при подключении непосредственно к серверу, локально или же удаленно с доступом по SSH (требуется пробросить 22 порт в роутере).
Для начала редактирования
Получаем права суперпользователя командой:
sudo -i
Затем открываем файл конфигурации командой:
nano /opt/main-streamer/ms.conf
После ввода команды запускается редактор, выводится содержание файла конфигурации.
После внесения правок, подается команда «ctrl+X» с подтверждением сохранения изменений и для применения изменений выполняется рестарт службы стримера командой:
service main-streamer restart
Описание конфигурационного файла сервера (ms.conf)
ms.conf
{
"allow_recording_secondary_stream": "true", // архивирование вторичного потока, true/false
"archive_record_mode": "v1", // версия архива, v1/v2
"crt_file": "", // полный путь до стороннего файла сертификата SSL
"disable_audio_recording": "false", // отключение аудиопотока со всех камер, true/false
"disks": [ // папки (точки монтирования) для записи архива из директории /ms-storage
"sdc",
"sdd",
"sde"
],
"domain": "streamer01.domain.com", // домен для web-панели
"easy_screenshot_creation_mode": "false", // создание скриншотов в менее ресурсоёмком режиме, 1 раз в 1 мин., true/false
"http_port": "8083", // HTTP-порт web-панели, 1024—65535
"https_port": "8443", // HTTPS-порт web-панели, 1024—65535
"log_file_size": "100M", // максимальный размер каждого лог-файла, M/G
"log_level": "debug", // уровень логгирования MainStreamer'a, fatal/error/warning/info/debug
"log_storage_period": 5, // период хранения логов MainStreamer'a, кол-во дней
"maximum_load_archive_disks": "95", // максимальная загрузка архивных дисков, %, 1—100
"minThumbnails": "true", // миниатюры архива на таймлайне, true/false
"motion_detect": { // детекция движения
"smtp": { // SMTP-сервер для приёма сообщений ДД от камер
"enabled": "true", // включение/отключение SMTP-сервера, true/false
"port": "1025" // порт SMTP-сервера, 1024—65535
}
},
"motion_detection_recording_post": "40", // постзапись при записи по ДД, сек
"motion_detection_recording_prev": "25", // предзапись при записи по ДД, сек, 30 max
"pem_file": "", // полный путь до стороннего ключевого файла SSL сертификата
"rtsp_output": { // RTSP-сервер для приёма потоков с MS-Gate и MS-Agent и ретрансляции потоков камер
"enabled": "true", // включение/отключение RTSP-сервера, true/false
"port": "8554" // порт RTSP-сервера, 1024—65535
},
"rtsp_transport": "tcp", // протокол передачи RTSP, tcp/udp
"rtsp_users": [ // пользователи RTSP сервера
{
"login": "admin", // логин для авторизации на RTSP сервере
"password": "e3E3hy53OkqVK" // пароль для авторизации на RTSP сервере
}
],
"ssl": "true", // HTTPS на web-панели MainStreamer'a, true/false
"ssl_auto_update": "false", // автообновление SSL-сертификата, true/false
"users": [ // доступ к web-панели стримера
{
"login": "admin", // логин для авторизации в web-панели MainStreamer'a
"password": "dhTT6sd7B" // пароль для авторизации в web-панели MainStreamer'a
}
]
}
Здесь требуется указать список папок (дисков) для записи архива, находящихся в директории /ms-storage. Каждая папка (диск) должна быть в кавычках и отделена запятой.
В папки, указанные в параметре "disks", ведётся запись архива, будь то обычная папка в /ms-storage или диск, смонтированный в неё.
Если требуется остановить запись на диск — удалите его из ms.conf. В этом случае архив перестанет записываться на диск, но старый архив с него будет доступен. Папки, находящиеся в /ms-storage, но не прописанные в параметре "disks", будут доступны стримеру в режиме "read only".
Чтобы архив корректно записывался, архивная папка (диск) должна:
располагаться в директории /ms-storage
быть прописана в конфигурационном файле ms.conf (например, ["sdс", "sdd", "sde"])
иметь права drwxr-xr-x (755) или выше
иметь пользователя main-streamer в качестве владельца
иметь группу main-streamer в качестве владельца
Проверить права доступа для архивных папок можно командой:
ls -la /ms-storage
Пример корректных прав на архивные каталоги:
server1@sv1:~$ ls -la /ms-storage
total 24
drwxr-xr-x 6 main-streamer main-streamer 4096 Jul 14 2022 .
drwxr-xr-x 21 root root 4096 Nov 16 11:26 ..
drwxr-xr-x 4 main-streamer main-streamer 4096 Jul 18 2022 sda3
drwxr-xr-x 4 main-streamer main-streamer 4096 Jul 18 2022 sda4
drwxr-xr-x 4 main-streamer main-streamer 4096 Oct 6 07:40 sdb
drwxr-xr-x 2 main-streamer main-streamer 4096 Jan 13 09:39 system
Максимальная загрузка архивных дисков в процентах может принимать значение 1—100. По умолчанию значение равно 95%.
Если на архивных дисках становится занято более 95%, то MainStreamer 1 раз в час запускает процесс удаления фактического архива размером в 1 час, начиная с самого старого.
Параметр отвечает за детекцию движения (ДД). Позволяет проставлять метки детекции на таймлайне и вести запись архива по детекции движения.
"smtp": SMTP-сервер MainStreamer'a принимает тревожные сообщения (письма) о детекции движения от камер. Работает в паре с камерой, где настраивается детекция движения и отправка тревоги по e-mail.
"enabled": Параметр может принимать значения:
"true" — включён приём сообщений о ДД, включён SMTP-сервер, отображаются метки ДД на таймлайне.
"false" — отключён приём сообщений о ДД, отключён SMTP-сервер, не отображаются метки ДД на таймлайне.
"port": Порт SMTP-сервера, по умолчанию 1025. Также этот порт указывается в настройках камеры при настройке ДД. Может принимать значение 1024—65535. Не требуется менять без необходимости.
"true" — включён приём потоков с MS-Gate и MS-Agent, а также есть возможность ретранслировать входящие потоки со стримера.
"false" — отключён приём потоков с MS-Gate и MS-Agent, и нет возможности ретранслировать входящие потоки со стримера.
"port": Порт RTSP-сервера, по умолчанию 8554. Также значение изменяется через файл конфигурации: **/opt/main-streamer/programms/rtsp-simple-server/rtsp-simple-server.yml**, в параметре: "rtspAddress". Может принимать значение 1024—65535. Не рекомендуется менять без необходимости.
Авторизация на RTSP-сервере. Используется при ретрансляции камер, которые добавлены в MainStreamer. Нужен для формирования RTSP-ссылки.
В данный блок можно добавлять неограниченное количество пользователей RTSP-сервера.
"login" — логин для авторизации. Используется в RTSP-ссылке для ретрансляции
"password" — пароль для авторизации. Используется в RTSP-ссылке для ретрансляции
Пример RTSP-ссылки: rtsp://admin:Ct6Hh8tK@streamer.domain.com:8554/camName/0
Также можно авторизовываться на RTSP-сервере по значению пароля токена камеры. Это тот же самый токен, который используется для получения скриншотов, потоков для плеера и так далее. Время жизни такого токена 1 сутки. Логин такой же.
Пример RTSP-ссылки: rtsp://admin:1b8f9ef6af96e072c0147ae4b514f17929dc0463-1703154546@server.domain.com:8554/camName/0
Данный токен можно получить также с помощью API из cloud.dvor24.com.
Параметр отвечает за HTTPS для веб-сервера MainStreamer'a. Необходим для работы с сервисом. По умолчанию выключен. Включается автоматически, после установки встроенного SSL сертификата от Let's Encrypt командой:
main-streamer install_ssl
Если используется личный (сторонний) SSL сертификат, то необходимо включать вручную.
Параметры:
"true" — административная web-панель стримера работает по HTTPS на порту, указанному в параметре "https_port", при наличии валидного SSL сертификата.
"false" — административная web-панели стримера не работает по HTTPS
Автообновление SSL сертификата. Работает только для встроенного сертификата от Let's Encrypt. Запрашивает новый сертификат, если текущий старше 60 дней. Проверка происходит раз в сутки.
В административной панели сервера (веб-панель), можно изменять некоторые параметры файла конфигурации. Эта настройка доступна через браузер с любого устройства.
Для доступа к веб-панели сервера из локальной сети необходимо в адресной строке браузера указать IP-адрес сервера и порт (по умолчанию 8443, например, http://192.168.1.50:8083/). Чтобы получить доступ к административной панели из интернета, необходимо настроить проброс порта на маршрутизаторе (роутере). Затем можно будет обращаться к серверу через DNS-имя или статический белый IP-адрес.
Логин/пароль по умолчанию для доступа к серверу:
Логин: admin
Пароль: 123
Однако, стоит отметить, что не все настройки конфигурационного файла можно изменить через административную панель.
Описание настроек в веб-панели
Смена пароля (для текущего пользователя) - настройка пункта "users"->"password" в конфигурационном файле - Изменение пароля авторизации в web-панели стримера.
домен - настройка пункта "domain" в конфигурационном файле - домен веб-сервера. Необходим для установки SSL-сертификата.
http-порт - настройка пункта "http_port" в конфигурационном файле - HTTP-порт веб-сервера. Диапазон: 1024 — 65535. По умолчанию порт имеет значение 8083. Рекомендуется использовать стандартный порт.
https-порт - настройка пункта "https_port" в конфигурационном файле - HTTPS-порт веб-сервера. Диапазон: 1024 — 65535. По умолчанию порт имеет значение 8443. Рекомендуется использовать стандартный порт.
ssl - настройка пункта "ssl" в конфигурационном файле. Включение/отключение ssl-протокола.
автоматическое обновление сертификата - настройка пункта "ssl_auto_update" в конфигурационном файле. Вкл. / выкл. автообновления ssl-сертификата. Опция доступна только для сертификатов от Let’s Encrypt.
диски - настройка пункта "disks" в конфигурационном файле - папки (диски) для записи архива из директории /ms-storage. Записывается через пробел или через запятую.
максимальная заполненость дисков (в процентах) - настройка пункта "maximum_load_archive_disks" в конфигурационном файле - максимальная загрузка архивных дисков (в процентах).
миниатюры архива - настройка пункта "minThumbnails" в конфигурационном файле - вкл. / выкл. миниатюры архива на таймлайне, в режиме просмотра камер.
включен - настройка пункта "smtp"->"enabled" в конфигурационном файле - вкл. / выкл. SMTP-сервер для приёма сообщений детекции движении от камер. Влияет на отображение меток детекции движении на таймлайне.
порт - настройка пункта "smtp"->"port" в конфигурационном файле - порт SMTP-сервера. Диапазон: 1024—65535. По умолчанию порт имеет значение 1025. Рекомендуется использовать стандартный порт.
Вести логи запросов smtp - настройка пункта "smtp_log" в конфигурационном файле - вкл. / выкл. логгирование SMTP-сервера. Включается в случае, если при тестировании файл занимает много места в системном (корневом) разделе.
включен - настройка пункта "rtsp_output"->"enabled" в конфигурационном файле - вкл. / выкл. RTSP-сервер.
порт - настройка пункта "rtsp_output"->"port" в конфигурационном файле - порт RTSP-сервера. Диапазон: 1024—65535. По умолчанию порт имеет значение 8554. Рекомендуется использовать стандартный порт.
Отключить прием звука с источников - настройка пункта "disable_audio_recording" в конфигурационном файле - вкл. / выкл. прием аудиопотока камер.
Транспорт rtsp - настройка пункта "rtsp_transport" в конфигурационном файле - протокол передачи RTSP. Выбор параметра только tcp или udp. Использование протокола udp желательно только в том случае, если камеры не поддерживают tcp.