45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
# visionLabs Roku
|
|
|
|
visionLabs Roku is a private Roku app scaffold for viewing home security cameras on a TV.
|
|
|
|
The current starter path is Frigate-backed, with Roku reading a static inventory of cameras that are managed by Frigate instead of embedding raw camera credentials in the app.
|
|
|
|
The first playback strategy is `snapshotFirst`, which lets the Roku app render a useful camera wall before the direct live stream endpoint shape is finalized.
|
|
|
|
## Product direction
|
|
|
|
- Brand family follows the user's existing `Labs` naming pattern.
|
|
- V1 uses a static packaged camera configuration.
|
|
- V2 adds in-app camera and layout editing.
|
|
- V3 moves camera metadata and layout persistence to a backend service.
|
|
|
|
## Technical direction
|
|
|
|
- Roku SceneGraph app
|
|
- Camera feeds delivered from Frigate in a Roku-friendly format, ideally HLS
|
|
- Static JSON config for the first prototype
|
|
- Future backend for editing, persistence, and auth
|
|
|
|
## Project layout
|
|
|
|
- `manifest` - Roku channel metadata
|
|
- `source/main.brs` - app entry point
|
|
- `components/MainScene.xml` - initial SceneGraph UI
|
|
- `components/MainScene.brs` - scene behavior
|
|
- `config/cameras.json` - static Frigate-backed starter camera config
|
|
- `docs/FRIGATE_SETUP.md` - notes for mapping cameras through Frigate
|
|
- `docs/ROADMAP.md` - delivery phases and constraints
|
|
|
|
## Notes
|
|
|
|
Roku is not a great target for raw RTSP feeds. With Frigate in the middle, the clean path is to let Frigate manage discovery, auth, and stream brokering, then expose a Roku-friendly live feed format from there.
|
|
|
|
## Next steps
|
|
|
|
1. Set the real Frigate base URL in `config/cameras.json`
|
|
2. Map the four starter cameras in Frigate using the same IDs as the Roku config
|
|
3. Verify that Frigate snapshots load at `/api/<camera>/latest.jpg`
|
|
4. Render the snapshot wall on Roku
|
|
5. Choose the direct live stream path for full playback
|
|
6. Add edit mode and persistence strategy
|