Запуск экспорта
Экспорт инициируется с помощью одного из следующих POST запросов:
http://IP-адрес:порт/префикс/export/archive/SERVER1/VIDEOSOURCEID/BEGINTIME/ENDTIME - экспорт из архива
http://IP-адрес:порт/префикс/export/live/SERVER1/VIDEOSOURCEID/BEGINTIME/ENDTIME - экспорт живого потока
где BEGINTIME и ENDTIME задают время в формате YYYYMMDDTHHMMSS. Если BEGINTIME больше ENDTIME, то значения поменяются местами. Для экспорта кадра BEGINTIME должно быть равно ENDTIME.
Для описания рамок и масок используются сложные структуры данных, которые можно разделить на следующие типы:
- point - задается с помощью следующего синтаксиса x,y: пример - [0.5, 0.5].
- area - задает квадратную рамку, определяется двумя points с разделителем !. Пример - [[0.5, 0.5], [0.4,0.4]].
- polygon - задает замкнутую кривую, содержит как минимум 3 точки заключенные в []. Пример - [[0.5, 0.5], [0.4,0.4],[0.3,0.3]].
- mask - коллекция polygons. Пример - [[[0.5, 0.5],[0.6, 0.6],[0.7, 0.7]], [[0.1, 0.1],[0.2, 0.2],[0.3, 0.3]]].
Поддерживаемые параметры передаваемые в теле начального POST запроса:
- format (строка) - обязательный параметр, доступные значения mkv, avi, exe, jpg, pdf. Задает формат выходного контейнера экспорта.
- maxfilesize (число) - максимальный размер файла экспорта в байтах. При достижении этого размера будет создаваться новый файл. Результатом экспорта будет коллекция файлов. Значение по умолчанию - 0 (на выходе единственный файл).
- vc, ac (число) - уровень качества сжатия для видео и аудио соответственно. Допустимые значения от 0 до 6 (6 - наихудшее). Тонкий нюанс - при указании 0 в значении параметра будет оставлен исходный уровень качества (скорее всего недоработка исходного API). Значение по умолчанию - 0.
- freq (число) - частота кадров выходного потока. Значение по умолчанию - 0. Допустимые значения:
- 0 - оригинальная
- 1 - половина оригинальной
- 2 - четверть
- 3 - осьмушка
tsformat (строка) - шаблон формата временной метки. Можно генерировать любую строку на основании http://www.boost.org/doc/libs/1_55_0/doc/html/date_time/date_time_io.html. Значение по умолчанию: %Y-%b-%d %H:%M:%S. Сервер не проверяет формат введенной строки. |
- croparea (area) - область кадра для экспорта (Значение по умолчанию 0,0!0,0 - весь кадр).
- maskspace (mask) - область маскировки кадра. По умолчанию кадр не маскируется.
- color (строка) - цвет текста для комментария и временной метки. Задается в Web-формате - #FFFFFF.
- comment (строка) - комментарий
Параметры, имеющие смысл только для формата PDF. - snapshotplace (area) - положение кадра на странице
- commentplace (area) - положение комментария на странице
- tsplace (area) - положение временной метки на странице
- layout (число) - ориентация страницы. Допустимые значения - 0 (портретная), 1 (альбомная).
|
Результатом запроса будет либо возврат ошибки, либо ответ следующего вида:
HTTP/1.1 202 Accepted
Connection: Close
Location: /export/3dc15b75-6463-4eb1-ab2d-0eb0a8f54bd3
Cache-Control: no-cache |
Возможные коды ошибок: - 400 - неправильно сформированный запрос.
- 500 - внутренняя ошибка Сервера.
|
Запрос статуса экспорта
GET http://IP-адрес:порт/префикс/export/id/status
где id - значение из поля Location (в данном случае 3dc15b75-6463-4eb1-ab2d-0eb0a8f54bd3)
Пример ответа:
{
"id": "73c2e1d2-0f8f-414c-9cc0-ac5fb43cd8dd"
,"state": 1
,"progress": 0.51062298
,"error": ""
,"files":
[
]
} |
где
- state определяет текущее состояние экспорта. Возможные значения:
1 - экспорт выполняется
2 - экспорт завершен
3 - ошибка экспорта
4 - недостаточно места для выполнения операции - progress - прогресс сессии экспорта в диапазоне от 0 до 1.
- error - описание ошибки, если таковая присутствует
- files - список файлов, созданных в результате экспорта
Завершение экспорта
DELETE http://IP-адрес:порт/префикс/export/id
где id - значение из поля Location.
Скачивание файла
GET http://IP-адрес:порт/префикс/export/id/file?name=SERVER_DeviceIpint.1[20160527T132900-20160527T133000].mkv
где
- id - значение из поля Location
- file?name - имя файла из поля files