Добaвить камеру: Camera.Add
Метод и параметры
Camera.Add
добавляет камеры с указанными настройками.
string Camera.Add
(uid camera
, StreamsObject streams
, OnvifObject onvif
)
Параметры
uid camera
REQUIRED = camera-uid5065687
– уникальный идентификатор камеры в рамках всей инсталляции. Обязательный для заполнения.
StreamsObject streams
– задает параметры потока для камеры.
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.location
REQUIRED = 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.period
= 1800
– максимальный интервал времени, через котрый будет осуществляться подключение к камере в случае неудачных последовательных попыток переподключения.
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.stream
REQUIRED=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-параметры для камеры.
EventObjectonvif.events
– обработчики событий.
stringonvif.events.MotionAlarm
=dvr|live|capture|publish
– список обработчиков события MotionAlarm
.
stringonvif.events.PowerAlarm
=dvr|publish
– список обработчиков события PowerAlarm
.
urlonvif.hostname
=192.168.19.192
– адрес.
POST /api/ |
{
"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 -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
}'
$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 |
UID добавленного потока
JSON
|
400 |
Ошибка json-rpc
JSON
|
500 |
Ошибка сервера |