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.
Output Types
Section titled “Output Types”| Output | Protocol | Typical use |
|---|---|---|
| Icecast | HTTP/1.0 PUT | Internet radio, most streaming servers |
| Shoutcast | ICY (Shoutcast 1.x) | Legacy Shoutcast servers |
| HLS | HTTP segments | Web players, CDN delivery |
| SRT | UDP (encrypted) | Low-latency contribution links |
| RTP | UDP unicast/multicast | Studio-to-transmitter links |
| File | Local disk | Recording the broadcast mix |
Encoders
Section titled “Encoders”Each output can use a different encoder and bitrate. Available encoders:
| Encoder | Format | Notes |
|---|---|---|
| MP3 (LAME) | .mp3 | Most compatible; CBR or VBR |
| AAC-LC (FDK-AAC) | .aac / .m4a | Better quality per bitrate than MP3 |
| Opus | .opus | Best quality at low bitrates; growing adoption |
| OGG Vorbis | .ogg | Open, good quality |
| FLAC | .flac | Lossless; file output and Icecast only |
| WAV | .wav | Uncompressed; file output and local use |
| Passthrough | — | Forward the encoder stream unchanged |
Multi-Output Fan-Out
Section titled “Multi-Output Fan-Out”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
Each output has independent back-pressure isolation — a slow or stalled output does not affect other outputs or the audio engine.
Icecast Output
Section titled “Icecast Output”Configuration
Section titled “Configuration”| Field | Description |
|---|---|
| Host | Icecast server hostname or IP |
| Port | Icecast HTTP port (default: 8000) |
| Mount | Mount point path (e.g., /station.mp3) |
| Username | Source user (default: source) |
| Password | Source password |
| Bitrate | Encoder bitrate in kbps |
| Public | Whether to list the stream on the Icecast server directory |
Dynamic Metadata
Section titled “Dynamic Metadata”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 Output
Section titled “Shoutcast Output”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 Output
Section titled “HLS Output”HLS (HTTP Live Streaming) produces .ts segment files and an .m3u8 playlist, served via a standard HTTP server.
| Field | Description |
|---|---|
| Segment directory | Where to write segment files |
| Segment duration | Length of each .ts segment (seconds) |
| Window size | Number of segments kept in the rolling playlist |
| VOD mode | Keep 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 Output
Section titled “SRT Output”SRT (Secure Reliable Transport) is a low-latency protocol designed for contribution links over the public internet.
| Field | Description |
|---|---|
| Mode | Caller (br\u016bhi connects out) |
| Host | Remote SRT receiver hostname or IP |
| Port | Remote SRT port |
| Latency | SRT buffer latency in milliseconds (default: 120 ms) |
| Encryption | AES-128 or AES-256 (optional) |
| Passphrase | AES passphrase (required if encryption enabled) |
RTP Output
Section titled “RTP Output”RTP (Real-time Transport Protocol) sends audio over UDP per RFC 3550.
| Field | Description |
|---|---|
| Host | Target IP (unicast or multicast address) |
| Port | UDP port |
| TTL | Multicast TTL (for multicast groups) |
RTP output uses MTU-aware chunking to avoid IP fragmentation.
Named Output Profiles
Section titled “Named Output Profiles”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.
Starting and Stopping Broadcast
Section titled “Starting and Stopping Broadcast”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.