Documentation for Axxon Next 4.5.0. Documentation for other versions of Axxon Next is available too.

Previous page Konfigurowanie makr  Przykłady metod gRPC API Next page

Na stronie:

Ogólne informacje

Eksport jest opisany w proto-plikach ExportService.proto oraz Export.proto.

Następujące z 6 metod mogą być użyte do celów eksportu:

  1. ListSessions - używana w celu pozyskania listy wszystkich operacji eksportu.
  2. StartSession - w celu rozpoczęcia nowej operacji eksportu.
  3. GetSessionState - w celu pozyskania statusu określonej operacji.
  4. StopSession - w celu zatrzymania operacji.
  5. DestroySession - w celu usunięcia operacji wraz z wynikami eksportu.
  6. DownloadFile - w celu pobrania wyników eksportu.

Zadania eksportu nie są wykonywane przez NativeBL, lecz przez szablon eksportu. Obecnie nie jest możliwe utworzenie szablonu eksportu poprzez NativeBL; należy zrobić to ręcznie w Kliencie.

Gdy co najmniej jeden szablon eksportu zostanie utworzony, może on być używany w celu przeprowadzania operacji. Jeśli istnieje kilka szablonów eksportu, a żaden z nich nie jest określony w metodzie StartSession, szablon o indeksie 1 zostanie użyty.

Operacje eksportu rozpoczynają się na węźle, na którym kamera jest zlokalizowana. Jeśli eksport zostanie rozpoczęty dla kilku kamer, tylko pierwszy węzeł jest używany. Nie oznacza to, że nie jest wymagane połączenie do każdego węzła - zadanie zostanie przekazane automatycznie.

Wyniki eksportu są generowane na lokalnym Serwerze Axxon Next; mogą one być przekazanie przez pobranie pliku za pośrednictwem metody DownloadFile, która wspiera pobieranie z określonych lokalizacji.

Metoda StartSession

Metoda przekazuje opcje eksportu, które są opisane w Options message.

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;
}

gdzie:

  • oneof - implikuje selekcję jednej właściwości, która może być wybrana w operacji.
  • export_agent_access_point - ID szablonu eksportu.

Korzystając z kombinacji mode oraz output_type, można utworzyć 4 typy eksportu:

  1. LiveMode + SnapshotType - eksportowanie stopklatki z wideo na żywo.
  2. LiveMode + StreamType - eksportowanie klipu wideo z wideo na żywo.
  3. ArchiveMode + SnapshotType - eksportowanie klatki z archiwum.
  4. ArchiveMode + StreamType - eksportowanie klipu wideo z archiwum.

Messages LiveMode, ArchiveMode, SnapshotType oraz StreamType zawierają parametry dla tego typu eksportu. Message CommonSetting jest stosowana w celu przekazywania ogólnych ustawień do operacji eksportu.

Lista głównych parametrów eksportu:

