Skip to main content
Skip table of contents

Добaвить камеру: Camera.Add

Метод и параметры

Camera.Add добавляет камеры с указанными настройками.

string Camera.Add (uid camera, StreamsObject streams, OnvifObject onvif)

Параметры

uid camera REQUIRED = camera-uid5065687 – уникальный идентификатор камеры в рамках всей инсталляции. Обязательный для заполнения.


StreamsObject streams – задает параметры потока для камеры.

object StreamsObject

AccessObjectstreams.camera-uid5065687-primary.access – определяет параметры предоставления доступа к воспроизведению Live и DVR.


enum streams.camera-uid5065687-primary.access.allow = private – параметр определяет тип доступа.


stringstreams.camera-uid5065687-primary.access.password

 = admin – пароль для авторизации.


stringstreams.camera-uid5065687-primary.access.user=admin – имя пользователя авторизации.


arraystreams.camera-uid5065687-primary.access.whitelist = 

["192.168.100.200","192.168.100.201"]– список IP4\IP6 адресов, с которых разрешен доступ без авторизации.


uidstreams.camera-uid5065687-primary.camera = camera-uid5065687 – задает уникальный идентификатор камеры.


ClusterObjectstreams.camera-uid5065687-primary.cluster–конфигурация захвата потока в режиме отказоустойчивости.


stringstreams.camera-uid5065687-primary.cluster.primary – имя хоста первичной ноды кластера, захватывающего поток постоянно.


DvrObjectstreams.camera-uid5065687-primary.dvr – задает параметры записи и хранения архива потока.


bytesstreams.camera-uid5065687-primary.dvr.buffer = 1M – размер внутреннего буфера для кеширования операций чтения, записи. Большой объем снижает количество обращений к диску, но увеличивает потребление оперативной памяти.


secondsstreams.camera-uid5065687-primary.dvr.duration =1d – указывает длительность хранения DVR в секундах. По истечении данного времени архив будет автоматически подчищаться. Изменение параметра длительности хранения может быть как в большую, так и в меньшую сторону.

В значении возможно использовать сокращения: d – дни (пример: 30d), h – часы (пример: 120h), m – минуты (пример: 20m).


boolstreams.camera-uid5065687-primary.dvr.enable = false–разрешена или запрещена запись DVR. По умолчанию false –запрещена.


stringstreams.camera-uid5065687-primary.dvr.locationREQUIRED = file:///storage/ – если разрешена запись DVR, то данный параметр является обязательным и указывает расположение хранения архива.


bytesstreams.camera-uid5065687-primary.dvr.quota = 0G –устанавливает ограничение на объем архива. Если параметр не указан или равен 0, то объем неограничен.

В значении возможно использовать сокращения: G – гигабайт (пример: 30G), M – мегабайт (пример: 120M), K –килобайт (пример: 20K).

В текущей версии данный параметр не накладывает физическое ограничение на объем дискового пространства. Можно использовать как справочный при вызове API.


boolstreams.camera-uid5065687-primary.enable=true – разрешена или запрещена камера.


ReconnectParamsstreams.camera-uid5065687-primary.reconnect – параметры переподключения к потоку при потере или разрыве сетевого соединения.


numberstreams.camera-uid5065687-primary.reconnect.interval = 10 – минимальный таймаут в секундах между попытками подключения к потоку камеры.


numberstreams.camera-uid5065687-primary.reconnect.period1800 – максимальный интервал времени, через котрый будет осуществляться подключение к камере в случае неудачных последовательных попыток переподключения.


numberstreams.camera-uid5065687-primary.reconnect.total=500 – количество неудачных последовательных попыток подключения, после которых медиасервер перестанет делать очередную попытку переподключения и отметит поток как invalid (необслуживаемый).


urlstreams.camera-uid5065687-primary.source = rtsp://admin:admin@192.168.19.192:554/av0_0 – RTSP URL потока.


uidstreams.camera-uid5065687-primary.streamREQUIRED=camera-uid5065687-primary – уникальный идентификатор потока в рамках всей инсталляции.


arraystreams.camera-uid5065687-primary.tracks="audio","video"] – список медиаканалов, которые необходимо захватывать. Если не указан, то всегда будет захватываться video канал.

  • video – захватывать канал видео данных. Захватывается всегда, независимо от настроек. Поддерживаются кодеки H.264, H.265.

  • audio – захватывать канал звука. Если канала нет в исходном RTSP, канал не создается и не захватывается. Поддерживаются кодеки PCMU, PCMA, MPA, AAC.

  • application – захватывать канал метаданных. Поддерживается ONVIF.


OnvifObject onvif – задает ONVIF-параметры для камеры.

object OnvifObject

EventObjectonvif.events – обработчики событий.


stringonvif.events.MotionAlarm=dvr|live|capture|publish – список обработчиков события MotionAlarm.


stringonvif.events.PowerAlarm=dvr|publish – список обработчиков события PowerAlarm.


urlonvif.hostname=192.168.19.192 – адрес.



