Skip to main content
Skip table of contents

Изменить пoток камеры: Stream.Update

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

Метод Stream.Update изменяет настройки потока для указанных камер.

string Stream.Update (uid camera, StreamsObject streams)

Параметры

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


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

object StreamsObject

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/

JSON-RPC
JSON
{
    "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
BASH
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
}'
PHP
PHP
$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 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.