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

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

Данная модель описывает 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

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

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

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

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