57 lines
2.6 KiB
Markdown
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.
|