Skip to main content
Skip table of contents

Рассчитать пaраметры: Server.Calculate

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

Метод Server.Calculate позволяет получить приблизительную оценку размера хранения DVR и полосы пропускания видеопотока для указанных характеристик.

Все расчеты, представленные в данном разделе документации, являются ориентировочными и могут отличаться от значений реальных видеопотоков.

object Stream.Calculate(widthheightcodecfps, hoursdaysaudioqualitycomplexitymovement)

Параметры

number width REQUIRED – ширина изображения видеопотока.


number height REQUIRED – высота изображения видеопотока.


enum codec REQUIRED – название кодека, используемого для расчета значений. Допустимо одно из следующих значений: H.264, H.265, MPEG4, MJPEG, RAW.


enum quality = average – предполагаемое качество сжатия используемого кодеком. Допустимо одно из следующих значений:

  • high – высокое качество сжатия.

  • good – хорошее качество сжатия.

  • average – среднее качество сжатия. Используется, если не задано другое значение.

  • low – качество сжатия ниже среднего или низкое.


enum complexity = low – предполагаемая сложность сцены, на сколько изменяется изображение. Допустимо одно из следующих значений:

  • low – небольшое изменение сцены (менее 33% изменений сцены).

  • average – среднее (~50% изменений).

  • above-average – изменение сцены выше среднего (до 75% изменений).

  • high – сцена изменяется интенсивно (85% и выше).


enum movement = low – предполагаемая динамичность сцены, наличие движущихся объектов. Допустимо одно из следующих значений:

  • very-low – незначительное движение или движение отсутствует (до 15%).

  • low – незначительное движение (до 30%).

  • average – есть движение (до 50%).

  • above-average – значительное движение в видео потоке (до 60%).

  • constant – присутствует постоянное движение.


number fps = 15 – количество кадров секунду.


number hours = 24 – количество часов в день записи DVR.


number days = 7, количество дней записи и хранения DVR.


bool audio = false – наличие в видео потоке аудиодорожки.

POST /api/

JSON-RPC
JSON
{
    "jsonrpc": "2.0",
    "method": "Stream.Calculate",
    "params": {
        "width": 0,
        "height": 0,
        "codec": "enum",
        "fps": 15,
        "hours": 24,
        "days": 7,
        "audio": true,
        "quality": "average",
        "complexity": "low",
        "movement": "low"
    },
    "id": 1
}
cURL
BASH
curl -k --request POST \
	--url 'https://your-domain/api/' \
	--header 'Content-Length: 327' \
	--header 'Content-Type: application/json' \
	--header 'Accept: application/json' \
	--header 'Authorization: Bearer <api-authorization-token>' \
	--header 'Content-Length: <Длина данных>' \
	--data '{
    "jsonrpc": "2.0",
    "method": "Stream.Calculate",
    "params": {
        "width": 0,
        "height": 0,
        "codec": "enum",
        "fps": 15,
        "hours": 24,
        "days": 7,
        "audio": true,
        "quality": "average",
        "complexity": "low",
        "movement": "low"
    },
    "id": 1
}'
PHP
PHP
$data = array (
  'jsonrpc' => '2.0',
  'method' => 'Stream.Calculate',
  'params' => 
  array (
    'width' => 0,
    'height' => 0,
    'codec' => 'enum',
    'fps' => 15,
    'hours' => 24,
    'days' => 7,
    'audio' => true,
    'quality' => 'average',
    'complexity' => 'low',
    'movement' => 'low',
  ),
  '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

Объект с характеристиками и рассчитанные значения:

  • bandwidth – значение полосы пропускания в бит/сек,

  • storage – объем хранения в байтах.

JSON
{
    "audio": false,
    "bandwidth": 2678668,
    "codec": "H.264",
    "complexity": "average",
    "days": 30,
    "fps": 20,
    "hours": 24,
    "movement": "average",
    "quality": "low",
    "resolution": "1920x1080",
    "storage": 867888542388
}

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.