Releases: justinhuangcode/camgrab
Releases · justinhuangcode/camgrab
camgrab v1.0.1
Fixed
- Add README to crates.io packages (readme path fix for workspace crates)
- Add crates.io version badge to README
camgrab v1.0.0
Added
- RTSP snapshot capture (
camgrab snap) - Single keyframe capture with H.264 decode via openh264 and MJPEG passthrough - RTSP clip recording (
camgrab clip) - Duration-based video recording with AVCC-to-Annex B conversion - Motion detection (
camgrab watch) - Polling-based frame differencing with configurable threshold, cooldown, zones, and fire-and-forget action commands - Camera management (
camgrab add,camgrab list) - TOML-based configuration at~/.config/camgrab/config.tomlwith upsert semantics and 0o600 permissions - ONVIF device discovery (
camgrab discover) - WS-Discovery via UDP multicast for automatic camera detection - ONVIF PTZ control (
camgrab ptz) - Pan, tilt, zoom, absolute/relative/continuous moves, preset management via SOAP - Health diagnostics (
camgrab doctor) - Config validation, TCP connectivity checks, real RTSP connection probing with retry logic - Daemon mode (
camgrab-daemon) - REST API server with bearer token auth, scheduled jobs (cron-based snap/clip/health-check), and motion event buffering - Scheduler - Cron expression-based job scheduling for automated snap, clip, health check, and custom shell commands
- Notification system - Webhook (HTTP POST), MQTT (publish), and email (SMTP via lettre) notification backends with routing
- Storage backends - Local filesystem with atomic writes and S3/MinIO cloud storage
- Error classification - Automatic error categorization (network, auth, codec, timeout, I/O) with user-friendly suggestions
- Cross-platform CI/CD - GitHub Actions for Linux, macOS, Windows testing and multi-architecture release builds
- Pure Rust - No ffmpeg or external C library dependencies; RTSP via retina, H.264 decode via openh264
Architecture
- Three-crate workspace:
camgrab-core(library),camgrab-cli(binary),camgrab-daemon(REST server) - Async throughout via tokio runtime
- 159 unit tests and doc-tests across all crates