45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
# Share Live
|
||
|
||
Stream your phone's camera and location to KestrelOS. Appears as a **live session** on the map and in **Cameras**. Uses **WebRTC** (Mediasoup) and requires **HTTPS** on mobile.
|
||
|
||
## Usage
|
||
|
||
1. Open **Share live** (sidebar → **Share live** or `/share-live`)
|
||
2. Tap **Start sharing**, allow camera/location permissions
|
||
3. Device appears on map and in **Cameras**
|
||
4. Tap **Stop sharing** to end
|
||
|
||
**Permissions:** Admin/leader can start sharing. All users can view live sessions.
|
||
|
||
## Requirements
|
||
|
||
- **HTTPS** (browsers require secure context for camera/geolocation)
|
||
- **Camera and location permissions**
|
||
- **WebRTC ports:** UDP/TCP `40000–49999` open on server
|
||
|
||
## Local Development
|
||
|
||
**Generate self-signed cert:**
|
||
```bash
|
||
chmod +x scripts/gen-dev-cert.sh
|
||
./scripts/gen-dev-cert.sh 192.168.1.123 # Your LAN IP
|
||
npm run dev
|
||
```
|
||
|
||
**On phone:** Open `https://192.168.1.123:3000`, accept cert warning, sign in, use Share live.
|
||
|
||
## WebRTC Configuration
|
||
|
||
- Server auto-detects LAN IP for WebRTC
|
||
- **Docker/multiple NICs:** Set `MEDIASOUP_ANNOUNCED_IP` to client-reachable IP/hostname
|
||
- **"Wrong host" error:** Use same URL on phone/server, or set `MEDIASOUP_ANNOUNCED_IP`
|
||
|
||
## Troubleshooting
|
||
|
||
| Issue | Fix |
|
||
|-------|-----|
|
||
| "HTTPS required" | Use `https://` (not `http://`) |
|
||
| "Media devices not available" | Ensure HTTPS and browser permissions |
|
||
| "WebRTC: failed" / "Wrong host" | Set `MEDIASOUP_ANNOUNCED_IP`, open firewall ports `40000–49999` |
|
||
| Stream not visible | Check server reachability and firewall |
|