Перейти в хранилище документации
Обратиться в техническую поддержку
Экспорт описан в proto-файлах ExportService.proto и Export.proto.
Для работы с экспортом используется 6 методов:
Задачи по экспорту выполняет не gRPC-канал, а агент экспорта. В данный момент создать агент экспорт через gRPC API нельзя, только вручную в Клиенте.
После того как будет создан хотя бы один агент экспорта, его можно использовать для выполнения операций. Если агентов экспорта несколько и в методе StartSession он явно не задается, то будет использоваться агент с индексом 1.
Операция экспорта запускается на узле, на котором находится камера. Если запускается экспорт по нескольким видеокамерам, то используется первый узел. При этом не требуется подключения к каждому узлу – задачи ретранслируются на них автоматически.
Результаты экспорта формируются на локальном Сервере Интеллект X и могут быть переданы путем выгрузки файлов с помощью метода DownloadFile, который поддерживает загрузку с произвольного места файла.
В методе передаются опции экспорта, которые описываются в сообщении Options.
message Options { oneof mode { LiveMode live = 1; ArchiveMode archive = 2; } oneof output_type { SnapshotType snapshot = 3; StreamType stream = 4; } repeated CommonSetting settings = 5; // Maximum size of output file. // New file will be created on reaching this value. uint64 max_file_size = 6; string export_agent_access_point = 100; }
где,
С помощью комбинаций mode и output_type получаются 4 типа экспорта:
LiveMode + SnapshotType – экспорт кадра из режима реального времени.
LiveMode + StreamType – экспорт видео из режима реального времени.
ArchiveMode + SnapshotType – экспорт кадра из архива.
ArchiveMode + StreamType – экспорт видео из архива.
В сообщениях LiveMode, ArchiveMode, SnapshotType и StreamType передаются параметры данного типа экспорта. Сообщение CommonSetting используется для передачи общих настроек операции экспорта.
Список основных параметров экспорта:
Параметр | Режим экспорта | Описание |
---|---|---|
Options max_file_size | Экспорт видео | Максимальный размер файла (см. Настройка параметров экспорта). |
Options export_agent_access_point | Все | Id агента экспорта. |
StreamType format | Экспорт видео | Формат выходного файла. |
SnapshotType format | Экспорт кадра | Формат выходного файла. |
ArchiveMode/LiveMode Source origin | Все | Источник видео (см. Получение списка видеокамер и их параметров через gRPC API (DomainService)). |
ArchiveMode Source storages | Экспорт из архива | Архив (см. Получение информации об архивах через gRPC API (DomainService)). |
ArchiveMode start_timestamp | Экспорт из архива | Временная метка начала интервала экспорта. |
ArchiveMode end_timestamp | Экспорт из архива | Временная метка конца интервала экспорта. |
CommonSetting comment | Все | Комментарий. |
CommonSetting timestamp_format | Все | Формат временной метки. |
CommonSetting text_place | Все | Область для комментария. |
CommonSetting text_color | Все | Цвет текста комментария. |
CommonSetting burn_subtitle | Все | Наложение текста (да или нет). |
CommonSetting apply_mask | Все | Наложение маски (да или нет). |
StreamSetting video_quality | Экспорт видео | Качество видеопотока. |
StreamSetting video_codec | Экспорт видео | Видеокодек. |
StreamSetting audio_quality | Экспорт видео | Качество аудиопотока. |
StreamSetting audio_codec | Экспорт видео | Аудиокодек. |
StreamSetting frame_frequency | Экспорт видео | Частота кадров. |
SnapshotSetting pdf_layout | Экспорт кадра | Ориентация PDF файла. |
SnapshotSetting snapshot_place | Экспорт кадра | Расположение кадра в PDF файле. |
SnapshotSetting comment_place | Экспорт кадра | Расположение комментария в PDF файле. |
SnapshotSetting timestamp_place | Экспорт кадра | Расположение времени кадра в PDF файле. |
SourceSetting crop_area | Все | Область экспорта (см. Задание области экспорта и масок). |
SourceSetting mask_space | Все | Маска. |
SourceSetting text_place | Все | Область для комментария. |
SourceSetting text_color | Все | Цвет текста комментария. |
Для каждого типа экспорта существуют таймауты, по истечение которого операция прерывается, если к ней не обращался метод GetSessionState.
Таймаут отсчитывается с момента запуска операции экспорта и/или с момента последнего выполнения метода GetSessionState.
Для экспорта видео из режима реального времени таймаут 5 минут, для всех остальных типов экспорта – 30 минут.
В ответ на метод будет получен id операции экспорта.
В ответе на метод будет получено сообщение SessionInfo для каждой операции экспорта. Если все операции в одном ответе не поместились, то также будет передан next_page_token для следующей страницы.
В сообщении SessionInfo содержится:
Статус экспорта.
enum EState { S_NONE = 0; S_RUNNING = 1; S_COMPLETED = 2; S_REMOVED = 3; }
где статус S_COMPLETED не гарантирует того, что экспорт завершился успешно.
Если для операции экспорта есть результаты, то будет получено сообщение Result.
message Result { message File { string path = 1; uint64 size = 2; string min_timestamp = 3; string max_timestamp = 4; string mime_type = 5; } repeated File files = 1; bool succeeded = 2; }
где,
succeeded – признак успешного завершения;
После перехода операции экспорта в статус S_COMPLETED есть 1 час для скачивания файлов с Сервера. При этом таймаут обнуляется после методов GetSessionState и DownloadFile.
Если таймаут будет превышен, то файлы будут удалены с Сервера.
В методе передается id операции экспорта.
В ответ на метод будет получен его статус EState.
Если для операции экспорта есть результаты, то будет получено сообщение Result.
В методе передается id операции экспорта.
В ответ на метод будет получен его обновленный статус EState.
Метод возможен только после завершения операции экспорта.
В методе передается:
В ответ на метод будут получены сообщения FileChunk с блоками данных файла, которые будут приходить пока весь файл не будет скачан.
В методе передается id операции экспорта.