Перейти к основному контенту

Сервис видеозаписи

Данная модель описывает REST-API интерфейс сервиса видеозаписи

Ресурсы (входящие потоки)

Получение списка ресурсов

Строка запроса GET: /api/v1/source

Параметры запроса:

Параметры отсутствуют

Варианты ответа:

Успешно

[
  {
    "id": "Идентификатор ресурса",
    "created_utc": "Дата-время создания ресурса",
    "status": "Состояние доступности ресурса",
    "uri_rtsp": "Адрес RTSP потока",
    "uri_http_picture": {
      "uri": "Адрес получения изображения",
      "auth": "basic или digest",
      "user": "Пользователь",
      "password": "Пароль"
    },
    "description": "Описание ресурса",
    "ffmpeg_cmd": "Шаблон команды транскодирования потока"
  }
]

Создание ресурса

POST: /api/v1/source

Параметры запроса:
Параметр Значение Описание
model Текстовый Модель ресурса Source или PictureSource
description Текстовый Описание ресурса
uri_rtsp Строка URI Адрес RTSP потока
uri_http_picture Структура Описание скриншота камеры
 uri Строка URI Адрес получения изображения
 auth Перечисление basic или digest
 user Текстовый Пользователь
 password Текстовый Пароль
ffmpeg_cmd Текстовый Шаблон команды транскодирования потока
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

{
  "id": "Идентификатор ресурса",
  "created_utc": "Дата-время создания ресурса",
  "status": "Состояние доступности ресурса",
  "uri_rtsp": "Адрес RTSP потока",
  "uri_http_picture": {
    "uri": "Адрес получения изображения",
    "auth": "*basic* или *digest*",
    "user": "Пользователь",
    "password": "Пароль"
  },
  "description": "Описание ресурса",
  "ffmpeg_cmd": "Шаблон команды транскодирования потока"
}

Получение ресурса

GET: /api/v1/source/{source_id}/

Параметры запроса:
Параметр Значение Описание
source_id Числовой Идентификатор ресурса (часть запроса)
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

{
  "id": "Идентификатор ресурса",
  "created_utc": "Дата-время создания ресурса",
  "status": "Состояние доступности ресурса",
  "uri_rtsp": "Адрес RTSP потока",
  "uri_http_picture": {
    "uri": "Адрес получения изображения",
    "auth": "*basic* или *digest*",
    "user": "Пользователь",
    "password": "Пароль"
  },
  "description": "Описание ресурса",
  "ffmpeg_cmd": "Шаблон команды транскодирования потока"
}

Изменение ресурса

PUT: /api/v1/source/{source_id}/

Параметры запроса:
Параметр Значение Описание
source_id Числовой Идентификатор ресурса (часть запроса)
model Текстовый Модель ресурса
description Текстовый Описание ресурса
uri_rtsp Текствый Адрес RTSP потока
uri_http_picture: Структура URI  
 uri Тесктовый Адрес получения изображения
 auth Текстовый basic или digest
 user Текстовый Пользователь
 password Текстовый Пароль
ffmpeg_cmd Текстовый Шаблон команды транскодирования потока
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

{
  "id": "Идентификатор ресурса",
  "created_utc": "Дата-время создания ресурса",
  "status": "Состояние доступности ресурса",
  "uri_rtsp": "Адрес RTSP потока",
  "uri_http_picture": {
    "uri": "Адрес получения изображения",
    "auth": "*basic* или *digest*",
    "user": "Пользователь",
    "password": "Пароль"
  },
  "description": "Описание ресурса",
  "ffmpeg_cmd": "Шаблон команды транскодирования потока"
}

Удаление ресурса

DELETE: /api/v1/source/{source_id}/

Параметры запроса:
Параметр Значение Описание
source_id Числовой Идентификатор ресурса (часть запроса)
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

{
  "id": "Идентификатор ресурса",
  "created_utc": "Дата-время создания ресурса",
  "status": "Состояние доступности ресурса",
  "uri_rtsp": "Адрес RTSP потока",
  "uri_http_picture": {
    "uri": "Адрес получения изображения",
    "auth": "*basic* или *digest*",
    "user": "Пользователь",
    "password": "Пароль"
  },
  "description": "Описание ресурса",
  "ffmpeg_cmd": "Шаблон команды транскодирования потока"
}

Получение скриншота потока

Строка запроса GET: /api/v1/source/{source_id}/picture

Параметры запроса:
Параметр Значение Описание
source_id Числовой Идентификатор ресурса (часть запроса)
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно Данные изображения

Получение скриншота потока

Строка запроса GET: /api/v1/source/{source_id}/video

Параметры запроса:
Параметр Значение Описание
source_id Числовой Идентификатор ресурса (часть запроса)
delay Числовой Задержка между кадрами в секундах, по умолчанию 1 секунда
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно Данные видеопотока mJPEG

