Files
WebAVP/README.md
T

57 lines
2.6 KiB
Markdown

# Alta Video Player (WebAVP)
WebAVP is a local player for Alta/Ava Security camera exports. It focuses on core review workflows: importing video exports, synchronizing multiple cameras on one timeline, zooming into footage, and validating export integrity.
The app can run in two modes:
## Core Features
- Drag/drop individual video and metadata files, folders, or ZIP archives
- Import unencrypted ZIPs through vendored JSZip
- Import AES-encrypted ZIP exports with an in-app password prompt
- Synchronize multiple camera segments on a shared timeline
- Scrub, zoom, pan, change playback speed, and frame-step footage
- Reorder, hide/show, expand, and automatically or manually lay out up to 16 camera tiles (4x4)
- Use region zoom and scroll zoom tools
- Verify signed exports offline and optionally confirm certificates with Alta's cloud verification endpoint
- Preserve sessions across refreshes with IndexedDB
## Standalone desktop app (Electron)
```bash
npm install
npm start
```
The Electron shell loads the same player template used by web mode through the custom `webavp://app/` protocol. Certificate verification and GitPeji update checks are bridged through narrowly scoped Electron IPC. **Check for Updates** compares semantic versions and opens the matching public GitPeji release asset in the system browser; installation remains an explicit user action.
Packaging scripts are included:
```bash
npm run dist:linux # Linux x64 AppImage + deb
npm run dist:mac # macOS x64 + arm64 dmg (run on macOS)
npm run dist:win # Windows x64 NSIS installer (run on Windows)
```
`electron-builder` is configured for Linux AppImage/deb, macOS dmg, and Windows nsis. Cross-platform packaging still needs to be run on the target OS/build host.
## Web/Python mode
```bash
python3 app.py
# http://127.0.0.1:5152
```
The Python stdlib server serves `/`, `/static/*`, and `/api/verify-cert`. It binds to `127.0.0.1` by default; set `WEBAVP_HOST=0.0.0.0` only for deliberate trusted-LAN sharing. Web mode shows **Download Desktop App**, selecting the latest compatible public GitPeji release asset when available and otherwise opening the releases page.
## Checks
```bash
npm run check
npm run smoke # Electron on a desktop session
npm run smoke:headless # Electron under xvfb on headless Linux
WEBAVP_SMOKE_WEB_URL=http://127.0.0.1:5152/ npm run smoke:web
```
`check` runs syntax, focused layout/release regressions, Python server tests, and source invariants. The smoke commands exercise the shared template in both Electron and served web modes. See `RELEASING.md` for the GitPeji publishing and asset contract.