~/projects/obs-stream-controller
Headless OBS Stream Controller
Note: no repoUrl in the frontmatter above — this is the pattern for a project you want
to showcase without linking source. The card and detail page render fine with just
a summary, description, and screenshots.
Built a web-based controller for a headless OBS instance running on a 2-core ARM64 Oracle Cloud VM, using OBS WebSocket v5. Handles scene and source management, layer reordering, live volume control, and a polling-based live preview — all through a lightweight token-authenticated Flask backend with auto-reconnect.
Infrastructure work
Getting this stable involved fixing PulseAudio access from a systemd service context,
correcting the active OBS profile path, and tuning x264 encoding settings for a
2-core/24fps target. Also patched a Type=forking systemd supervision bug that was
causing the service to report healthy before OBS had actually finished starting.