POST /api/

JSON-RPC
JSON
{
    "jsonrpc": "2.0",
    "method": "Camera.Add",
    "params": {
        "camera": "camera-uid5065687",
        "streams": {
            "camera-uid5065687-primary": {
                "access": {
                    "allow": "private",
                    "password": "admin",
                    "user": "admin",
                    "whitelist": [
                        "192.168.100.200",
                        "192.168.100.201"
                    ]
                },
                "camera": "camera-uid5065687",
                "cluster": {
                    "primary": "string"
                },
                "reconnect": {
                    "interval": 10,
                    "period": 1800,
                    "total": 500
                },
                "dvr": {
                    "enable": true,
                    "location": "file:///storage/",
                    "duration": "1d",
                    "buffer": "1M",
                    "quota": "0G"
                },
                "enable": true,
                "source": "rtsp://admin:admin@192.168.19.192:554/av0_0",
                "stream": "camera-uid5065687-primary",
                "tracks": [
                    "audio",
                    "video"
                ]
            }
        },
        "onvif": {
            "hostname": "192.168.19.192",
            "events": {
                "MotionAlarm": "dvr|live|capture|publish",
                "PowerAlarm": "dvr|publish"
            }
        }
    },
    "id": 1
}
cURL
BASH
curl -k --request POST \
	--url 'https://your-domain/api/' \
	--header 'Content-Length: 1528' \
	--header 'Content-Type: application/json' \
	--header 'Accept: application/json' \
	--header 'Authorization: Bearer <api-authorization-token>' \
	--header 'Content-Length: <Длина данных>' \
	--data '{
    "jsonrpc": "2.0",
    "method": "Camera.Add",
    "params": {
        "camera": "camera-uid5065687",
        "streams": {
            "camera-uid5065687-primary": {
                "access": {
                    "allow": "private",
                    "password": "admin",
                    "user": "admin",
                    "whitelist": [
                        "192.168.100.200",
                        "192.168.100.201"
                    ]
                },
                "camera": "camera-uid5065687",
                "cluster": {
                    "primary": "string"
                },
                "reconnect": {
                    "interval": 10,
                    "period": 1800,
                    "total": 500
                },
                "dvr": {
                    "enable": true,
                    "location": "file:///storage/",
                    "duration": "1d",
                    "buffer": "1M",
                    "quota": "0G"
                },
                "enable": true,
                "source": "rtsp://admin:admin@192.168.19.192:554/av0_0",
                "stream": "camera-uid5065687-primary",
                "tracks": [
                    "audio",
                    "video"
                ]
            }
        },
        "onvif": {
            "hostname": "192.168.19.192",
            "events": {
                "MotionAlarm": "dvr|live|capture|publish",
                "PowerAlarm": "dvr|publish"
            }
        }
    },
    "id": 1
}'
PHP
PHP
$data = array (
  'jsonrpc' => '2.0',
  'method' => 'Camera.Add',
  'params' => 
  array (
    'camera' => 'camera-uid5065687',
    'streams' => 
    array (
      'camera-uid5065687-primary' => 
      array (
        'access' => 
        array (
          'allow' => 'private',
          'password' => 'admin',
          'user' => 'admin',
          'whitelist' => 
          array (
            0 => '192.168.100.200',
            1 => '192.168.100.201',
          ),
        ),
        'camera' => 'camera-uid5065687',
        'cluster' => 
        array (
          'primary' => 'string',
        ),
        'reconnect' => 
        array (
          'interval' => 10,
          'period' => 1800,
          'total' => 500,
        ),
        'dvr' => 
        array (
          'enable' => true,
          'location' => 'file:///storage/',
          'duration' => '1d',
          'buffer' => '1M',
          'quota' => '0G',
        ),
        'enable' => true,
        'source' => 'rtsp://admin:admin@192.168.19.192:554/av0_0',
        'stream' => 'camera-uid5065687-primary',
        'tracks' => 
        array (
          0 => 'audio',
          1 => 'video',
        ),
      ),
    ),
    'onvif' => 
    array (
      'hostname' => '192.168.19.192',
      'events' => 
      array (
        'MotionAlarm' => 'dvr|live|capture|publish',
        'PowerAlarm' => 'dvr|publish',
      ),
    ),
  ),
  'id' => 1,
);
$context = stream_context_create([
	'ssl'=>['verify_peer' => false],
	'http' => [
		'method' => 'POST',
		'header' => "Content-Type: application/json\r
Accept: application/json\r
Authorization: Bearer <api-authorization-token>\r
Content-Length: <Длина данных>",
		'content'=>json_encode($data)
	]
]);
$result = file_get_contents('https://your-domain/api/', false, $context);

200 OK

UID добавленного потока

JSON
"<stream-uid>"

400 Bad Request

Ошибка json-rpc

JSON
{
    "error": {
        "code": -32601,
        "message": "Method not found"
    }
}

500 Internal Server Error

Ошибка сервера

JavaScript errors detected

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

If this problem persists, please contact our support.