NextNVR/CHANGELOG.md

43 lines
2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Changelog
All notable changes to NextNVR will be documented in this file.
## [0.2.1] — 2026-08-05
### Changed
- **Flat recording directory**: `/mnt/recordings/{cam-name}/{YYYY-MM-DD-HH-MM}.mp4`
- **Per-segment FFmpeg**: replaced segment muxer with `-t 300` per-segment approach
- **Atomic file naming**: in-progress recordings use `.part.mp4` suffix, renamed on completion
- **Crash recovery**: `.part` files older than 1 hour auto-cleaned by retention loop
- Cleaner skips `.part.mp4` files (active recordings)
- Cleaner prunes empty camera directories after purge
### Added
- Playback presets: Today, Yesterday, Last 7 Days, Custom date range
- `/recordings/` static file server for video playback
- Recordings API filters by preset or custom date range
- 🔴 live badge for in-progress `.part` files in playback UI
### Removed
- Nested date subdirectories (replaced by flat per-camera structure)
- Complex FFmpeg segment muxer flags (`-f segment`, `-segment_time`, `-strftime`)
## [0.2.0] — 2026-08-05
### Added
- FFmpeg stream recorder with zero-transcoding (`-c copy`) stream-copy mode
- 5-minute MP4 segment output to `/mnt/recordings/{cam_id}/{YYYY-MM-DD}/`
- Per-camera goroutines with auto-reconnect on stream failure (5s delay)
- Staggered camera startup (500ms between launches)
- Storage retention cleaner with configurable `retention_days`
- Hourly background purge of expired recordings
- Empty directory pruning after cleanup runs
## [0.1.0] — 2026-08-05
### Added
- Initial project scaffold and Go module
- YAML configuration (`config.yaml`) with 8 camera stubs
- Embedded single-binary distribution using Go `embed`
- HTTP API endpoints: `/api/cameras`, `/api/config`, `/api/scan`, `/api/status`, `/api/recordings`
- Responsive SPA with three tabs: Live Wall, Playback, Settings
- 4x2 CSS grid for live camera monitoring
- Focus/overlay mode with prev/next navigation and thumbnail strip
- ONVIF scan stub (IP range 192.168.1.201209, skip 204)
- go2rtc child process manager with auto-restart
- Deployment script (`setup.sh`) with systemd service generation