/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, помимо информации о самом кадре также передаётся инициализирующая информация для декодера соответствующего формата.