Zoitecast - Browser-Compatible Screencasting

Viewing a Stream

To view a stream, simply open one of these URLs in your browser:

You can also use a media player like VLC or mpv with the URL.

Broadcasting (Streaming)

To stream to zoitecast, you need:

  1. The source password (get this from the channel operator)
  2. ffmpeg installed on your system

Streaming your screen with ffmpeg

For Linux users (X11):

ffmpeg -f x11grab -framerate 15 -i :0.0 -c:v libvpx -quality realtime -cpu-used 2 -b:v 1M -maxrate 1M -bufsize 2M -f webm icecast://source:PASSWORD@zoitecast.dumpnet.chat/stream.webm

For Linux users (Wayland):

# Using wf-recorder (install it first)
wf-recorder --muxer=v4l2 --codec=rawvideo --file=/dev/video9 &
ffmpeg -f v4l2 -framerate 15 -i /dev/video9 -c:v libvpx -quality realtime -cpu-used 2 -b:v 1M -maxrate 1M -bufsize 2M -f webm icecast://source:PASSWORD@zoitecast.dumpnet.chat/stream.webm

Better method for Wayland with pipewire (most modern distros):

# Install xdg-desktop-portal and xdg-desktop-portal-wlr first
ffmpeg -f pipewire -i "$(pw-record --list-targets | grep '^[0-9]*: Monitor' | head -n1 | cut -d: -f1)" -c:v libvpx -quality realtime -cpu-used 2 -b:v 1M -maxrate 1M -bufsize 2M -f webm icecast://source:PASSWORD@zoitecast.dumpnet.chat/stream.webm

Alternative for Wayland with GNOME:

# Using GNOME's built-in screen recording
ffmpeg -f pulse -ac 2 -i default -f x11grab -framerate 15 -i :0.0 -c:v libvpx -quality realtime -cpu-used 2 -b:v 1M -c:a libvorbis -b:a 128k -f webm icecast://source:PASSWORD@zoitecast.dumpnet.chat/stream.webm

For macOS users:

ffmpeg -f avfoundation -framerate 15 -i "1" -c:v libx264 -preset ultrafast -tune zerolatency -f mp4 icecast://source:PASSWORD@zoitecast.dumpnet.chat/stream.mp4

For Windows users (with ffmpeg in your PATH):

ffmpeg -f gdigrab -framerate 15 -i desktop -c:v libx264 -preset ultrafast -tune zerolatency -f mp4 icecast://source:PASSWORD@zoitecast.dumpnet.chat/stream.mp4

Replace PASSWORD with the actual streaming password.

Adding audio to your stream

To capture system audio (Linux with PulseAudio, X11):

ffmpeg -f x11grab -framerate 15 -i :0.0 -f pulse -i default -c:v libvpx -quality realtime -cpu-used 2 -b:v 1M -c:a libvorbis -b:a 128k -f webm icecast://source:PASSWORD@zoitecast.dumpnet.chat/stream.webm

To capture system audio (Linux with PipeWire/Wayland):

# All-in-one solution with PipeWire
ffmpeg -f pipewire -i "$(pw-record --list-targets | grep '^[0-9]*: Monitor' | head -n1 | cut -d: -f1)" -f pulse -i default -c:v libvpx -quality realtime -cpu-used 2 -b:v 1M -c:a libvorbis -b:a 128k -f webm icecast://source:PASSWORD@zoitecast.dumpnet.chat/stream.webm

For GNOME Wayland users with extension:

# Install and enable "GNOME Shell Integration" and "EasyScreenCast" browser extension
# Use the extension to capture the screen, then stream the resulting file

IRC Integration

Join the IRC channel to discuss the stream and request the streaming password.

The channel operator will share the password through a secure method like DM or encrypted message.

Notes for Streamers