Repository navigation
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/videoNrenumbering, and skips non-camera nodes (e.g. the Raspberry Pibcm2835-codec/bcm2835-ispdevices). - 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.shversion 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:
aa1b5fefix(recording): correct motion clip playback speed, add auto camera detection030c43efix(auto-camera): prefer color camera for day, detect IR-tinted sensors1af03e6fix(camera): race-safe day/night switch, report active camera in Telegram941a3d6fix(recording): correct clip duration without ffmpeg via AVI header patcha2062fefeat(recording): learn sustained per-camera fps, stamp next clips with itdbdaba5feat(telegram): report real recording stats in video captionsb26997ffix(recording): support sub-1fps clips, log negotiated pixel formate51aa98Show CheapSecurity version in web UI header3f41fb8/b7e0aa2docs(readme): tested hardware section273a833fix(release): portable sed patterns in release.sh