일반 정보
내보내기는 proto 파일인 ExportService.proto와 Export.proto에 설명되어 있습니다.
내보내기에는 다음의 6가지 메소드가 사용됩니다.
- ListSessions − 모든 내보내기 작업의 목록을 가져오는 데 사용됩니다.
- StartSession − 새 내보내기 작업을 시작하는 데 사용됩니다.
- GetSessionState − 특정 작업의 상태를 가져오는 데 사용됩니다.
- StopSession − 작업을 중지하는 데 사용됩니다.
- DestroySession − 작업과 내보내기 결과를 삭제하는 데 사용됩니다.
- DownloadFile − 내보내기 결과를 다운로드하는 데 사용됩니다.
내보내기 작업은 gRPC 채널이 아닌 내보내기 에이전트에 의해 수행됩니다. 현재 gRPC API를 통해 내보내기 에이전트를 생성하는 것은 불가능하며, 클라이언트에서 수동으로만 생성할 수 있습니다.
적어도 하나의 내보내기 에이전트가 생성되면 이를 사용하여 작업을 수행할 수 있습니다. 여러 개의 내보내기 에이전트가 있고 StartSession 메소드에서 특정 에이전트를 명시하지 않으면, 인덱스 1인 에이전트가 사용됩니다.
내보내기 작업은 카메라가 위치한 노드에서 시작됩니다. 여러 카메라에 대해 내보내기가 시작되면 첫 번째 노드가 사용됩니다. 각 노드에 연결할 필요는 없으며 작업은 자동으로 해당 노드로 전달됩니다.
내보내기 결과는 로컬 Axxon One 서버에서 생성되며 DownloadFile 메소드를 사용하여 파일을 다운로드함으로써 결과를 전달할 수 있습니다. 이 메소드는 파일의 임의 위치에서 다운로드를 지원합니다.
StartSession 메서드
이 메소드는 옵션 메시지에 설명된 내보내기 옵션을 전달합니다.
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가지 내보내기 유형을 생성할 수 있습니다.
- 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는 이 메서드에 대한 응답으로 받게 됩니다.
ListSessions 메서드
각 내보내기 작업에 대한 SessionInfo 메시지가 이 메서드의 응답으로 제공됩니다. 하나의 응답으로 모든 작업을 처리할 수 없는 경우, 다음 페이지를 위한 next_page_token도 함께 제공됩니다.
SessionInfo 메시지에는 다음 내용이 포함됩니다.
- 내보내기 작업의 ID와 해당 속성들
내보내기 상태
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 − 내보내기가 성공했음을 나타냅니다.
- message File − 다운로드할 준비가 된 파일 목록을 설명하며 DownloadFile에 사용할 경로와 파일 크기가 포함됩니다.
내보내기 작업 상태가 S_COMPLETED로 변경되면, 서버에서 파일을 다운로드할 수 있는 시간은 1시간입니다. GetSessionState와 DownloadFile 메서드가 실행되면 타임아웃은 다시 초기화됩니다.
타임아웃이 초과되면 파일은 서버에서 삭제됩니다.
GetSessionState 메서드
내보내기 작업의 ID가 이 메서드에 전달됩니다.
응답으로 해당 EState 상태가 반환됩니다.
내보내기 작업 결과가 있는 경우, 결과 메시지가 반환됩니다.
StopSession 메서드
내보내기 작업의 ID가 이 메서드에 전달됩니다.
응답으로 해당 EState 상태가 업데이트된 상태로 반환됩니다.
DownloadFile 메서드
이 메서드는 내보내기 작업이 완료된 후에만 사용할 수 있습니다.
이 메서드에 전달되는 데이터는 다음과 같습니다.
- 내보내기 작업 id
- 파일 경로
- chunk_size_kb − 데이터 블록 크기
- start_from_chunk_index − 데이터 블록의 일련 번호
이 메서드에 응답으로, 전체 파일이 다운로드될 때까지 파일 데이터 블록을 포함한 FileChunk 메시지가 전송됩니다.
DestroySession 메서드
내보내기 작업의 ID가 이 메서드에 전달됩니다.