3fcb8fbe99
Phase 12: frame-accurate timecode via an overscan band — vgstrip encoder/decoder, sweep writes tmcd + creation_time + sidecar, dumpd /time, Caddy /time routes, MediaMTX microsecond names, /dock/clock/ page, dock band setup via obs-websocket, Go Live band composite + toggle, portal crops the band
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-31 16:07:56 -05:00
dcc347e1ea
Phase 7+11: token-based publishing — MediaMTX authMethod http -> dumpd /mtx-auth (bridge-only port 8081); dumpd mints 12 h HMAC tokens for Discord-authenticated streamers; dock rewritten (no passwords, naming rules with live preview, prefix/suffix, manual-setup accordion with hidden token); portal uses tokens; configure.py drops streamers; MediaMTX hot-reload, Caddy reload — no stream interruption
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-31 15:22:15 -05:00
2a74cb7b40
Logout ends the Authentik session: copyparty idp-logout -> outpost sign_out; live portal Sign out link
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-31 15:11:53 -05:00
76a7d06df4
Go Live: state the Windows-only quality/audio reality in the form; STATUS note
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-31 13:37:21 -05:00
e4656b9293
Go Live quality: prefer H.264 High/Main (hardware) then Baseline then VP9; start/min bitrate hints to skip the ramp; motion content hint; show encoder + profile in stats
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-31 13:33:45 -05:00
d28c2335d0
Go Live: recording warning before start and a REC badge while live
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-31 01:48:25 -05:00
f737fc6289
Go Live: state the Windows-only window-audio limitation in the UI and docs
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-31 01:47:45 -05:00
b634413773
Go Live: request window-scoped audio (windowAudio: window, Chrome 141+); keep the picker window-only
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-31 01:44:45 -05:00
4b4c7eaedf
Go Live: MediaMTX credentials via X-Stream-Auth -> Authorization on the Caddy->MediaMTX hop (WebRTC ignores query params); fix WHIP session DELETE path
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-31 00:56:56 -05:00
82df0b1583
Live portal: Go Live — browser window capture published over WHIP as <user>/HelmetCam-<date>; dumpd /me/stream-key
...
Go Live closes viewer windows, fetches the Authentik-identified user's MediaMTX key from dumpd
(/etc/vanguard/streamers.json written by configure.py), opens Chrome's window-only picker with
audio, prefers H.264 so MediaMTX can record, caps at 12 Mbps / 1440p60, shows live stats, Stop.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-30 23:04:33 -05:00
463d9b2385
Live portal: React + dockview multi-stream viewer behind Authentik; MediaMTX HLS/WebRTC/API re-enabled; is-live Discord hook
...
live/: every active stream opens as a dockable window (WHEP, HLS fallback), audio follows the
focused window, per-window mute/volume, pinning. Caddy live.HOST block with forward-auth proxies
/api /webrtc /hls to MediaMTX on loopback and serves /srv/live. WebRTC media on 8189 (firewall).
configure.py asks the live hostname and an optional Discord webhook; MediaMTX -ffmpeg image runs
the runOnReady hook. deployLive.sh builds and ships dist/.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-10-30 23:01:11 -05:00