feat: point the fleet at wss LiveKit room uwh-telhai
Publish and subscribe over wss://livekit.uni-wh.de:7800 and refuse cleartext ws://. Conference room is uwh-telhai. Includes the uncommitted encoded H.264 publish path, Rally hairpin, and KMS wall overlay.
This commit is contained in:
@@ -5,9 +5,13 @@ LiveKit room.
|
||||
|
||||
Each camera becomes one LiveKit participant (`cam-01` .. `cam-20`) that
|
||||
publishes:
|
||||
- a camera video track (640x360 @ 30 fps MJPG, H.264 VAAPI — sized
|
||||
for low-latency wall decode, not max quality)
|
||||
- a microphone audio track (16 kHz mono, cleaned with speechbrain)
|
||||
- a camera video track (640x360 @ 30 fps MJPG, H.264 VAAPI on Arc).
|
||||
1280x720@30 and 1920x1080@30 negotiate, but UVC on the 6–7 camera
|
||||
USB 2.0 hubs fails buffer-pool allocation for most devices. Keep 30
|
||||
fps; drop resolution if USB isoc is exhausted. YUYV 1080p is 5 fps
|
||||
only — always MJPEG.
|
||||
- a microphone audio track (16 kHz mono, cleaned with one shared
|
||||
speechbrain MetricGAN process; workers do not each load the model)
|
||||
|
||||
Identity is the USB serial, pinned by udev (`/dev/camNN` + `slots.json`).
|
||||
`--cameras 1,5` means participants `cam-01` and `cam-05`, not discovery order.
|
||||
@@ -96,7 +100,10 @@ journalctl -u livekit-displays -f
|
||||
```
|
||||
|
||||
`.env`: `DISPLAY_ROLES`, `DISPLAY_CONNECTORS`, `DISPLAY_SPEAKER_CAMERA`,
|
||||
`DISPLAY_GRID_*`. kmssink takes the DRM master (framebuffer console on
|
||||
`DISPLAY_GRID_*`. Local cameras publish LiveKit attributes `tag=uwh`
|
||||
(`PARTICIPANT_TAGS`). The wall can hide those with `DISPLAY_HIDE_TAGS=uwh`
|
||||
so remotes fill the mosaic instead; leave `DISPLAY_HIDE_TAGS` empty to keep
|
||||
showing the local fleet (current default). kmssink takes the DRM master (framebuffer console on
|
||||
HDMI-A-7 is replaced by the grid).
|
||||
|
||||
## Audio cleanup
|
||||
@@ -116,6 +123,13 @@ stereo through a SpeechBrain preprocessor, then published as mono:
|
||||
The 1 s window is **past context**, not +1 s delay: only the latest hop
|
||||
is published. Algorithmic delay ≈ hop + compute.
|
||||
|
||||
Optional latency flags (all default to current behavior). Suggested wall
|
||||
A/B: `ENHANCE_HOP_S=0.05 AUDIO_QUEUE_MS=60 WORKER_SPLIT_EXECUTOR=1
|
||||
ENHANCE_SPEAKER_ONLY=1 DISPLAY_VIDEO_CAPACITY=1 DISPLAY_VIDEO_FORMAT=bgra
|
||||
DISPLAY_GST_QUEUE_BUFFERS=1 DISPLAY_SPEAKER_PUSH=arrival`. Aggressive:
|
||||
`ENHANCE_MODE=off BEAMFORM_MODE=off ENHANCE_HOP_S=0.02 AUDIO_QUEUE_MS=40
|
||||
VIDEO_HOLD_S=0`. See `.env.example`.
|
||||
|
||||
Each worker caps Torch/BLAS/OpenVINO to `TORCH_NUM_THREADS=1` (default)
|
||||
so 14–20 processes do not oversubscribe the i7-14700. This host has an
|
||||
Intel Arc B580; the venv Torch is NVIDIA CUDA and **cannot** use it. Do
|
||||
@@ -144,20 +158,15 @@ This box is meant to behave like an appliance:
|
||||
|
||||
## systemd (enabled)
|
||||
|
||||
- `livekit-server.service` — **local TEST** LiveKit on :7880 (autostart for now)
|
||||
- `livekit-cameras.service` — publishers. `Wants=` the test server, does not
|
||||
`Require` it. Destination is `LIVEKIT_URL` in `.env` (currently
|
||||
`ws://127.0.0.1:7880`).
|
||||
- `livekit-displays.service` — optional. Subscribes to `cam-01`/`cam-02`/`cam-03`
|
||||
- `livekit-server.service` — **local TEST** LiveKit on :7880 (**disabled**;
|
||||
cameras no longer `Wants=` it). Do not re-enable unless falling back
|
||||
to localhost.
|
||||
- `livekit-cameras.service` — publishers. Destination is `LIVEKIT_URL` in
|
||||
`.env` (`wss://livekit.uni-wh.de:7800`, room `uwh-telhai`). Signaling
|
||||
is WSS only; the client verifies the TLS certificate.
|
||||
- `livekit-displays.service` — optional. Subscribes to the camera room
|
||||
and drives 3 DRM connectors with GStreamer `kmssink` (no X11/Wayland).
|
||||
|
||||
When the real/remote LiveKit exists, change `.env` `LIVEKIT_URL` and:
|
||||
|
||||
```bash
|
||||
systemctl disable --now livekit-server
|
||||
systemctl restart livekit-cameras
|
||||
```
|
||||
|
||||
```bash
|
||||
systemctl status livekit-cameras livekit-server
|
||||
journalctl -u livekit-cameras -f
|
||||
|
||||
Reference in New Issue
Block a user