67 lines
3.6 KiB
Markdown
67 lines
3.6 KiB
Markdown
|
# Moonfire NVR Glossary
|
|||
|
|
|||
|
*media duration:* the total duration of the actual samples in a recording. These
|
|||
|
durations are based on the camera's clock. Camera clocks can be quite
|
|||
|
inaccurate, so this may not match the *wall duration*. See [time.md](time.md)
|
|||
|
for details.
|
|||
|
|
|||
|
*open id:* a sequence number representing a time the database was opened in
|
|||
|
write mode. One reason for using open ids is to disambiguate unflushed
|
|||
|
recordings. Recordings' ids are assigned immediately, without any kind of
|
|||
|
database transaction or reservation. Thus if a recording is never flushed
|
|||
|
successfully, a following *open* may assign the same id to a new recording.
|
|||
|
The open id disambiguates this and should be used whenever referring to a
|
|||
|
recording that may be unflushed.
|
|||
|
|
|||
|
*recording:* the video from a (typically 1-minute) portion of an RTSP session.
|
|||
|
RTSP sessions are divided into recordings as a detail of the
|
|||
|
storage schema. See [schema.md](schema.md) for details. This concept is exposed
|
|||
|
to the frontend code through the API; see [api.md](api.md). It's not exposed in
|
|||
|
the user interface; videos are reconstructed from segments automatically.
|
|||
|
|
|||
|
*run:* all the recordings from a single RTSP session. These are all from the
|
|||
|
same *stream* and could be reassembled into a single video with no gaps. If the
|
|||
|
camera is lost and re-established, one run ends and another starts.
|
|||
|
|
|||
|
*sample:* data associated with a single timestamp within a recording, e.g. a video
|
|||
|
frame or a set of
|
|||
|
|
|||
|
*sample file:* a file on disk that holds all the samples from a single recording.
|
|||
|
|
|||
|
*sample file directory:* a directory in the local filesystem that holds all
|
|||
|
sample files for one or more streams. Typically there is one directory per disk.
|
|||
|
|
|||
|
*segment:* part or all of a recording. An API request might ask for a video of
|
|||
|
recordings 1–4 starting 80 seconds in. If each recording is exactly 60 seconds,
|
|||
|
this would correspond to three segments: recording 2 from 20 seconds in to
|
|||
|
the end, all of recording 3, and all of recording 4. See [api.md](api.md).
|
|||
|
|
|||
|
*session:* a set of authenticated Moonfire NVR requests defined by the use of a
|
|||
|
given credential (`s` cookie). Each user may have many credentials and thus
|
|||
|
many sessions. Note that in Moonfire NVR's the term "session" by itself has
|
|||
|
nothing to do with RTSP sessions; those more closely match a *run*.
|
|||
|
|
|||
|
*signal:* a timeseries with an enum value. Signals might represent a camera's
|
|||
|
motion detection or day/night status. They could also represent an external
|
|||
|
input such as a burglar alarm system's zone status. See [api.md](api.md).
|
|||
|
Note signals are still under development and not yet exposed in Moonfire NVR's
|
|||
|
UI. See [#28](https://github.com/scottlamb/moonfire-nvr/issues/28) for more
|
|||
|
information.
|
|||
|
|
|||
|
*stream:* the "main" or "sub" stream from a given camera. Moonfire NVR expects
|
|||
|
cameras support configuring and simultaneously viewing two streams encoded from
|
|||
|
the same underlying video and audio source. The difference between the two is
|
|||
|
that the "main" stream's video is typically higher quality in terms of frame
|
|||
|
rate, resolution, and bitrate. Likewise it may have higher quality audio.
|
|||
|
A stream corresponds to an ONVIF "media profile". Each stream has a distinct
|
|||
|
RTSP URL that yields a difference RTSP "presentation".
|
|||
|
|
|||
|
*track:* one of the video, audio, or subtitles associated with a single
|
|||
|
*stream*. This is consistent with the definition in ISO/IEC 14496-12 section
|
|||
|
3.1.19. Note that RTSP RFC 2326 uses the word "stream" in the same way
|
|||
|
Moonfire NVR uses the word "track".
|
|||
|
|
|||
|
*wall duration:* the total duration of a recording for the purpose of matching
|
|||
|
with the NVR's wall clock time. This may not match the same recording's media
|
|||
|
duration. See [time.md](time.md) for details.
|