Platform

Platform is a physical entity, like a plane, helicopter, drone, vehicle, etc that carries various sensors.

Mission

Mission is a logical entity that comprises all the relevant flight (for aircraft platform) information collected from the platform's sensors plus other general descriptive metadata.

Sensor

Sensor is a logical entity that produces one independent video (or another content type) stream.
For example, for an aircraft platform, it can be EO/IR camera, tail camera, radar, operator's screen or audio capture, etc.

Clip

Clip represents continuous recording. There may be time intervals (when no information is recorded) between the clips during session recording.

Recording hierarchy.

Missions are recorded in HLS format.

HlsVideoSensor will store video segments according to the following convention:

├── MissionName/   
│   ├── SensorName/
│   │         ├── MissionMasterManifest.m3u8 
│   │         ├── MissionVideoManifest.m3u8 
│   │         ├── MissionManifest-0-CC.m3u8  
│   │         ├── Clip1  
│   │         │      ├── ClipMasterManifest.m3u8 
│   │         │      ├── ClipVideoManifest.m3u8
│   │         │      ├── Manifest-0-CC.m3u8   
│   │         │      ├── Clip1-1-0.ts 
│   │         │      ├── Clip1-1-0.vtt 
│   │         │      ├── Clip1-1-1.ts 
│   │         │      ├── Clip1-1.vtt 
│   │         │      ├── ....
│   │         │          
│   │         ├── Clip2
│   |         │      ├── ClipMasterManifest.m3u8 
│   │         │      ├── ClipVideoManifest.m3u8
│   │         │      ├── ClipManifest-0-CC.m3u8   
│   │         │      ├── Clip2-2-0.ts 
│   │         │      ├── Clip2-2-0.vtt 
│   │         │      ├── ....

MissionManifest is a higher-level manifest that points to the video / vtt segments inside the clips. It is created and updated dynamically (to accommodate non-continuous clips in one continuous playlist). Recorder will split the recorded video into segments.

Gop aligned recording.

The recorder provides segmented recording functionality. In order to achieve seamless switching between random (non-consecutive) segments, the cutting point should be at GOP (Group Of Pictures) boundaries, as shown below:

Segments