Files
kestrelos/docs/live-streaming.md
Madison Grubb a4996e7c91
All checks were successful
ci/woodpecker/pr/pr Pipeline was successful
get rid of ambiguous unicode chars
2026-02-17 11:28:47 -05:00

1.5 KiB

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:

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