sc_trans: Automatisches Radio mit mehreren Outputs
Für unbeaufsichtigten 24/7-Betrieb braucht man einen Encoder, der selbstständig Musik abspielt, Jingles einspielt und mehrere Server gleichzeitig versorgt. sc_trans (SHOUTcast Transcoder) kann genau das — dieser Beitrag zeigt die Konfiguration für einen zentralen Encoder mit mehreren Ausgabe-Streams.
Was ist sc_trans?
sc_trans ist Nullsofts Encoder-Tool für SHOUTcast. Es liest Audiodateien von der Festplatte, transkodiert sie in Echtzeit auf die gewünschte Bitrate und schickt den Stream direkt an einen oder mehrere SHOUTcast-DNAS-Server. Kein separater Audioplayer nötig, kein Soundkarten-Loopback — alles in einem Prozess.
Grundstruktur der Konfiguration
[setup]
; Playlist (m3u oder Verzeichnis-Scan)
playlist=playlist.m3u
; Shuffle
shuffle=1
; Crossfade in ms
crossfade=2000
[encoder_1]
; MP3, 128 kbps, 44100 Hz, Stereo
type=mp3
bitrate=128
samplerate=44100
channels=2
Mehrere Outputs — der Kernvorteil
Ein einzelner sc_trans-Prozess kann denselben kodierten Stream an beliebig viele SHOUTcast-Server schicken. Das spart CPU-Ressourcen, weil der Audiostrom nur einmal kodiert wird:
[output_1]
; Primärserver
servertype=sc2
serverhost=127.0.0.1
serverport=8000
serverpass=quellenpasswort
streamid=1
[output_2]
; Sekundärserver (Relay, anderer Standort)
servertype=sc2
serverhost=relay.example.com
serverport=8000
serverpass=relaypasswort
streamid=1
[output_3]
; Dritter Output: andere Bitrate / anderer Mount
servertype=sc2
serverhost=127.0.0.1
serverport=8000
serverpass=quellenpasswort
streamid=2
Jingle-Einbindung
sc_trans kann Jingles automatisch zwischen Tracks einspielen:
[jingles]
; Alle 5 Tracks einen Jingle spielen
interval=5
dir=/opt/radio/jingles/
Redundanz und Ausfallsicherheit
Für ausfallsicheren Betrieb empfiehlt sich folgende Architektur:
- Primärer Encoder: Läuft auf einem stabilen Server, speist alle Outputs
- Fallback-Playlist auf dem DNAS: Falls der Encoder ausfällt, spielt der DNAS-Server eine lokale Notfallplaylist ab
- Watchdog: Überwacht sc_trans via
systemctl is-activeund startet bei Absturz neu
[Unit]
Description=SHOUTcast Transcoder
After=network.target
[Service]
Type=simple
User=radio
WorkingDirectory=/opt/radio
ExecStart=/opt/radio/sc_trans sc_trans.conf
Restart=on-failure
RestartSec=15s
[Install]
WantedBy=multi-user.target
Playlist-Management
sc_trans liest Standard-M3U-Playlists. Für dynamische Rotation kann man die Playlist periodisch aus einem Verzeichnis-Scan neu generieren:
#!/bin/bash
# Playlist täglich neu generieren
find /opt/radio/music/ -name "*.mp3" -o -name "*.flac" | shuf > /opt/radio/playlist.m3u
systemctl reload-or-restart sc_trans
Fazit
sc_trans ist schlank, stabil und braucht keine grafische Oberfläche — ideal für Server-Betrieb. Die Mehrfach-Output-Funktion ermöglicht gleichzeitig Primär- und Backup-Streams ohne mehrfache Kodierung. Wer mehr Kontrolle über Scheduling und Metadaten braucht, sollte sich Liquidsoap ansehen — das ist mächtiger, aber auch deutlich komplexer in der Konfiguration.