Outputs
A station can feed several stream servers at once, each with its own encoding. Outputs are configured in the Outputs page (admins).
Encoder profiles
Section titled “Encoder profiles”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.
Icecast outputs
Section titled “Icecast outputs”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.
Testing locally
Section titled “Testing locally”The stack includes an optional Icecast server:
docker compose --profile icecast up -d --waitAdd an output to host icecast, port 8000, mount /live, password hackme, public URL http://localhost:8010, then click Listen (http://localhost:8010/live).
Coming later
Section titled “Coming later”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.