Управление записью

Получение состояния записи ресурсов по метке

Строка запроса GET: /api/v1/record

Параметры запроса:
Параметр Значение Описание
tag_name Текстовый Идентификатор метки ресурсов
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

[
  {
    "id": "Идентификатор записи",
    "created_utc": "Дата-время создания записи",
    "status": "Состояние записи",
    "begin_utc": "Дата-время начала записи",
    "end_utc": "Дата-время окончания записи",
    "source": [
      {
        "id": "Идентификатор ресурса",
        "created_utc": "Дата-время создания ресурса",
        "status": "Состояние доступности ресурса",
        "uri_rtsp": "Адрес RTSP потока",
        "uri_http_picture": {
          "uri": "Адрес получения изображения",
          "auth": "*basic* или *digest*",
          "user": "Пользователь",
          "password": "Пароль"
        },
        "description": "Описание ресурса",
        "ffmpeg_cmd": "Шаблон команды транскодирования потока"
      }
    ],
    "hash_md5": "Контрольная сумма записи MD5",
    "location": "Путь хранения записи",
    "sync_location": "Пусть для синхронизации видеозаписи с другим видеосервером"
  }
]

Остановка записи группы ресурсов по идентификатору метки

PUT: /api/v1/record

Параметры запроса:
Параметр Значение Описание
model Текстовый Модель метки записи ресурса для изменений Source или PictureSource
tag_name Текстовый Идентификатор метки ресурсов
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно Нет данных

Запуск записи группы ресурсов с меткой

POST: /api/v1/record

Параметры запроса:
Параметр Значение Описание
model Текстовый Модель метки записи ресурса для изменений Source или PictureSource
tag_name Текстовый Идентификатор метки ресурсов
group_name Текстовый Идентификатор группы ресурсов
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно Нет данных

Получение состояния записи ресурсов с меткой

Строка запроса GET: /api/v1/record/runing

Параметры запроса:
Параметр Значение Описание
tag_name Текстовый Идентификатор метки ресурсов
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно Значение true или false

Получение записи ресурса

Строка запроса GET: /api/v1/record/{record_id}/

Параметры запроса:
Параметр Значение Описание
record_id Текстовый Идентификатор записи ресурса (часть запроса)
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

{
  "id": "Идентификатор записи",
  "created_utc": "Дата-время создания записи",
  "status": "Состояние записи",
  "begin_utc": "Дата-время начала записи",
  "end_utc": "Дата-время окончания записи",
  "source": {
    "id": "Идентификатор ресурса",
    "created_utc": "Дата-время создания ресурса",
    "status": "Состояние доступности ресурса",
    "uri_rtsp": "Адрес RTSP потока",
    "uri_http_picture": {
      "uri": "Адрес получения изображения",
      "auth": "*basic* или *digest*",
      "user": "Пользователь",
      "password": "Пароль"
    },
    "description": "Описание ресурса",
    "ffmpeg_cmd": "Шаблон команды транскодирования потока"
  },
  "hash_md5": "Контрольная сумма записи MD5",
  "location": "Путь хранения записи",
  "sync_location": "Пусть для синхронизации видеозаписи с другим видеосервером"
}

Получение части файла записи

Строка запроса GET: /api/v1/record/{record_id}/video/

Параметры запроса:
Параметр Значение Описание
record_id Текстовый Идентификатор записи ресурса (часть запроса)
range Численный-Численный Диапазон байт для загрузки, параметр заголовка запроса
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно Двоичные данные

Удаление файла видеозаписи

DELETE: /api/v1/record/{record_id}/file/

Параметры запроса:
Параметр Значение Описание
record_id Текстовый Идентификатор записи ресурса (часть запроса)
location Текстовый Путь к файлу видеозаписи
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

{
  "id": "Идентификатор записи",
  "created_utc": "Дата-время создания записи",
  "status": "Состояние записи",
  "begin_utc": "Дата-время начала записи",
  "end_utc": "Дата-время окончания записи",
  "source": {
    "id": "Идентификатор ресурса",
    "created_utc": "Дата-время создания ресурса",
    "status": "Состояние доступности ресурса",
    "uri_rtsp": "Адрес RTSP потока",
    "uri_http_picture": {
      "uri": "Адрес получения изображения",
      "auth": "*basic* или *digest*",
      "user": "Пользователь",
      "password": "Пароль"
    },
    "description": "Описание ресурса",
    "ffmpeg_cmd": "Шаблон команды транскодирования потока"
  },
  "hash_md5": "Контрольная сумма записи MD5",
  "location": "Путь хранения записи",
  "sync_location": "Пусть для синхронизации видеозаписи с другим видеосервером"
}

