$npx -y skills add SharpAI/DeepCamera --skill go2rtc-camerasMulti-camera RTSP to WebRTC streaming via go2rtc
| 1 | # go2rtc Multi-Camera Streaming |
| 2 | |
| 3 | Registers RTSP camera streams with SharpAI Aegis's go2rtc sidecar for low-latency WebRTC live view in the browser. |
| 4 | |
| 5 | ## How It Works |
| 6 | |
| 7 | ``` |
| 8 | Your Cameras (RTSP) go2rtc (in Aegis) Browser |
| 9 | ─────────────────── ───────────────── ─────── |
| 10 | rtsp://cam1:554/stream ───► /api/webrtc?src=cam1 ───► WebRTC Player |
| 11 | rtsp://cam2:554/stream ───► /api/webrtc?src=cam2 ───► WebRTC Player |
| 12 | rtsp://cam3:554/stream ───► /api/webrtc?src=cam3 ───► WebRTC Player |
| 13 | ``` |
| 14 | |
| 15 | ## Supported Sources |
| 16 | |
| 17 | go2rtc accepts any stream source: |
| 18 | - `rtsp://` — standard RTSP cameras |
| 19 | - `rtmp://` — RTMP streams |
| 20 | - `http://` — MJPEG or HLS streams |
| 21 | - `ffmpeg:` — FFmpeg pipeline |
| 22 | - `exec:` — custom command |
| 23 | |
| 24 | ## Protocol |
| 25 | |
| 26 | ### Skill → Aegis (stdout) |
| 27 | ```jsonl |
| 28 | {"event": "ready", "streams": 3} |
| 29 | {"event": "live_stream", "camera_id": "front_door", "camera_name": "Front Door", "url": "rtsp://192.168.1.100:554/stream1"} |
| 30 | {"event": "live_stream", "camera_id": "backyard", "camera_name": "Backyard", "url": "rtsp://192.168.1.101:554/stream1"} |
| 31 | ``` |
| 32 | |
| 33 | Aegis registers each stream with go2rtc via IPC: |
| 34 | - `go2rtc:add-stream` → registers camera |
| 35 | - `go2rtc:connection-info` → returns WebRTC URL for player |
| 36 | |
| 37 | ## Setup |
| 38 | |
| 39 | ```bash |
| 40 | python3 -m venv .venv && source .venv/bin/activate |
| 41 | pip install -r requirements.txt |
| 42 | ``` |