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

Предыдущая страница Следующая страница

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

На странице:

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

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

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

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

Задачи по экспорту выполняет не gRPC-канал, а агент экспорта. В данный момент создать агент экспорт через 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