Доб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.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.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.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-параметры для камеры.
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 |
Ошибка сервера |