Управление группами камер

Получние списка групп камер

Строка запроса GET: /api/v1/group

Параметры запроса:

Параметры отсутствуют

Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

[
  {
    "id": "Идентификатор группы",
    "created_utc": "Дата-время создания группы",
    "name": "Имя группы"
  }
]

Создание группы ресурсов

POST: /api/v1/group

Параметры запроса:
Параметр Значение Описание
model Текстовый Модель метки записи ресурса для изменений Source или PictureSource
name Текстовый Наименование группы
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

[
  {
    "id": "Идентификатор группы",
    "created_utc": "Дата-время создания группы",
    "name": "Имя группы"
  }
]

Получение сведений о группе ресурсов

Строка запроса GET: /api/v1/group/{group_id}/

Параметры запроса:
Параметр Значение Описание
group_id Текстовый Идентификатор группы ресурсов (часть запроса)
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

{
  "id": "Идентификатор группы ресурсов",
  "сreated_utc": "Дата-время создания группы",
  "name": "Наименование группы",
  "sources": [
    {
      "id": "Идентификатор ресурса",
      "created_utc": "Дата-время создания ресурса",
      "uri_rtsp": "Адрес RTSP потока",
      "uri_http_picture": {
        "uri": "Адрес получения изображения",
        "auth": "*basic* или *digest*",
        "user": "Пользователь",
        "password": "Пароль"
      },
      "description": "Описание ресурса",
      "ffmpeg_cmd": "Шаблон команды транскодирования потока"
    }
  ]
}

Удаление группы ресурсов

DELETE: /api/v1/group/{group_id}/

Параметры запроса:
Параметр Значение Описание
group_id Текстовый Идентификатор группы ресурсов (часть запроса)
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

{
  "id": "Идентификатор группы ресурсов",
  "сreated_utc": "Дата-время создания группы",
  "name": "Наименование группы"
}

Добавление ресурса в группу ресурсов

POST: /api/v1/group/{group_id}/source/{source_id}/

Параметры запроса:
Параметр Значение Описание
group_id Текстовый Идентификатор группы ресурсов (часть запроса)
source_id Текстовый Идентификатор ресурса (часть запроса)
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно Значение true или false

Удаление ресурса из группы ресурсов

DELETE: /api/v1/group/{group_id}/source/{source_id}/

Параметры запроса:
Параметр Значение Описание
group_id Текстовый Идентификатор группы ресурсов (часть запроса)
source_id Текстовый Идентификатор ресурса (часть запроса)
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно Значение true или false//*

Управление метками записей

Получение метки записи ресурсов

Строка запроса GET: /api/v1/tag

Параметры запроса:
Параметр Значение Описание
name Текстовый Наименование метки
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно

{
  "id": "Идентификатор тега",
  "created_utc": "Дата-время создания тега",
  "name": "Имя тега",
  "records": [
    {
      "id": "Идентификатор записи",
      "created_utc": "Дата-время создания записи",
      "status": "Состояние записи",
      "begin_utc": "Дата-время начала записи",
      "end_utc": "Дата-время окончания записи",
      "source": {
        "id": "Идентификатор ресурса",
        "created_utc": "Дата-время создания ресурса",
        "uri_rtsp": "Адрес RTSP потока",
        "uri_http_picture": {
          "uri": "Адрес получения изображения",
          "auth": "*basic* или *digest*",
          "user": "Пользователь",
          "password": "Пароль"
        },
        "description": "Описание ресурса",
        "ffmpeg_cmd": "Шаблон команды транскодирования потока"
      },
      "hash_md5": "Контрольная сумма записи MD5",
      "location": "Путь хранения записи",
      "sync_location": "Пусть для синхронизации видеозаписи с другим видеосервером"
    }
  ]
}

Получить начатые метки

Строка запроса GET: /api/v1/tag/begin

Параметры запроса:

Параметры отсутствуют

Варианты ответа:

Успешно

["Наименование метки"]

Синхронизация данных

Начать синхронизацию видео

POST: /api/v1/sync

Параметры запроса:
Параметр Значение Описание
tag_name Текстовый Наименование метки
location Текстовый Расположение файла
Варианты ответа:

Ошибка 422

{
  "detail": [
    {
      "loc": ["Положение ошибки"],
      "msg": "Сообщение ошибки",
      "type": "Тип ошибки"
    }
  ]
}

Успешно Строковые данные

Различные проверки

Проверка изображения

Строка запроса GET: /test/img

Параметры запроса:

Не имеет параметров

Варианты ответа:

Успешно Не имеет ответа

Проверка видео

Строка запроса GET: /test/video

Параметры запроса:

Не имеет параметров

Варианты ответа:

Успешно Не имеет ответа