Skip to content

CheapSecurity v1.2.0

Latest

Choose a tag to compare

@gmrandazzo gmrandazzo released this 20 Sep 21:32
· 3 commits to main since this release

What's new

  • Automatic camera detection — set "device": "auto" and "night_device": "auto" and CheapSecurity opens every V4L2 capture device, classifies it from frame content (color / IR-tinted / mono), and assigns the day camera (color preferred) and the night/IR camera by itself. Content-based, so it works with any camera models, survives /dev/videoN renumbering, and skips non-camera nodes (e.g. the Raspberry Pi bcm2835-codec/bcm2835-isp devices).
  • True-to-length recordings on any camera — the sustained fps of each camera is learned while recording and written into the next clips; AVI durations are corrected in place by patching the header (pure Python, no ffmpeg), down to sub-1 fps IR cameras.
  • Telegram video captions now report real duration, frame count, and fps (e.g. 🎥 Manual video: 19.1s — 13 frames @ 0.7 fps).
  • Telegram night-mode replies now state which physical camera is active (day/color or night/IR).
  • Web dashboard header shows the running version; the Swagger API info reports the same version.
  • README: new Tested hardware section.

Fixed

  • Motion and manual clips playing back too fast on cameras whose real fps is lower than the configured one (e.g. 20 s of wall-clock recording playing in ~13 s).
  • Sub-1 fps recordings from IR cameras getting a bogus stamped fps (floor lowered from 1.0 to 0.1).
  • Race in day/night camera switching that could leave the wrong camera active after rapid toggles.
  • AUTO day-camera assignment could pick an IR-tinted sensor; plain color cameras are now preferred for the day slot.
  • Negotiated pixel format and (learned/measured) writer fps are now logged per camera for easier debugging.
  • release.sh version bump failing on macOS (BSD sed portability).

Tested on Raspberry Pi Zero 1 W and Odroid XU4, each with a USB color (day) camera and a USB IR (night) camera.


Changes since v1.1.0:

  • aa1b5fe fix(recording): correct motion clip playback speed, add auto camera detection
  • 030c43e fix(auto-camera): prefer color camera for day, detect IR-tinted sensors
  • 1af03e6 fix(camera): race-safe day/night switch, report active camera in Telegram
  • 941a3d6 fix(recording): correct clip duration without ffmpeg via AVI header patch
  • a2062fe feat(recording): learn sustained per-camera fps, stamp next clips with it
  • dbdaba5 feat(telegram): report real recording stats in video captions
  • b26997f fix(recording): support sub-1fps clips, log negotiated pixel format
  • e51aa98 Show CheapSecurity version in web UI header
  • 3f41fb8/b7e0aa2 docs(readme): tested hardware section
  • 273a833 fix(release): portable sed patterns in release.sh