Files
livekit-cameras/.env.example
T
root 736eccb932 feat: known-good CPU audio + 1080p VAAPI + KMS display wall
Working snapshot before the OpenVINO MetricGAN GPU spike:
thread-capped SpeechBrain DelaySum+MetricGAN on CPU, hop 200 ms,
video hold for A/V sync, Arc VAAPI H.264, headless kmssink wall.
32 tests passing. Do not treat this as a GPU audio path.
2026-08-28 07:14:21 +00:00

67 lines
2.0 KiB
Bash

# LiveKit server connection
# Local TEST server (autostarted). Switch this URL to the remote
# LiveKit later; then: systemctl disable --now livekit-server
LIVEKIT_URL=ws://127.0.0.1:7880
LIVEKIT_API_KEY=APIKey_xxx
LIVEKIT_API_SECRET=APIsecret_xxx
# Room / naming
LIVEKIT_ROOM=cameras
PARTICIPANT_PREFIX=cam
# Streams
# "all" = every discovered camera, "1,3,5" or "0-19" = subset
CAMERAS=all
VIDEO_WIDTH=640
VIDEO_HEIGHT=360
VIDEO_FPS=30
VIDEO_MIN_FPS=5
VIDEO_BITRATE=800000
VIDEO_CODEC=h264
VIDEO_ENCODER=vaapi
LIBVA_DRM_DEVICE=/dev/dri/renderD129
LIBVA_DRIVER_NAME=iHD
# Audio
AUDIO_SAMPLE_RATE=16000
AUDIO_CHANNELS=1
# Audio cleanup (speechbrain)
# mode: auto (default: enhanced if the model is cached, otherwise passthrough)
# force (always enhance), off (always passthrough)
ENHANCE_MODE=auto
# speechbrain model repo (must be 16 kHz; metricGAN-plus runs ~20-40ms/frame on CPU)
ENHANCE_MODEL=speechbrain/metricgan-plus-voicebank
# model window vs publish hop: 1 s context, 200 ms emit
ENHANCE_CHUNK_S=1.0
ENHANCE_HOP_S=0.2
# C920 stereo Delay-and-Sum (SpeechBrain GCC-PHAT) before MetricGAN
# auto (default): beamform if speechbrain loads, else average channels
# force: require DelaySum_Beamformer, off: average L/R
BEAMFORM_MODE=auto
# One BLAS/Torch thread per worker (20 workers vs 28 cores)
TORCH_NUM_THREADS=1
# Recompute GCC-PHAT TDOA every N hops (5 * 200 ms = 1 s)
BEAMFORM_TDOA_EVERY=5
# Misc
PUBLISH_TIMEOUT_S=60
LOG_LEVEL=INFO
# Headless display wall (run_displays.py / livekit-displays.service)
# 3 DRM roles: 20-cam grid, designated speaker camera, screenshare STUB
DISPLAY_COUNT=3
DISPLAY_ROLES=grid,speaker,screenshare
# Empty = auto (connected heads first, prefer Arc HDMI-A-*)
DISPLAY_CONNECTORS=
DISPLAY_IDENTITY=display-wall
# Speaker camera pane: cam-NN or "active"
DISPLAY_SPEAKER_CAMERA=cam-01
DISPLAY_GRID_COLS=5
DISPLAY_GRID_ROWS=4
DISPLAY_GRID_WIDTH=1920
DISPLAY_GRID_HEIGHT=1080
DISPLAY_GRID_FPS=30
# Screen share is a stub until production LiveKit is online.
LIVEKIT_PUBLIC_URL=