Документация для версии Axxon Next 4.5.0 - 4.5.10. Документация на другие версии также доступна.

Предыдущая страница Конфигурирование макрокоманд  Примеры методов gRPC API Следующая страница

На странице:

Общие сведения

Экспорт описан в proto-файлах ExportService.proto и Export.proto.

Для работы с экспортом используется 6 методов:

  1. ListSessions - используется для получения списка всех операций экспорта.
  2. StartSession - для запуска новой операции экспорта.
  3. GetSessionState - для получения статуса конкретной операции.
  4. StopSession - для остановки операции. 
  5. DestroySession - для удаления операции вместе с результатами экспорта.
  6. DownloadFile - для скачивания результатов экспорта.

Задачи по экспорту выполняет не gRPC API-канал, а агент экспорта. В данный момент создать агент экспорт через gRPC API нельзя, только вручную в Клиенте.

После того как будет создан хотя бы один агент экспорта, его можно использовать для выполнения операций. Если агентов экспорта несколько и в методе StartSession он явно не задается, то будет использоваться агент с индексом 1.

Операция экспорта запускается на узле, на котором находится камера. Если запускается экспорт по нескольким видеокамерам, то используется первый узел. При этом не требуется подключения к каждому узлу - задачи ретранслируются на них автоматически.

Результаты экспорта формируются на локальном Сервере Axxon Next и могут быть переданы путем выгрузки файлов с помощью метода DownloadFile, который поддерживает загрузку с произвольного места файла.

Метод StartSession

В методе передаются опции экспорта, которые описываются в сообщении 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;
}

где,

  • oneof подразумевает выбор одного свойства, которые могут быть заданы в данной операции.
  • export_agent_access_point - id агента экспорта.

С помощью комбинаций mode и output_type получаются 4 типа экспорта:

  1. LiveMode + SnapshotType - экспорт кадра из режима реального времени.

  2. LiveMode + StreamType - экспорт видео из режима реального времени.

  3. ArchiveMode + SnapshotType - экспорт кадра из архива.

  4. 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 операции экспорта.

Метод ListSessions

В ответе на метод будет получено сообщение SessionInfo для каждой операции экспорта. Если все операции в одном ответе не поместились, то также будет передан next_page_token для следующей страницы.

В сообщении SessionInfo содержится:

  1. id операции экспорта и его свойства.
  2. статус экспорта.

    enum EState
    {
        S_NONE      = 0;
        S_RUNNING   = 1;
        S_COMPLETED = 2;
        S_REMOVED   = 3;
    }

    где статус S_COMPLETED не гарантирует того, что экспорт завершился успешно.

  3. Если для операции экспорта есть результаты, то будет получено сообщение 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;
    }

    где,

    1.  succeeded - признак успешного завершения;

    2. сообщение File - описывает список готовых для скачивания файлов, в том числе условный путь path для применения в методе DownloadFile и размер size.

После перехода операции экспорта в статус S_COMPLETED есть 1 час для скачивания файлов с Сервера. При этом таймаут обнуляется после методов GetSessionState и DownloadFile.

Если таймаут будет превышен, то файлы будут удалены с Сервера.

Метод GetSessionState

В методе передается id операции экспорта. 

В ответ на метод будет получен его статус EState.

Если для операции экспорта есть результаты, то будет получено сообщение Result.

Метод StopSession

В методе передается id операции экспорта. 

В ответ на метод будет получен его обновленный статус EState.

Метод DownloadFile

Метод возможен только после завершения операции экспорта.

В методе передается:

  1. id операции экспорта;
  2. path - путь к файлу;
  3. chunk_size_kb - размер блока данных;
  4. start_from_chunk_index - порядковый номер блока данных.

В ответ на метод будут получены сообщения FileChunk с блоками данных файла, которые будут приходить пока весь файл не будет скачан.

Метод DestroySession

В методе передается id операции экспорта. 

  • No labels