Skip to content

Outputs

A station can feed several stream servers at once, each with its own encoding. Outputs are configured in the Outputs page (admins).

An encoder profile is one encoding: codec, bitrate, sample rate and channels. Several outputs can share a profile; the audio is then encoded once.

A fresh installation has an MP3 128k profile: CBR, 128 kbps, 44.1 kHz, stereo. It plays everywhere, including hardware internet radios, smart speakers and stream directories.

MP3 profiles accept 8 to 320 kbps, CBR or VBR, mono or stereo.

An output is one destination. For Icecast 2.4 and later:

Setting Default
Host required
Port 8000
Mount required, starts with /
Username source
Password required
Name, description, genre, URL shown in stream directories
Public off (listing in public directories)
Public URL http://host:port (the server’s address as listeners reach it, e.g. https://stream.example.org)

Track metadata is sent as Artist - Title. TLS is not supported yet.

The On air and Outputs pages show each output’s live state: connected, reconnecting and why, and bytes sent. Both pages also link to the stream (Listen): the public URL followed by the mount. Each output reconnects on its own (from 1 s, doubling up to 60 s) without affecting the others. Changing one output never interrupts the others.

The engine keeps a copy of its outputs, so after a restart it streams again even when the API or the database is down.

The stack includes an optional Icecast server:

Terminal window
docker compose --profile icecast up -d --wait

Add an output to host icecast, port 8000, mount /live, password hackme, public URL http://localhost:8010, then click Listen (http://localhost:8010/live).

AAC-LC, Opus and Vorbis encoders, an external FFmpeg encoder, Shoutcast, HLS, file recording and pipe outputs are planned for a later milestone. See the roadmap.