⌂ > ⎘ Открытый REST API

/video : Получение необработанного видео🔗

GET /video : Получение необработанного видео🔗

Доступно во всех типах лицензий.

Важно

Во всех примерах указан локальный хост (localhost). При отправке реальных запросов замените его на адрес и порт сервера, на который отправляете запрос.

Одним из способов получения потока видео от сервера Macroscop является запрос к ресурсу video, возвращающий в ответ полученные сервером от камеры данные без перекодирования.

Примечание

Данный запрос предназначен в первую очередь для использования в сторонних приложениях, выполняющих роль клиента. Для просмотра полученных данных может потребоваться использование дополнительных декодирующих библиотек.

Дополнительные параметры запроса🔗

Параметр

Значение по умолчанию

Описание

channel

—

Имя канала. Может быть получено в интерфейсе приложений и при выполнении запроса Получение конфигурации системы. Обязательный параметр, если не используется channelid или channelnum

channelid

—

Уникальный идентификатор канала. Может быть получен при выполнении запроса Получение конфигурации системы. Обязательный параметр, если не используется channel или channelnum

channelnum

—

Номер канала в действующей конфигурации. Выясняется путём ручного пересчёта каналов в ответе на запрос Получение конфигурации системы. Обязательный параметр, если не используется channel или channelid

sound

off

Флаг получения видео- и аудиоданных канала в рамках одного соединения. Возможные значения: on – включить получение звука, off – выключить. При sound=on сервер возвращает звуковые кадры в формате G.711U, чередуя их в потоке данных с видеокадрами. Опциональный параметр

streamtype

Main

Параметр, указывающий поток для получения кадров. Допустимые значения: Main — поток Основной; Alternative — поток Дополнительный 1; SecondAlternative — поток Дополнительный 2; ThirdAlternative — поток Дополнительный 3. Доступность указанных значений зависит от настроек канала

mode

realtime

Параметр, определяющий режим потока для передачи кадров. Допустимые значения: realtime (поток реального времени), archive (архив). При применении параметра mode=archive необходимо также задать параметр starttime. Опциональный параметр

starttime

—

Параметр, указывающий время в архиве, для которого необходимо передать кадры. Данный параметр состоит из комбинации даты и UTC-времени в формате DD.MM.YYYY hh:mm:ss или DD.MM.YYYY hh:mm:ss.fff. Обязательный параметр при mode=archive

speed

1

Параметр, определяющий скорость воспроизведения потока. Допустимые значения: от 0.1 до 20. Опциональный параметр, применяется только при mode=archive

Примечание

Параметры channel, channelnum и channelid являются взаимозаменяемыми, в связи с чем запрос должен содержать только один из них.

  • Параметр channel передаёт в качестве значения имя канала в том виде, как оно представлено в действующей конфигурации. В случае существования в конфигурации нескольких каналов с одинаковым именем или при изменении имени канала в конфигурации могут возникнуть коллизии и ошибки из-за некорректного значения параметра, соответственно.

  • Параметр channelnum передаёт в качестве значения порядковый номер канала в списке всех каналов действующей конфигурации. Использование данного параметра может вызвать трудности при работе с крупными системами. Помимо этого, порядковый номер канала может измениться при перемещении и удалении каналов из действующей конфигурации.

  • Параметр channelid передаёт в качестве значения уникальный идентификатор канала (GUID), генерирующийся при создании канала и остающийся неизменным на протяжении всего времени существования канала в конфигурации.

Во избежание возможных проблем с выполнением запросов рекомендуется использовать для указания канала параметр channelid.

Примечание

Все примеры запросов ниже составлены с использованием параметра channelid.

Примеры запросов🔗

Пример запроса без дополнительных параметров:

GET http://localhost:8080/video?login=root&password=&channelid=706c4691-3d90-41e3-8789-76eb9810648f

В ответ на запрос сервер возвращает «бесконечный» HTTP-ответ, в котором содержатся видеокадры, разделённые заголовками.

Пример ответа на запрос:

HTTP/1.1 200 OK
…
Content-Type: multipart/x-mixed-replace; boundary=myboundary

-- myboundary
Content-Type: image/jpeg
Content-Length: 63125

<тело JPEG кадра>

При указании параметра sound=on видеокадры в «бесконечном» ответе чередуются с аудиокадрами.

Пример запроса с параметром sound=on:

GET http://localhost:8080/video?login=root&password=&channelid=706c4691-3d90-41e3-8789-76eb9810648f&sound=on

Пример ответа на запрос с аудиокадром:

HTTP/1.1 200 OK
…
Content-Type: multipart/x-mixed-replace; boundary=myboundary

-- myboundary
Content-Type: audio, PCMU
Content-Length: 1000

<тело G711U кадра>

Для получения кадров из архива необходимо дополнить запрос соответствующими параметрами.

Примечание

Разделение даты и времени осуществляется кодом («%20»).

Пример запроса кадров из архива:

GET http://localhost:8080/video?login=root&password=&channelid=706c4691-3d90-41e3-8789-76eb9810648f&mode=archive&startTime=01.01.2023%2000:00:01&speed=3

В «бесконечном» ответе сервер начнёт передачу кадров из архива на скорости x3, начиная с кадра архива, снятого 01 января 2023 года в 00:00:01 по часовому поясу UTC. Структура ответа при этом полностью идентична ответам с кадрами реального времени.

Параметры ответа на запрос🔗

Независимо от применённых параметров запроса, ответ от сервера всегда будет содержать следующие параметры:

Параметр

Описание

Content-Type

Заголовок MIME типа передаваемого кадра. В зависимости от заданного формата видео может принимать следующие значения: image/jpeg — видеокадр, формат MJPEG; video, mpeg4, I-frame — опорный кадр, формат MPEG4; video, mpeg4, P-frame — разностный (промежуточный) кадр, формат MPEG4; video, h264, I-frame — опорный кадр, формат H264; video, h264, P-frame — разностный (промежуточный) кадр, формат H264; audio, PCMU — аудиокадр, формат G.711U

Content-Length

Заголовок размера передаваемого кадра. Значение указывается в байтах.

Примечание

При передаче опорных кадров форматов видео MPEG-4 и H.264, помимо информации о самом кадре также передаётся инициализирующая информация для декодера соответствующего формата.