Изменить пoток камеры: Stream.Update
Метод и параметры
Метод Stream.Update изменяет настройки потока для указанных камер.
string Stream.Update (uid camera, StreamsObject streams)
Параметры
uid camera REQUIRED = camera-uid5065687 – уникальный идентификатор камеры в рамках всей инсталляции.
StreamsObject streams, задает параметры потока для камеры.
AccessObject streams.camera-uid5065687-primary.access – определяет параметры предоставления доступа к воспроизведению Live и DVR.
enum streams.camera-uid5065687-primary.access.allow = private –параметр определяет тип доступа.
string streams.camera-uid5065687-primary.access.password = admin – пароль для авторизации.
string streams.camera-uid5065687-primary.access.user = admin – имя пользователя авторизации.
array streams.camera-uid5065687-primary.access.whitelist = [] – список IP4\IP6 адресов, с которых разрешен доступ без авторизации.
uid streams.camera-uid5065687-primary.camera = camera-uid5065687 – задает уникальный идентификатор камеры.
ClusterObject streams.camera-uid5065687-primary.cluster – конфигурация захвата потока в режиме отказоустойчивости.
string streams.camera-uid5065687-primary.cluster.primary – имя хоста первичной ноды кластера, захватывающего поток постоянно.
DvrObject streams.camera-uid5065687-primary.dvr – задает параметры записи и хранения архива потока.
bytesstreams.camera-uid5065687-primary.dvr.buffer = 1M – размер внутреннего буфера для кеширования операций чтения, записи. Большой объем снижает количество обращений к диску, но увеличивает потребление оперативной памяти.
seconds streams.camera-uid5065687-primary.dvr.duration = 1d – указывает длительность хранения DVR в секундах. По истечении данного времени, архив будет автоматически подчищаться. Изменение параметра длительности хранения может быть как в большую, так и в меньшую сторону.
В значении возможно использовать сокращения: d – дни (пример: 30d), h – часы (пример: 120h), m – минуты (пример: 20m).
bool streams.camera-uid5065687-primary.dvr.enable = false – разрешена или запрещена запись DVR. По умолчанию false – запрещена.
string streams.camera-uid5065687-primary.dvr.locationREQUIRED =file:///storage/ – если разрешена запись DVR, то данный параметр является обязательным и указывает расположение хранения архива.
bytes streams.camera-uid5065687-primary.dvr.quota = 0G – устанавливает ограничение на объем архива. Если параметр не указан или равен 0, то объем неограничен.
В значении возможно использовать сокращения: G – гигабайт (пример: 30G), M – мегабайт (пример: 120M), K – килобайт (пример: 20K).
В текущей версии данный параметр не накладывает физическое ограничение на объем дискового пространства. Можно использовать как справочный при вызове API.
bool streams.camera-uid5065687-primary.enable = true – разрешена или запрещена камера.
ReconnectParamsstreams.camera-uid5065687-primary.reconnect –параметры переподключения к потоку при потере или разрыве сетевого соединения.
numberstreams.camera-uid5065687-primary.reconnect.interval = 10 – минимальный таймаут в секундах между попытками подключения к потоку камеры.
number streams.camera-uid5065687-primary.reconnect.period = 1800 – максимальный интервал времени, через который будет осуществляться подключение к камере в случае неудачных последовательных попыток переподключения.
numberstreams.camera-uid5065687-primary.reconnect.total = 500 – количество неудачных последовательных попыток подключения, после которых медиасервер перестанет совершать очередную попытку переподключения и отметит поток как invalid –необслуживаемый.
url streams.camera-uid5065687-primary.source = rtsp://admin:admin@192.168.19.192:554/av0_0 – RTSP URL потока.
uid streams.camera-uid5065687-primary.streamREQUIRED =camera-uid5065687-primary – уникальный идентификатор потока в рамках всей инсталляции.
array streams.camera-uid5065687-primary.tracks = ["audio","video"]– список медиаканалов, которые необходимо захватывать. Если не указан, то всегда будет захватываться video канал.
video-– захватывать канал видео данных. Захватывается всегда, независимо от настроек. Поддерживаются кодеки H.264, H.265.audio– захватывать канал звука. Если канала нет в исходном RTSP, канал не создается и не захватывается. Поддерживаются кодеки PCMU, PCMA, MPA, AAC.application– захватывать канал метаданных. Поддерживается ONVIF.
POST /api/ |
{
"jsonrpc": "2.0",
"method": "Stream.Update",
"params": {
"camera": "camera-uid5065687",
"streams": {
"camera-uid5065687-primary": {
"access": {
"allow": "private",
"password": "admin",
"user": "admin",
"whitelist": []
},
"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"
]
}
}
},
"id": 1
}
curl -k --request POST \
--url 'https://your-domain/api/' \
--header 'Content-Length: 1212' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <api-authorization-token>' \
--header 'Content-Length: <Длина данных>' \
--data '{
"jsonrpc": "2.0",
"method": "Stream.Update",
"params": {
"camera": "camera-uid5065687",
"streams": {
"camera-uid5065687-primary": {
"access": {
"allow": "private",
"password": "admin",
"user": "admin",
"whitelist": []
},
"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"
]
}
}
},
"id": 1
}'
$data = array (
'jsonrpc' => '2.0',
'method' => 'Stream.Update',
'params' =>
array (
'camera' => 'camera-uid5065687',
'streams' =>
array (
'camera-uid5065687-primary' =>
array (
'access' =>
array (
'allow' => 'private',
'password' => 'admin',
'user' => 'admin',
'whitelist' =>
array (
),
),
'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',
),
),
),
),
'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 |
Ошибка сервера |