ParametrTyp eksportuOpis
Options max_file_sizeEksportowanie klipu wideoMaksymalny rozmiar pliku (zobacz: Konfigurowanie opcji eksportu).
Options export_agent_access_pointWszystkieID szablonu eksportu.
StreamType formatEksportowanie klipu wideoFormat pliku wyjściowego.
SnapshotType formatEksportowanie klatkiFormat pliku wyjściowego.
ArchiveMode/LiveMode Source originWszystkieŹródło wideo (zobacz: Pozyskaj listę kamer oraz ich parametrów za pomocą metod gRPC API (DomainService)).
ArchiveMode Source storagesEksportowanie z archiwumArchiwum (zobacz: Pozyskaj listę kamer oraz ich parametrów za pomocą metod gRPC API (DomainService)).
ArchiveMode start_timestampEksportowanie z archiwumZnacznik czasu startu eksportowanego interwału czasowego.
ArchiveMode end_timestampEksportowanie z archiwumZnacznik czasu końca eksportowanego interwału czasowego.
CommonSetting commentWszystkieKomentarz
CommonSetting timestamp_formatWszystkieFormat stopklatki.
CommonSetting text_placeWszystkieMiejsce na komentarz.
CommonSetting text_colorWszystkieKolor tekstu komentarza.
CommonSetting burn_subtitleWszystkieWyświetlanie tekstu (yes lub no).
CommonSetting apply_maskWszystkieWyświetlanie maski (yes lub no).
StreamSetting video_qualityEksportowanie klipu wideoJakość strumienia wideo.
StreamSetting video_codecEksportowanie klipu wideoKodek wideo.
StreamSetting audio_qualityEksportowanie klipu wideoJakość strumienia audio.
StreamSetting audio_codecEksportowanie klipu wideoKodek audio.
StreamSetting frame_frequencyEksportowanie klipu wideoCzęstotliwość klatek.
SnapshotSetting pdf_layoutEksportowanie klatkiUkład strony PDF.
SnapshotSetting snapshot_placeEksportowanie klatkiLokalizacja klatki w pliku PDF.
SnapshotSetting comment_placeEksportowanie klatkiLokalizacja komentarza w pliku PDF.
SnapshotSetting timestamp_placeEksportowanie klatkiLokalizacja znacznika czasu w pliku PDF.
SourceSetting crop_areaWszystkieObszar eksportu (zobacz: Konfigurowanie obszaru eksportu oraz masek).
SourceSetting mask_spaceWszystkieMaska.
SourceSetting text_placeWszystkieMiejsce na komentarz.
SourceSetting text_colorWszystkieKolor tekstu komentarza.

Dla każdego typu eksportu istnieje okres oczekiwania, po upłynięciu którego operacja jest zatrzymywana, o ile nie została wykonana metoda GetSessionState.

Okres oczekiwania jest wyliczany począwszy od chwili rozpoczęcia operacji i/lub od chwili, w której ostatnio użyta została metoda GetSessionState.

Okres oczekiwania dla eksportowania klipów wideo to 5 minut; dla wszystkich typów eksportu - 30 minut.

ID operacji eksportu będzie otrzymane jako odpowiedź do tej metody.

Metoda ListSessions

Message SessionInfo dla każdej operacji eksportu będzie otrzymywana jako odpowiedź do tej metody. Jeśli odpowiedź nie zawiera wszystkich operacji, będzie zawarty next_page_token do przejścia do następnej strony.

Message SessionInfo zawiera:

  1. ID operacji eksportu oraz jej właściwości.
  2. Status eksportu

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

    gdzie status S_COMPLETED nie oznacza, że eksport zakończył się powodzeniem.

  3. Jeśli istnieją wyniki operacji eksportu, zostanie wysłana wiadomość 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;
    }

    gdzie:

    1. succeeded - mówi, że operacja eksportu została zakończona powodzeniem;

    2. message File - określa listę plików gotowych do pobrania, wliczając w to warunkową ścieżkę do użytku w metodzie DownloadFile, oraz ich wielkość.

Po zmianie statusu operacji eksportu na S_COMPLETED, limit czasu na pobranie plików z Serwera to 1 godzina. Timeout jest resetowany do zera po wykonaniu jednej z metod: GetSessionState lub DownloadFile.

Jeśli timeout zostanie przekroczony, pliki zostaną usunięte z Serwera.

Metoda GetSessionState

ID operacji eksportu jest przekazywane przy tej metodzie.

Status EState zostanie przekazany w odpowiedzi na tę metodę.

Jeśli istnieją wyniki operacji eksportu, wiadomosć Result zostanie wysłana.

Metoda StopSession

ID operacji eksportu jest przekazywane przy tej metodzie.

Zaktualizowany status EState zostanie przekazany w odpowiedzi na tę metodę.

Metoda DownloadFile

Metoda ta może zostać użyta tylko w sytuacji, gdy operacja eksportu została już wykonana.

Następujące dane są przekazywane w tej metodzie:

  1. ID operacji eksportu;
  2. ścieżka do pliku;
  3. chunk_size_kb - wielkość bloku danych;
  4. start_from_chunk_index - numer seryjny bloku danych.

W odniesieniu do tej metody wiadomości FileChunk zostaną przesłane wraz z blokami danych plików, które będą przesyłane, aż cały plik zostanie pobrany.

Metoda DestroySession

ID operacji eksportu jest przekazywane w tej metodzie. 

  • No labels