Изменить п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.location
REQUIRED =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.stream
REQUIRED =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 |
Ошибка сервера |