Skip to main content
Skip table of contents

Кoнфигурация Mediaserver

Способы конфигурирования

  • Файл конфигурации

  • http, https источник конфигурации

Конфигурация RTSP

dsn rtsp.listenREQUIRED = "*: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.


JSON
{
    "rtsp": {
        "listen": "*:554:/",
        "ip": 4,
        "workers": 2,
        "poll": 256
    }
}

Подробное описание в разделе документации «Модуль RTSP».

Конфигурация ONVIF

dsn onvif.listenREQUIRED = "*: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.ssltrue

Использовать ли SSL (HTTPS) для входящих соединений. Если false – SSL не используется.


JSON
{
    "onvif": {
        "listen": "*:554:/",
        "ip": 4,
        "workers": 2,
        "poll": 256,
        "ssl": true
    }
}

Подробное описание в разделе документации «Модуль ONVIF».

Конфигурация PROXY

dsn proxy.listenREQUIRED = "*: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 не используется.


JSON
{
    "proxy": {
        "listen": "*:554:/",
        "ip": 4,
        "workers": 2,
        "poll": 256,
        "ssl": true
    }
}

Подробное описание в разделе документации «Модуль Proxy».

Конфигурация Media

dsnmedia.listenREQUIRED = "*: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 не используется.


JSON
{
    "media": {
        "listen": "*:80:/",
        "ip": 4,
        "workers": 2,
        "poll": 64,
        "ssl": true
    }
}

Подробное описание в разделе документации «Модуль Media».

Конфигурация API

Генерация токена возможна только на локальном уровне.

Детально о генерации токена в разделе документации «Создание токена доступа».

dsn api.listenREQUIRED = "*: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 не используется.


JSON
{
    "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"]

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

Типы событий
  • service:up – конфигурация сервиса принята, все службы запустились корректно.

  • service:down – сервис получил сигнал на остановку и пытается корректно завершить работу. Следует отметить, данное событие может не всегда поступать.

  • service:pulse – сервис функционирует, событие отправляется с периодичностью 60 секунд.

  • service:emergency – произошло критическое событие, связанное с отказом работы одной из служб или средой выполнения.

  • stream:create – Mediaserver создал поток. Событие наступает при добавлении потока.

  • stream:pulse – поток успешно захватывается, событие отправляется с периодичностью отправки комманды PING на камеру.

  • stream:reconnect – Mediaserver пытается переподключиться к потоку.

  • stream:state – событие наступает при обновлении статуса потока.

  • stream:delete – событие наступает при удалении потока.

  • stream:dvr – событие о новых диапазонах DVR потока. События наступает при появлении нового range.

  • stream:dvr:delete – событие об удаленных диапазонах DVR потока. События наступает при удалении старого range.

  • server:capture – событие о захвате потоков серверов.

  • server:release – событие об окончании захвата вторичных потоков.

  • camera:create – событие о создании новой сущности камеры.

  • camera:delete – событие об удалении сущности камеры.

  • camera:event – событие, сгенерированное камерой. Например, событие поступило через ONVIF или его разместили через Server.PostEvent.

  • onvif:create – событие о создании сущности ONVIF на камере.

  • onvif:delete – событие об удалении ONVIF на камере.

Более подробно механизм webhook описан в разделе документации «Конфигурация Webhook и событий оповещения».

JSON
{
    "cluster": {
        "webhook": "http://localhost:8080/event/",
        "events": [
            "service:up",
            "service:down"
        ]
    }
}

Конфигурация SSL

string ssl.key "string"– путь к файлу ключа SSL.


string ssl.cert = "string" – путь к файлу сертификата SSL.


JSON
{
    "ssl": {
        "key": "string",
        "cert": "string"
    }
}

Дополнительные параметры конфигурации

url streams = "./cameras.json" – путь к расположению файла с конфигурациями захватываемых потоков. Данный параметр переопределяет -s параметр командной строки запуска сервиса.

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

number log.verbose = 4 – уровень логирования состояния сервера. Определены уровни логирования от 0 до 7. 7 –выводит детальную информацию, но может расходовать больше места при логировании и замедлить производительность.


string log.out = "stdout|syslog.user" – определяет, куда выводить логи. Принимает значения: stdout, syslog.<facility>, file и их сочетание с разделителем |, где <facility> -- auth|authpriv|cron|daemon|ftp|kern|lpr|mail|news|security|syslog|user|uucp|local[0-7].


url licenseREQUIRED = "url"– расположение файла лицензии. Может быть указан как локальный файл так и URL.

string secretREQUIRED = "string" – секретное значение, используемое для генерации токенов авторизации просмотра и доступа к API. Токены, сгенерированные с одинаковым secret, будут приняты на всех серверах.

JSON
{
    "streams": "./cameras.json",
    "log": {
        "verbose": 4,
        "out": "stdout|syslog.user"
    },
    "license": "url",
    "secret": "string"
}

Конфигурация виртуального устройства хранения

Медиасервер поддерживает виртуальные устройства хранения DVR.

Для конфигурирования виртуального устройства должна быть определена секция storage. После этого вы сможете указать ее в пути записи и хранения DVR. Если секция не указана, то путь, заданный в конфигурации потока, будет восприниматься как директория записи. Если секция не определена, то будет определено виртуальное устройство хранения с типом драйвера local.

enum storage.driverREQUIRED = "local"

Драйвер виртуального устройства:

  • dvrfs – тип устройства хранения.

  • local – использование директорий для хранения и записи архива.


object storage.volume = {}

Используется, если указан драйвер dvrfs

object storage.volume

string storage.volume.name = "string" –виртуальная точка монтирования файловой системы (не создаются ни устройства, ни каталог). Название может быть произвольным (без пробелов, спец. символов (a-z, A-Z, 0-9,-_.). Имя должно быть указано в качестве параметра dvr.location. Детально в разделе «Добавить поток для завхата или публикации».


string storage.volume.option = "string"–дополнительные опции dvrfs.

disable-root-write – указывает на то, что при записи DVR не может быть использована корневая файловая система. В случае отмонтирования физического устройства, данная опция позволит избежать исчерпания места в корневой файловой системе.


object storage.volume.bucket = {} – Объект, содержащий в качестве ключа точку монтирования физического устройства, в качестве значения – параметры точки монтирования.


mixedstorage.volume.bucket.mountpoint –указывает точку монтирования.


bytesstorage.volume.bucket.mountpoint.capacity "bytes" – определяет максимальное используемое место для хранения. Используется в специальной редакции, role - определяет назначение данного диска.


enumstorage.volume.bucket.mountpoint.role = "data" – тип, определяющий вариант использования диска. По умолчанию назначается как data и будет использоваться для хранения DVR. recovery – используется для хранения информации восстановления архива в случае выхода из строя физических носителей.


JSON
{
    "storage": {
        "driver": "local",
        "volume": {
            "name": "string",
            "option": "string",
            "bucket": {
                "mountpoint": {
                    "capacity": "bytes",
                    "role": "data"
                }
            }
        }
    }
}

Каждая точка монтирования проверяется на наличие. Если точка монтирования (директория) не существует, то она создаваться не будет – это исключает случайную запись в корневую файловую систему.

Для каждой точки монтирования определяется возможность записи (статус файловой системы rw, ro), а также достаточность прав на запись, чтение. Если отсутствует возможность записи, то mountpoint помечается как “только для чтения”, но не исключается из bucket.

После настройки для указания устройства хранения DVR каждого потока можно использовать устройство вида /bucket0.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.