EU Media Relaystream relay network

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.

SettingValue
Server<node>.eu-media-relay.xyz
Port8000
Mount/<station-slug>
Usersource
Passwordissued with your assignment
ProtocolIcecast 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

CodecBitratesNotes
MP396, 128, 192 kbit/sWidest player support. Default choice.
AAC-LC64, 96, 128 kbit/sBetter at low bitrates. Some older hardware receivers cannot decode it.
Ogg Vorbis96, 128 kbit/sCarried, but metadata handling is inconsistent across players.
Opus64, 96 kbit/sPreferred if your audience is browser-based.
Send one bitrate per mount. If you need a low-bandwidth variant, request a second mount rather than switching bitrate on the fly — mid-stream changes disconnect every listener.

3. Listener endpoints

Each mount is exposed in two ways:

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.