Skip to content

octacam

Preview, record, and save synchronized video from many scientific cameras through one fast, simple interface. octacam drives Basler, FLIR / Teledyne, and any GenICam USB3-Vision camera from a live web GUI, and turns a day's recordings into archived videos with one command. It auto-detects the best available driver per camera (a backend cascade) with a pip-installable floor, so it just works on modern Python. It is the successor to SeptaCam.

What it does

  • Drives many cameras at once — 8 is not the limit despite the name.
  • Live web GUI — preview every camera while recording, from the same machine or over SSH.
  • Records straight to video — monochrome H.264 (or a raw byte dump), with a per-recording summary that records dropped frames and timing.
  • One-command post-processingoctacam process transcodes, tiles cameras into composite grid videos, and copies everything to shared storage, all from a config snapshot each recording carries with it.
  • Opt-in plugins for rig hardware (turntable, 2-photon trigger, configurable camera-trigger + lights box).

Get started

  • Install — clone the repo and install with uv; Basler works out of the box.
  • Quickstart — record your first trial, with or without hardware.
  • Configuration — the octacam_config.toml reference.

The workflow at a glance

# 1. Check the install and validate your rig
octacam doctor <config_dir>

# 2. Preview + record from the web GUI
octacam gui <config_dir>          # → http://127.0.0.1:8765

# 3. Transcode, build grid videos, and copy to storage — one command
octacam process --all

octacam record <config_dir> does step 2 headlessly (no browser) for scripted or remote runs.

Where to next

Guide
Web GUI Preview, record, and remote operation over SSH
Recording Outputs, the recording summary, transformed vs raw
Processing Transcode, grid videos, and transfer to storage
Configuration The octacam_config.toml reference
Camera backends The auto-detect cascade (Basler → FLIR → Spinnaker → pycameleon)
Plugins Flywheel turntable, 2-photon trigger, and the configurable triggerbox (camera trigger + lights)
CLI reference Every command and option
Troubleshooting Common errors and fixes