Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Recording video

Press Record, start with --record, or set record = true for a rig in its manifest. Recording shows the camera image as it arrived: without overlays, and before background subtraction or inversion, so a recording can always be re-tracked with different settings later.

What a recording contains

Each session gets its own folder under recording.directory (relative to the config; recordings/ by default), named from the label, the start time and the process:

recordings/rig-a-1791769898523379000-63855/
  video-0000.avi, video-0001.avi …   split at segment_mb (1 GiB) to stay within AVI limits
  frames.jsonl                       arrival time and camera sequence number of every frame
  config.toml                        the settings used
  background.png                     the saved background, if any

frames.jsonl has one line per recorded frame, so every frame can be matched to the measurements published while it was tracked (sequence and timestamp_ns in the measurement format).

Formats

formatSize at 640×480, 60 fpsBit-exactPlays in
"mjpeg" (default)≈ 1.5–3 MB/s (≈ 5–10 GB per hour)No; quality 90 is visually lossless for trackingRekkefly, VLC, FFmpeg
"png"≈ 8–10 MB/sYesRekkefly, FFmpeg
"raw"18.4 MB/s (66 GB per hour)YesRekkefly, VLC, FFmpeg

Set quality (1–100) for MJPEG. On the Bogong moth, quality 75 tracked the same as lossless frames. To shrink older raw recordings, use rekkefly clip.

Never a silently dropped frame

The camera thread only hands each frame to the recorder; encoding runs on its own threads, in parallel when frames queue up. Up to queue_frames frames (32 by default) can wait for the disk. If the disk cannot keep up and the queue fills, recording stops with a visible error and tracking continues. A recording never has frames silently missing.

Headless runs report what was written:

rekkefly --config rig.toml --headless --record --frames 600 --json
{"frames":600, …, "recording":{"accepted":600,"directory":"…/recordings/rig-a-…","error":null,"written":600}, …}

Settings

KeyDefaultMeaning
recording.enabledfalseRecord from the start of every run
recording.directory"recordings"Where session folders go, relative to the config
recording.format"mjpeg""mjpeg", "png" or "raw"
recording.quality90MJPEG quality, 1–100
recording.queue_frames32Frames that may wait for the disk (1–256, at most 256 MiB)
recording.segment_mb1024Size at which a new video-NNNN.avi starts (16–1900)

Format changes apply to the next recording. The Record button and --record never change recording.enabled in the saved config.

Playing recordings

Recordings open in Rekkefly like any video (rekkefly recording/video-0000.avi), including recordings cut short by a crash or power loss. MJPEG and raw AVI also play in VLC and FFmpeg.