Способы конфигурирования
-
Файл конфигурации
-
http, https источник конфигурации
Конфигурация RTSP
dsn rtsp.listen required = "*:554:/"
Сетевые настройки входящих подключений клиентов в формате <hostname>:<port>:<base-url>, где:
-
hostname– локальное сетевое имя, на IP адресе которого будет открыто прослушивание подключений. Если указана*, то будут прослушиваться все подключения на всех сетевых адресах. При этом будет использоваться текущее имя хоста изhostname. -
port– номер порта, который будет открыт для прослушивания соединений. В некоторых операционных системах для неrootпользователя необходимо разрешать использование порта ниже 1024. -
base-url– базовый адрес пути.
number rtsp.ip = 4
Тип IP-протокола для входящих соединений:
-
4– для IP4 -
6– для IP6 -
46– для dual стэка IP4\IP6
number rtsp.workers = 2
Количество системных потоков, обслуживающих захват потоков камер. Это значение должно регулироваться в зависимости от количества захватываемых потоков.
number rtsp.poll = 256
Значение, определяющее максимальное количество обрабатываемых сетевых событий. Необходимо увеличивать значение в зависимости от количества обслуживаемых потоков. Значение указывается для каждого системного потока rtsp.workers.
{
"rtsp": {
"listen": "*:554:/",
"ip": 4,
"workers": 2,
"poll": 256
}
}
Подробное описание в разделе документации «Модуль RTSP».
Конфигурация ONVIF
dsn onvif.listen required = "*:554:/"
Сетевые настройки входящих подключений RTSP клиентов в формате <hostname>:<port>:<base-url>, где:
-
hostname– локальное сетевое имя, на IP адресе которого будет открыто прослушивание подключений. Если указан*, то будут прослушиваться все подключения на всех сетевых адресах. При этом будет использоваться текущее имя хоста изhostname. -
port– номер порта, который будет открыт для прослушивания соединений. В некоторых операционных системах для неrootпользователя необходимо разрешать использование порта ниже 1024. -
base-url– базовый адрес пути.
number onvif.ip = 4
Тип IP-протокола для входящих соединений:
-
4– для IP4 -
6– для IP6 -
46– для dual стэка IP4\IP6
number onvif.workers = 2
Количество системных потоков, обслуживающих захват потоков камер. Это значение необходимо регулировать в зависимости от количества захватываемых потоков.
number onvif.poll = 256
Значение, определяющее максимальное количество обрабатываемых сетевых событий. Необходимо увеличивать значение в зависимости от количества обслуживаемых потоков. Значение указывается для каждого системного потока onvif.workers.
bool onvif.ssl = true
Использовать ли SSL (HTTPS) для входящих соединений. Если false – SSL не используется.
{
"onvif": {
"listen": "*:554:/",
"ip": 4,
"workers": 2,
"poll": 256,
"ssl": true
}
}
Подробное описание в разделе документации «Модуль ONVIF».
Конфигурация PROXY
dsn proxy.listen required = "*:554:/"
Сетевые настройки входящих подключений RTSP клиентов в формате <hostname>:<port>:<base-url>, где:
-
hostname– локальное сетевое имя, на IP адресе которого будет открыто прослушивание подключений. Если указана*, то будут прослушиваться все подключения на всех сетевых адресах. При этом будет использоваться текущее имя хоста изhostname. -
port– номер порта, который будет открыт для прослушивания соединений. В некоторых операционных системах для неrootпользователя необходимо разрешать использование порта ниже 1024. -
base-url– базовый адрес пути.
number proxy.ip = 4
Тип IP протокола для входящих соединений:
-
4– для IP4 -
6– для IP6 -
46– для dual стэка IP4\IP6
number proxy.workers = 2
Количество системных потоков, обслуживающих захват потоков камер. Это значение необходимо регулировать в зависимости от количества захватываемых потоков.
number proxy.poll = 256
Значение, определяющее максимальное количество обрабатываемых сетевых событий. Необходимо увеличить значение в зависимости от количества обслуживаемых потоков. Значение указывается для каждого системного потока proxy.workers.
bool proxy.ssl = true
Использовать SSL (HTTPS) для входящих соединений или нет. Если false – SSL не используется.
{
"proxy": {
"listen": "*:554:/",
"ip": 4,
"workers": 2,
"poll": 256,
"ssl": true
}
}
Подробное описание в разделе документации «Модуль Proxy».
Конфигурация Media
dsn media.listen required = "*:80:/"
Сетевые настройки входящих подключений HTTP\HTTPS для воспроизведения камер в различных медиаформатах.
<hostname>:<port>:<base-url>, где:
-
hostname– локальное сетевое имя, на IP адресе которого будет открыто прослушивание подключений. Если указана*, то будут прослушиваться все подключения на всех сетевых адресах. При этом будет использоваться текущее имя хоста изhostname. -
port– номер порта, который будет открыт для прослушивания соединений. В некоторых операционных системах для неrootпользователя необходимо разрешать использование порта ниже 1024. -
base-url– базовый адрес пути.
number media.ip = 4
Тип IP-протокола для входящих соединений:
-
4– для IP4 -
6– для IP6 -
46– для dual стэка IP4\IP6
number media.workers = 2
Количество системных потоков, обслуживающих входящие подключения клиентов. Регулируется на основе планируемой нагрузки и количества клиентов.
number media.poll = 64
Значение, определяющее максимальное количество обрабатываемых сетевых событий.
bool media.ssl = true
Использовать SSL (HTTPS) для входящих соединений или нет. Если false – SSL не используется.
{
"media": {
"listen": "*:80:/",
"ip": 4,
"workers": 2,
"poll": 64,
"ssl": true
}
}
Подробное описание в разделе документации «Модуль Media».
Конфигурация API
Генерация токена возможна только на локальном уровне.
Детально о генерации токена в разделе документации «Создание токена доступа».
dsn api.listen required = "*:8554:/"
Сетевые настройки входящих подключений HTTP\HTTPS для вызова методов API.
<hostname>:<port>:<base-url>, где:
-
hostname– локальное сетевое имя, на IP-адресе которого будет открыто прослушивание подключений. Если указана*, то будут прослушиваться все подключения на всех сетевых адресах. При этом будет использоваться текущее имя хоста изhostname. -
port– номер порта, который будет открыт для прослушивания соединений. В некоторых операционных системах для неrootпользователя необходимо разрешать использование порта ниже 1024. -
base-url– базовый адрес пути
number api.ip = 4
Тип IP-протокола для входящих соединений:
-
4– для IP4 -
6– для IP6 -
46– для dual стэка IP4\IP6
number api.workers = 2
Количество системных потоков, обслуживающих API-запросы.
number api.poll = 64
Значение, определяющее максимальное количество обрабатываемых сетевых событий.
bool api.ssl = true
Использовать SSL (HTTPS) для входящих соединений или нет. Если false – SSL не используется.
{
"api": {
"listen": "*:8554:/",
"ip": 4,
"workers": 2,
"poll": 64,
"ssl": true
}
}
Подробное описание работы с API в разделе документации «API для Mediaserver».
Конфигурация Cluster
dsn cluster.webhook = "http://localhost:8080/event/"
URL сервера, куда будут отправлятся события. Если не указан или неверен, то функциональность webhook будет недоступна.
array cluster.events = ["service:up","service:down"]
Массив идентификаторов событий, которые могут быть отправлены. Если не указан или пуст, то отправляются все события.
Определены следующие типы событий:
Более подробно механизм webhook описан в разделе документации «Конфигурация Webhook и событий оповещения».
{
"cluster": {
"webhook": "http://localhost:8080/event/",
"events": [
"service:up",
"service:down"
]
}
}
Конфигурация SSL
string ssl.key = "string" – путь к файлу ключа SSL.
string ssl.cert = "string" – путь к файлу сертификата SSL.
{
"ssl": {
"key": "string",
"cert": "string"
}
}
Конфигурирование логирования
Медиасервер поддерживает различные варианты логирования: stdout, syslog, логирование в файл, удаленное логирование.
Для конфигурирования логирования должна быть определена секция log. Если секция не указана, то применяеются настройки по умолчанию – логирование в stdout с дефолтным паттерном.
Для форматирования поддерживаются следующие флаги:
-
%Timestamp– время сообщения -
%AppId– идентификатор компонента, -
%Tag– идентификатор экземпляра компонента, -
%Verbose– уровень логирования, -
%Message– непосредственно само сообщение, -
%EscMessage– экранированное сообщение с escape-символами, используется для json паттернов.
object log.stdout = {}– конфигурация логирования в stdout (на экран)
object log.file = {}– конфигурация логирования в файл
object log.remote = {}– конфигурация удаленного логирования
object log.syslog = {}– конфигурация логирования в syslog (системный журнал)
{
"log": {
"stdout": {
"verbose": 3,
"tag": "media-server",
"pattern": "[%Timestamp] %Message"
},
"file": {
"verbose": 3,
"tag": "media-server",
"pattern": "[%Timestamp] %Message",
"path": "/tmp/test.log",
"rotate": 8192,
"number": 3
},
"remote": {
"tag": "media-server",
"verbose": 3,
"pattern": "{\"tag\":\"%Tag\",\"verbose\":\"%Verbose\",\"timestamp\":\"%Timestamp\",\"app_id\":\"%AppId\",\"message\":\"%EscMessage\"}",
"path": "udp://localhost:8109"
},
"syslog": {
"verbose": 3,
"tag": "media-server",
"pattern": "[%Timestamp] %Message",
"facility": "local0"
}
}
}
Дополнительные параметры конфигурации
url streams = "./cameras.json"
Путь к расположению файла с конфигурациями захватываемых потоков. Данный параметр переопределяет -s параметр командной строки запуска сервиса.
В качестве источника могут быть указаны как путь к локальному файлу, так и URL ссылка, которая должна вернуть список потоков и их конфигураций.
url license required = "url"
Расположение файла лицензии. Может быть указан как локальный файл, так и URL.
string secret required = "string"
Секретное значение, используемое для генерации токенов авторизации просмотра и доступа к API. Токены, сгенерированные с одинаковым secret, будут приняты на всех серверах.
{
"streams": "./cameras.json",
"license": "url",
"secret": "string"
}
Конфигурация виртуального устройства хранения
Медиасервер поддерживает виртуальные устройства хранения DVR.
Для конфигурирования виртуального устройства должна быть определена секция storage. После этого вы сможете указать ее в пути записи и хранения DVR. Если секция не указана, то путь, заданный в конфигурации потока, будет восприниматься как директория записи. Если секция не определена, то будет определено виртуальное устройство хранения с типом драйвера local.
enum storage.driver required = "local"
Драйвер виртуального устройства:
-
dvrfs– тип устройства хранения. -
local– использование директорий для хранения и записи архива.
object storage.volume = {}
Используется, если указан драйвер dvrfs
{
"storage": {
"driver": "local",
"volume": {
"name": "string",
"option": "string",
"bucket": {
"mountpoint": {
"capacity": "bytes",
"role": "data"
}
}
}
}
}
Каждая точка монтирования проверяется на наличие. Если точка монтирования (директория) не существует, то она создаваться не будет – это исключает случайную запись в корневую файловую систему.
Для каждой точки монтирования определяется возможность записи (статус файловой системы rw, ro), а также достаточность прав на запись, чтение. Если отсутствует возможность записи, то mountpoint помечается как “только для чтения”, но не исключается из bucket.
После настройки для указания устройства хранения DVR каждого потока можно использовать устройство вида /bucket0.