Live streaming
Loading…
Streaming credentials are shared via IRC — ask there for the current publish URL/password. This is a single shared stream: whoever is currently publishing is what everyone sees.
OBS Studio works great on any OS (Linux/X11, Wayland, macOS, Windows) and is the easiest option for most people — screen/window capture, audio mixing, and encoder settings are all handled in the UI. If you'd rather use a terminal-only workflow, ffmpeg one-liners are also available below depending on your setup.
If you're on X11 (or a Wayland session with Xwayland exposing
:0.0), this captures your screen + default audio
directly, no extra tools needed:
ffmpeg -f x11grab -framerate 30 -i :0.0 -f pulse -i default -c:v libx264 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -c:a aac -b:a 128k -f flv "<url you were given>"
-preset ultrafast keeps CPU usage low for real-time
software encoding — if you're dropping frames on a weaker machine,
try lowering -framerate (e.g. 20) rather
than the resolution, which tends to look better for the same CPU
savings. If you have a GPU with VAAPI support, hardware encoding is
far less CPU-intensive — replace the video input/encode portion
with:
ffmpeg -vaapi_device /dev/dri/renderD128 -f x11grab -framerate 30 -i :0.0 -f pulse -i default -vf 'format=nv12,hwupload' -c:v h264_vaapi -b:v 4M -c:a aac -b:a 128k -f flv "<url you were given>"
(adjust /dev/dri/renderD128 if you have multiple GPUs —
check ls /dev/dri.) RTMP/FLV requires H.264 video and
AAC audio —
some distro ffmpeg builds (e.g. Slackware) ship without these
encoders for licensing reasons; check with
ffmpeg -encoders | grep -E "libx264|aac", or use OBS
instead, which bundles its own encoder support.
For rebroadcasting a pre-recorded file or another running stream instead of capturing your screen:
ffmpeg -re -i input -c:v libx264 -c:a aac -f flv "<url you were given>"
On Wayland (non-X11) screen capture generally needs a portal/PipeWire flow rather than a single ffmpeg command — OBS handles this transparently across compositors, which is why it's the recommended option there.
In your browser:
https://{{ domain }}/<path>
Or directly in mpv (or any HLS-capable player):
mpv https://{{ domain }}/<path>/index.m3u8
Replace <path> with the stream name in use (e.g., live).