Documentation
Connection guide
Everything here assumes you already have a node assignment and a source password. If you do not, start at contact.
1. Source connection
Nodes speak the standard Icecast 2 source protocol. Any encoder that can publish to an Icecast server will work unmodified — BUTT, Liquidsoap, RadioDJ, Mixxx, StereoTool, ffmpeg.
| Setting | Value |
|---|---|
| Server | <node>.eu-media-relay.xyz |
| Port | 8000 |
| Mount | /<station-slug> |
| User | source |
| Password | issued with your assignment |
| Protocol | Icecast 2 (not Shoutcast) |
A minimal ffmpeg example, 128 kbit/s stereo MP3:
ffmpeg -re -i input.wav \
-c:a libmp3lame -b:a 128k -ar 44100 -ac 2 \
-content_type audio/mpeg \
-f mp3 icecast://source:PASSWORD@fra-1.eu-media-relay.xyz:8000/example-fm
And the equivalent Liquidsoap output block:
output.icecast(
%mp3(bitrate = 128),
host = "fra-1.eu-media-relay.xyz",
port = 8000,
mount = "example-fm",
password = "PASSWORD",
name = "Example FM",
description = "Community radio, 24/7",
radio
)
2. Accepted formats
| Codec | Bitrates | Notes |
|---|---|---|
| MP3 | 96, 128, 192 kbit/s | Widest player support. Default choice. |
| AAC-LC | 64, 96, 128 kbit/s | Better at low bitrates. Some older hardware receivers cannot decode it. |
| Ogg Vorbis | 96, 128 kbit/s | Carried, but metadata handling is inconsistent across players. |
| Opus | 64, 96 kbit/s | Preferred if your audience is browser-based. |
3. Listener endpoints
Each mount is exposed in two ways:
- https://<node>.eu-media-relay.xyz/<mount> — direct stream, for hardware receivers and desktop players.
- https://<node>.eu-media-relay.xyz/hls/<mount>/index.m3u8 — HLS packaging, for browsers and mobile apps.
HLS segments are six seconds with a three-segment window. That adds roughly twenty seconds of latency compared with the direct stream, which is irrelevant for music programming and occasionally awkward for live phone-ins.
4. Failover
Publish to your primary node only. If it becomes unreachable, the fallback node picks up automatically from the last known source within about forty seconds; listeners on the direct stream will need to reconnect, HLS clients usually recover on their own.
Do not publish the same mount to two nodes simultaneously. It produces two diverging streams and the failover logic will flap between them.
5. Peering and redistribution
You may redistribute your own stream anywhere you like — it is your programme. You may not use a relay mount as a source for a commercial aggregator without telling us first, because those pull hundreds of connections from a single address and look identical to abuse from our side.
6. Getting help
Technical questions go to ops [at] eu-media-relay.xyz. Include the mount name and, if the problem is intermittent, a rough timestamp in UTC. We keep no per-listener records, so "someone could not connect yesterday" is unfortunately not something we can investigate after the fact.