Skip to content

Broadcast Outputs

Broadcast outputs are the connections between br\u016bhi and the distribution layer. You configure one or more outputs; br\u016bhi encodes the master mix and sends it to each active output simultaneously.

OutputProtocolTypical use
IcecastHTTP/1.0 PUTInternet radio, most streaming servers
ShoutcastICY (Shoutcast 1.x)Legacy Shoutcast servers
HLSHTTP segmentsWeb players, CDN delivery
SRTUDP (encrypted)Low-latency contribution links
RTPUDP unicast/multicastStudio-to-transmitter links
FileLocal diskRecording the broadcast mix

Each output can use a different encoder and bitrate. Available encoders:

EncoderFormatNotes
MP3 (LAME).mp3Most compatible; CBR or VBR
AAC-LC (FDK-AAC).aac / .m4aBetter quality per bitrate than MP3
Opus.opusBest quality at low bitrates; growing adoption
OGG Vorbis.oggOpen, good quality
FLAC.flacLossless; file output and Icecast only
WAV.wavUncompressed; file output and local use
PassthroughForward the encoder stream unchanged

br\u016bhi can send to multiple outputs simultaneously. The master mix is encoded once per output type and shared zero-copy across all sinks of the same type (Arc<Vec> buffer sharing).

Each output has independent back-pressure isolation — a slow or stalled output does not affect other outputs or the audio engine.

FieldDescription
HostIcecast server hostname or IP
PortIcecast HTTP port (default: 8000)
MountMount point path (e.g., /station.mp3)
UsernameSource user (default: source)
PasswordSource password
BitrateEncoder bitrate in kbps
PublicWhether to list the stream on the Icecast server directory

br\u016bhi pushes track title and artist to the Icecast server on every track change using the ICY metadata mechanism. Most Icecast-compatible players display this as “Now Playing”.

Shoutcast 1.x uses the proprietary ICY protocol. Configuration is the same as Icecast with the addition of a stream ID for multi-stream Shoutcast servers.

HLS (HTTP Live Streaming) produces .ts segment files and an .m3u8 playlist, served via a standard HTTP server.

FieldDescription
Segment directoryWhere to write segment files
Segment durationLength of each .ts segment (seconds)
Window sizeNumber of segments kept in the rolling playlist
VOD modeKeep all segments for video-on-demand

br\u016bhi performs atomic playlist updates — the .m3u8 is written atomically so players never see a partial file.

SRT (Secure Reliable Transport) is a low-latency protocol designed for contribution links over the public internet.

FieldDescription
ModeCaller (br\u016bhi connects out)
HostRemote SRT receiver hostname or IP
PortRemote SRT port
LatencySRT buffer latency in milliseconds (default: 120 ms)
EncryptionAES-128 or AES-256 (optional)
PassphraseAES passphrase (required if encryption enabled)

RTP (Real-time Transport Protocol) sends audio over UDP per RFC 3550.

FieldDescription
HostTarget IP (unicast or multicast address)
PortUDP port
TTLMulticast TTL (for multicast groups)

RTP output uses MTU-aware chunking to avoid IP fragmentation.

You can save your output configuration as a named profile and switch between profiles instantly. This is useful for shows with different requirements (e.g., a high-bitrate profile for studio quality and a low-bitrate mobile profile).

Profiles are stored in the database and persist across restarts.

Desktop: Click Start Broadcast in the output panel, or use ⌘⇧B. Stop with ⌘⇧S. Each output can also be started and stopped individually.

Cloud: Broadcast outputs are managed per-station from the dashboard’s Output Config panel. Outputs can also be reloaded via the Liquidsoap telnet interface without restarting the stream.