This commit is contained in:
legop3
2025-11-14 05:52:52 -05:00
parent 2dc18da12d
commit 326ae16f6b
4 changed files with 97 additions and 48 deletions
+8 -10
View File
@@ -32,14 +32,11 @@ Run the resulting `dist/roverd-dummy` on any machine; it will connect to the ser
## Automated installation (recommended)
Make sure the Pi has GStreamer 1.22+ plus the libcamera + bad plugin sets (Bookworm ships them):
Install the Raspberry Pi camera helpers (Bookworm ships them):
```bash
sudo apt update
sudo apt install libcamera-apps \
gstreamer1.0-tools gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
gstreamer1.0-libcamera
sudo apt install libcamera-apps
```
Once the binary (and repo) are on the Pi, run the helper script from the repo root:
@@ -92,13 +89,14 @@ If you set `media.manage: true` in `/etc/roverd.yaml`, make sure the `roverd` se
The `whip-publisher.service` unit runs `/usr/local/bin/whip-publisher`, a small shell wrapper that launches:
```bash
gst-launch-1.0 libcamerasrc ! video/x-raw,width=WIDTH,height=HEIGHT,framerate=FPS/1 \
! videoconvert ! x264enc tune=zerolatency bitrate=BITRATE_KB key-int-max=FPS \
! h264parse config-interval=1 ! whipclientsink signaller::whip-endpoint=$WHIP_URL
rpicam-vid (or libcamera-vid) --inline --timeout 0 --width=WIDTH --height=HEIGHT \
--framerate=FPS --bitrate=BITRATE --codec h264 --profile baseline --output - \
| ffmpeg-whip -hide_banner -loglevel warning -fflags nobuffer \
-f h264 -i pipe:0 -c:v copy -an -f whip $WHIP_URL
```
roverd writes `/var/lib/roverd/whip.env` on startup (and whenever you restart the service) so the publisher inherits the correct `WHIP_URL`, resolution, FPS, and bitrate. Tweak those knobs under `media.videoWidth`, `media.videoHeight`, `media.videoFps`, and `media.videoBitrate` in `/etc/roverd.yaml` if you need different camera settings.
Use `sudo systemctl status whip-publisher` to watch the pipeline logs; the unit auto-restarts whenever the network drops or GStreamer exits.
The installer downloads `ffmpeg-whip` (a WHIP-enabled FFmpeg build) and drops it at `/usr/local/bin/ffmpeg-whip`, along with its private libraries under `/usr/local/lib/ffmpeg-whip`. roverd writes `/var/lib/roverd/whip.env` on startup (and whenever you restart the service) so the publisher inherits the correct `WHIP_URL`, resolution, FPS, and bitrate. Tweak those knobs under `media.videoWidth`, `media.videoHeight`, `media.videoFps`, and `media.videoBitrate` in `/etc/roverd.yaml` if you need different camera settings.
Use `sudo systemctl status whip-publisher` to watch the pipeline logs; the unit auto-restarts whenever the network drops or FFmpeg exits.
## Server + UI