Gentoo Logo

Streaming-Radio mit SHOUTcast

Inhalt:

1.  Einrichten eines SHOUTcast Servers

Installieren der Dateien

Den SHOUTcast Server finden Sie im Paket media-sound/SHOUTcast-server-bin. Sie können ihn mit folgendem Kommando installieren:

Befehlsauflistung 1.1: SHOUTcast installieren

# emerge shoutcast-server-bin

Der SHOUTcast Server wird nun installiert. Der nächste Schritt ist die Konfiguration Ihres neuen SHOUTcast Servers.

Konfiguration des SHOUTcast Servers

Nachdem der SHOUTcast Server nun installiert ist, muss er konfiguriert werden. Die Konfigurationsdatei finden Sie in /etc/shoutcast/sc_serv.conf. Lassen Sie uns mit der Konfiguration beginnen. Stellen Sie sicher, dass Sie root sind und öffnen Sie die Konfigurationsdatei mit Ihrem Lieblingseditor. Ich werde für dieses Beispiel vi benutzen:

Befehlsauflistung 1.2: Öffnen der Konfigurationsdatei

(Installieren sie zuerst SHOUTcast Trans)
# emerge shoutcast-trans-bin
(Öffnen Sie darauf die SHOUTcast Trans Konfigurationsdatei)
# vi /etc/shoutcast/sc_serv.conf

Das wird die Konfigurationsdatei des SHOUTcast Servers anzeigen. Hier sehen Sie die Konfigurationsdatei und die verschiedenen Optionen, die Sie setzen können. Lassen Sie uns nun ansehen, wie Sie die einzelnen Optionen verwenden können.

Notwendige Optionen

Befehlsauflistung 1.3: Setzen des Benutzer-Limits

; MaxUser.  The maximum number of simultaneous listeners allowed.
; Compute a reasonable value for your available upstream bandwidth (i.e. if
; you have 256kbps upload DSL, and want to broadcast at 24kbps, you would
; choose 256kbps/24kbps=10 maximum listeners.)  Setting this value higher
; only wastes RAM and screws up your broadcast when more people connect
; than you can support.
MaxUser=10

Hier wird die maximale Anzahl an Benutzern festgelegt. Wie in der Überschrift bereits angedeutet, ist es unklug, 100 Benutzer bei einem Upload von 256 kbps einzustellen (das ist die Anzahl, die ich gesetzt habe, da mein Upload dem entspricht). Wenn Sie den SHOUTcast Server verwenden, um ein LAN zu versorgen, können Sie diesen Wert vermutlich VIEL höher einstellen (auf die erwähnten 100 ohne Probleme). Bitte denken Sie daran, die von Ihnen verwendete Bandbreite nicht zu verschwenden. Bandbreite ist ein sehr kostenintensiver Posten für ISPs und Einige werden Ihren Account abschalten, Ihnen hohe Beträge in Rechnung stellen, oder beides.

Befehlsauflistung 1.4: Festlegen des Passworts

; Password.  While SHOUTcast never asks a listener for a password, a
; password is required to broadcast through the server, and to perform
; administration via the web interface to this server.  This server should
; consist of only letters and numbers, and is the same server your broadcaster
; will need to enter in the SHOUTcast Source Plug-in for Winamp.  THIS VALUE
; CANNOT BE BLANK.
Password=ein_hart_zu_knackendes_passwort

Dies ist die Stelle an der Sie das Passwort festlegen. Das Passwort selbst ist in Klartext. Aus Sicherheitsgründen empfehle ich DRINGEND, keine Passworte zu verwenden, die benutzt werden um kritische Systemkomponenten oder andere sensitive Informationen schützen. Lassen Sie das Kennwort so zufällig wie möglich aussehen, mit einer Kombination aus Ziffern und Buchstaben. Dieses Passwort wird von SHOUTcast Trans (oder einem anderen Inhaltslieferanten) verwendet, um sich mit dem Server zu verbinden und Stream-Inhalte zur Verfügung zu stellen.

Befehlsauflistung 1.5: Einstellen des Ports

; PortBase. This is the port number your server will run on.  The
; value, and the value + 1 must be available.  If you get a fatal error when
; the DNAS is setting up a socket on startup, make sure nothing else on the
; machine is running on the same port (telnet localhost portnumber -- if you
; get connection refused then you're clear to use that port).  Ports less than 1024
; may require root privileges on *nix machines.  The default port is 8000.
PortBase=8000

Dieser Wert bestimmt, welchen Port Benutzer verwenden werden, um sich mit Ihrem SHOUTcast Server zu verbinden. Die Standardeinstellung ist 8000, weil diese Einstellung von den meisten Programmen die fähig sind, mit mp3-Servern umzugehen, verwendet wird (Audacious, winamp etc.). Wie gesagt, wenn Sie einen Port kleiner als 1024 nutzen wollen, müssen Sie root sein. Wie auch immer, ich rate dringend davon ab, einen Port kleiner als 1024 für Ihren SHOUTCAST Server zu verwenden.

Befehlsauflistung 1.6: Protokollierung einstellen

; LogFile: file to use for logging. Can be '/dev/null' or 'none'
; or empty to turn off logging. The default is ./sc_serv.log
; on *nix systems or sc_serv_dir\sc_serv.log on win32.
; Note: on win32 systems if no path is specified the location is
; in the same directory as the executable, on *nix systems it is in the
; current directory.
LogFile=/var/log/SHOUTcast.log

Hier stellen Sie den Ort für Ihre SHOUTcast Server Log-Datei ein. Das Ebuild hat es auf /dev/null gesetzt, daher müssen Sie es ändern um eine Log-Datei zu erhalten. Ich habe es auf die übliche Örtlichkeit, /var/log/ eingestellt. Sie können den Ort aber frei wählen.

Befehlsauflistung 1.7: Echtzeit-Statistik einschalten

; RealTime displays a status line that is updated every second
; with the latest information on the current stream (*nix and win32
; console systems only)
RealTime=0

Mit dieser Einstellung werden Informationen über das gerade abgespielte Lied mit einem Abstand von einer Sekunde auf stdout ausgegeben. Diese Einstellung wird vom Ebuild ausgeschaltet, um den SHOUTcast Daemon so leise wie eben möglich laufen zu lassen. Setzen Sie diese Einstellung auf 1, wenn Sie diese Informationen jede Sekunde haben möchten. Wie auch immer, ich empfehle Ihnen, hierfür die Statusseite zu verwenden.

Befehlsauflistung 1.8: Echtzeit-Protokollierung einschalten

; ScreenLog controls whether logging is printed to the screen or not
; on *nix and win32 console systems. It is useful to disable this when
; running servers in background without their own terminals. Default is 1
ScreenLog=0

Diese Einstellung ist durch das Ebuild standardmäßig ausgeschaltet, damit der Daemon so leise wie eben möglich läuft. Diese Einstellung wird jedes Ereignis (Verbindungsaufnahmen und -abbrüche etc.) auf stdout ausgegeben. Da die Protokolldatei dasselbe tut, empfehle ich, diese zu verwenden.

Befehlsauflistung 1.9: Setzen der letzten, angezeigten Liednummer

; ShowLastSongs specifies how many songs to list in the /played.html
; page.  The default is 10.  Acceptable entries are 1 to 20.
ShowLastSongs=10

Wie es der Titel schon verrät, stellt dieser Wert ein, wie viele der zuletzt gespielten Lieder von /played.html angezeigt werden. Wenn Sie hier einen größeren Wert als 20 wählen, sollten Sie etwas mehr Kaffee in Erwägung ziehen.

Befehlsauflistung 1.10: Einstellen des Protokollierung von Dateisystem-Modifikationen

; TchLog decides whether or not the DNAS logfile should track yp
; directory touches.  Adds and removes still appear regardless of
; this setting.
; Default is yes
; TchLog=yes

Diese Einstellung schaltet das Protokollieren von Verzeichnis-Modifikationen durch das DNAS (Distributed Network Audio Server), oder kurz SHOUTcast, ein oder aus. Empfohlen wird diese Einstellung für alle, die eine Protokollierung mit der maximal möglichen Sicherheit haben möchten. Heim- oder Gelegenheitsnutzer werden dies sicher nicht benötigen.

Befehlsauflistung 1.11: Protokollierung von HTTP-Anfragen einschalten

; WebLog decides whether or not hits to http:// on this DNAS will
; be logged.  Most people leave this off because the DSP plug-in
; uses http:// calls to update titles and get the listener count,
; which takes up a lot of log space eventually.  If you want to
; see people making hits on your admin.cgi or index pages, turn
; this back on.  Note that this setting does NOT affect XML stats
; counters for hits to http:// pages.
; Default is no.
; WebLog=no

Dies gibt an, ob Zugriffe auf den HTTP Server, den SHOUTcast zur Verfügung stellt, protokolliert werden sollen oder nicht. Auch hier ist dies wieder für diejenigen zu empfehlen, die eine höchstmöglich sichere Protokollierung wünschen, nicht aber für den Heim- und Gelegenheitsnutzer.

Befehlsauflistung 1.12: W3C-Protokollierung einschalten

; W3CEnable turns on W3C Logging.  W3C logs contain httpd-like accounts
; of every track played for every listener, including byte counts those listeners
; took.  This data can be parsed with tools like Analog and WebTrends, or given
; to third parties like Arbitron and Measurecast for their reporting systems.
; Default is Yes (enabled).
W3CEnable=Yes

; W3CLog describes the name of the logfile for W3C logging.  Default logfile is
; sc_w3c.log, in the same directory wherever the DNAS gets started from.
W3CLog=/dev/null

Die erste Option schaltet die W3C-Protokollierung ein. Dieser Typ Protokollierung kann sehr einfach mittels der empfohlenen, aufgelisteten Programme analysiert werden. Dies ist empfehlenswert für Alle, die eine möglichst genaue Statistik haben möchten. Die zweite Option gibt an, wo das W3C-Protokoll gespeichert werden soll. Das Ebuild setzt dies auf /dev/null.

Netzwerk-Konfiguration

Befehlsauflistung 1.13: Einstellen der Quell-IP

; SrcIP, the interface to listen for source connections on (or to make relay
; connections on if relaying). Can and usually will be ANY or 127.0.0.1
; (Making it 127.0.0.1 will keep other machines from being able to
; broadcast using your SHOUTcast Server )
SrcIP=ANY

Die SrcIP Variable gibt an, von welcher IP der zu sendende Inhalt kommt. Dies kann ein anderer Server sein (relaying), localhost (üblich) oder irgendeine andere IP, die von Ihrer Schnittstelle zur Verfügung gestellt wird. Setzt man dies auf localhost, verhindert man, dass irgendein anderer Server Ihren Server als Sendequelle verwendet. Standardeinstellung ist ANY und führt dazu, dass Ihr Server jede IP als Quelle verwendet. Aus Sicherheitsgründen ist es besser, dies auf eine spezielle IP einzustellen.

Befehlsauflistung 1.14: Einstellen der Ziel-IP

; DestIP, IP to listen for clients on (and to contact yp.SHOUTcast.com)
; can and usually will be be ANY. If your machine has multiple IP addresses,
; set this to the one you want it to be accessed by.
DestIP=ANY

Dies bestimmt, mit welcher IP Ihrer Schnittstelle sich Benutzer verbinden können. Dies kann localhost sein (wenn Sie unsozial sind und nur zu sich selbst senden wollen), eine private IP (192.168.0.101 um es einem lokalen Netzwerk zur Verfügung zu stellen) oder Ihre externe IP (zum Beispiel 209.204.249.201 um an ein WAN zu senden, jedoch nicht an ein LAN). In den meisten Fällen können Sie Ihre Sendung erreichen, indem Sie 127.0.0.1 anstelle des hier aufgeführten verwenden. ANY veranlasst Ihren SHOUTcast Server, sich auf allen verfügbaren IP-Adressen zur Verfügung zu stellen.

Befehlsauflistung 1.15: Einstellen des proxy/yp.SHOUTcast.com Ports

; Yport, port to connect to yp.SHOUTcast.com on. For people behind caching
; webproxies, change this to the alternate port (666 is what it might be,
; check www.SHOUTcast.com if you have problems). Otherwise, leave this at 80.
; We're actively working on re-opening port 666, but as of release the only
; working port is port 80.
Yport=80

Diese Einstellung hat 2 Funktionen. Die erste ist der Port, mit dem man sich zu yp.SHOUTcast.com verbindet. yp.SHOUTcast.com ist die Seite von nullsoft für öffentliche Server, damit Benutzer wissen, wo Sie Sendungen zuhören können. Benutzer können auf dieser Seite nach Ihrem Server suchen. Die zweite ist die Verwendung für Web-Proxies. Stellen Sie dies auf den Port ein, den Sie für Proxy-Verbindungen verwenden wollen und stellen Sie DestIP auf Ihren Proxy zum Senden ein.

Befehlsauflistung 1.16: Konfigurieren von rückwärtigem DNS

; NameLookups.  Specify 1 to perform reverse DNS on connections.
; This option may increase the time it takes to connect to your
; server if your DNS server is slow.  Default is 0 (off).
NameLookups=0

Mit dieser Option geben Sie an, ob Sie reverse DNS-Auflösung von Clients ausführen wollen oder nicht. Dies würde eine IP Adresse nehmen und den Versuch starten den passenden Hostnamen herauszufinden. Verwenden Sie diese Einstellung für Protokollierungszwecke, um einen detaillierteren Bericht zu erhalten.

Befehlsauflistung 1.17: Relaying einrichten

; RelayPort and RelayServer specify that you want to be a relay server.
; Relay servers act as clients to another server, and rebroadcast.
; Set RelayPort to 0, RelayServer to empty, or just leave these commented
; out to disable relay mode.
; RelayPort=8000
; RelayServer=192.168.1.58

Hiermit stellen Sie ein, dass Ihr Server als Relay Server arbeiten soll. Relay Servers werden häufig verwendet, um eine Verbindung mit niedriger Bandbreite zu verwenden, die nur zu einem Client senden kann und die eigene, hohe Bandbreite für Verbindungen zu mehreren Clients zu benutzen. RelayPort gibt den Port und die IP-Adresse des SHOUTcast Servers an, für den Sie als Relay fungieren möchten. Kommentieren Sie dies aus, wenn Sie nicht planen, Ihren Server als Relay zu verwenden.

Server Konfiguration

Befehlsauflistung 1.18: Setzen des Admin-Kennworts

; AdminPassword.  This password (if specified) changes the
; behavior of Password to be a broadcast-only password, and
; limits HTTP administration tasks to the password specified
; here.  The broadcaster, with the password above, can still
; log in and view connected users, but only the AdminPassword
; will grant the right to kick, ban, and specify reserve hosts.
; The default is undefined (Password allows control for both
; source and admin)
; AdminPassword=adminpass

Beim Setzen dieses Kennworts wird ein Sender (broadcaster) und ein Administrator erzeugt (mit Sender ist hier die Person gemeint, die die Musikstücke zum Senden auswählt und so das Programm bestimmt). Der Sender kann sich mit einem Kennwort anmelden und Verbindungen beobachten. Wenn die Person auf dem Server administrieren, Benutzer rausschmeißen oder bannen will, muss sie das Admin-Kennwort haben. Diese Option bietet spezifischere Rollen auf dem Server. Dies wird empfohlen, wenn der Sender und der Administrator nicht dieselbe Person sind.

Befehlsauflistung 1.19: Einstellen des automatischen Verbindungsabbruchs für Benutzer

; AutoDumpUsers controls whether listeners are disconnected if the source
; stream disconnects. The default is 0.
AutoDumpUsers=0

Dies bestimmt, ob Benutzer aus dem System geworfen werden, wenn die Sendung aus irgendeinem Grund abreißt. Dies ist auf 0 eingestellt, so dass Clients entweder selbst einen Timeout erhalten oder weiter versuchen, die Sendung zu puffern. Verwenden Sie dies, wenn Sie kurze Unterbrechungen erwarten.

Befehlsauflistung 1.20: Einstellen des Quell-Timeouts

; AutoDumpSourceTime specifies how long, in seconds, the source stream is
; allowed to be idle before the server disconnects it. 0 will let the source
; stream idle indefinitely before disconnecting. The default is 30.
AutoDumpSourceTime=30

Hier wird angegeben, wann der SHOUTcast Server aufgeben soll, auf eine Quelle (meist ein Relay Server) für den zu versendenden Inhalt zu warten. Alles zwischen 30 und 60 sollte ein vernünftiger Wert hierfür sein.

Befehlsauflistung 1.21: Einstellen des Inhalts-Verzeichnis

; ContentDir specifies the directory location on disk of where to stream
; on-demand content from.  Subdirectories are supported as of DNAS 1.8.2.
; Default is ./content/, meaning a directory named content in the same directory
; as where sc_serv was invoked from.
ContentDir=/opt/SHOUTcast/content/

Das ContentDir gibt an, wo abrufbarer Inhalt abgelegt werdensoll. Zum Beispiel wenn Sie eine Ansage an Mitarbeiter versenden wollen, könnten Sie dieses Verzeichnis für diesen Zweck verwenden. Das SHOUTcast Ebuild setzt dies für Sie auf /opt/SHOUTcast/content. Um es zu verwenden, legen Sie ein MP3 in das Inhalts-Verzeichnis und öffnen Sie mit Ihrem Browser diese URL: http://example.com:[port]/content/mp3name.pls. Der SHOUTcast Server wird automatisch eine streaming media kompatible Abspielliste für das MP3 erstellen und es auf Verlangen versenden. Verwenden Sie dies als eine Alternative zu SHOUTcast Trans als Quelle für zu versendende Medien.

Befehlsauflistung 1.22: Einstellen einer Intro-Datei

; IntroFile can specify a mp3 file that will be streamed to listeners right
; when they connect before they hear the live stream.
; Note that the intro file MUST be the same samplerate/channels as the
; live stream in order for this to work properly. Although bitrate CAN
; vary, you can use '%d' to specify the bitrate in the filename
; (i.e. C:\intro%d.mp3 would be C:\intro64.mp3 if you are casting at 64kbps).
; The default is no IntroFile
; IntroFile=c:\intro%d.mp3

Dies erlaubt es Ihnen, eine Intro-Datei zu konfigurieren. Jedes Mal, wenn sich ein Benutzer mit dem Server verbindet, wird er diese Datei hören. Wie gesagt muss die Bitrate der Sendung und die des Intro-Lieds übereinstimmen, andernfalls wird es nicht funktionieren. Sie können allerdings Dateien wie z.B. intro128.mp3 und intro64.mp3 hinterlegen. Benutzer, die sich mit 128 kbit/s verbinden werden dann die Datei intro128.mp3 hören und Benutzer mit 64 kbit/s entsprechend die Datei intro64.mp3.

Befehlsauflistung 1.23: Einstellen einer Backup-Datei

; BackupFile can specify a mp3 file that will be streamed to listeners over
; and over again when the source stream disconnects. AutoDumpUsers must be
; 0 to use this feature. When the source stream reconnects, the listeners
; are rejoined into the live broadcast.
; Note that the backup file MUST be the same samplerate/channels as the
; live stream in order for this to work properly. Although bitrate CAN
; vary, you can use '%d' to specify the bitrate in the filename
; (i.e. C:\backup%d.mp3 would be C:\backup32.mp3 if you are casting at 32kbps).
; The default is no BackupFile
; BackupFile=C:\intro%d.mp3

Es ist hier ähnlich wie oben, allerdings wird sie gespielt wenn die Sendequelle endet und nicht wenn die Benutzer die Verbindung beenden. Dies wird nur dann funktionieren, wenn AutoDumpusersauf 0 gesetzt ist.

Befehlsauflistung 1.24: Einstellen des Titel-Formats

; TitleFormat specifies a format string for what title is sent to the listener.
; For example, a string of 'Justin Radio' forces the title 'Justin Radio' even
; when the source changes the title. You can use up to one '%s' in the string
; which lets you contain the title from the source. For example, if your
; TitleFormat is 'Justin Radio: %s', and the source plug-in's title is
; 'Billy plays the blues', then the net title is
; 'Justin Radio: Billy plays the blues'. Note: only works on non-relay servers.
; The default is no format string.
TitleFormat=Chris Gentoo Beats: %s

Dies setzt einen festen Titel für Ihren SHOUTcast Server. Verwenden Sie dies wenn Ihre Sendequelle vom Namen Ihres SHOUTcast Servers. Dies funktioniert NICHT für Relay Server.

Befehlsauflistung 1.25: Einstellen des URL-Formats

; URLFormat specifies a format string for what URL is sent to the listener.
; Behaves like TitleFormat (see above).
; The default is no format string.
; URLFormat=http://www.server.com/redirect.cgi?url=%s

Hier ist es identisch zum Titel-Format, außer dass die oben aufgeführte URL anstelle der URL der Sendequelle verwendet wird.

Befehlsauflistung 1.26: Einstellen des öffentlichen Status der Sendequelle

; PublicServer can be always, never, or default (the default, heh)
; Any setting other than default will override the public status
; of the source plug-in or of a SHOUTcast Server that is being relayed.
PublicServer=default

Hier geben Sie an, ob oder ob Sie nicht wünschen, dass Ihr Server als öffentlicher Server aufgeführt wird, auch wenn Ihr Relay Server/Quelle Plug-In als solches aufgeführt ist.

Befehlsauflistung 1.27: Relaying erlauben

; AllowRelay determines whether or not other SHOUTcast Servers will be
; permitted to relay this server.  The default is Yes.
AllowRelay=Yes

AllowRelay bestimmt, ob es anderen Servern erlaubt ist, Ihren Inhalt zu verwenden. Wenn Sie nicht glauben, dass Sie Relay zulassen wollen, setzen Sie dies auf No.

Befehlsauflistung 1.28: Relays erlauben, die Quelle öffentlich anzuzeigen

; AllowPublicRelay, when set to No, will tell any relaying servers not
; to list the server in the SHOUTcast directory (non-public), provided
; the relaying server's Public flag is set to default.  The default is
; Yes.
AllowPublicRelay=Yes

AllowPublicRelay gibt an, ob Sie im SHOUTcastpublic-Verzeichnis des Servers, den Sie als Relay verwenden und der bereits aufgeführt wird, gelistet werden wollen oder nicht. Beachten Sie bitte, dass PublicServer diese Einstellung außer Kraft setzen kann.

Befehlsauflistung 1.29: MetaInterval einstellen

; MetaInterval specifies how often, in bytes, metadata sent.
; You should really leave this at the default of 32768, but the option is
; provided anyway.
MetaInterval=32768

Lassen Sie dies bitte wie es ist.

Zugriffs-Konfiguration

Befehlsauflistung 1.30: Setzen einer maximalen Hörlänge

; ListenerTimer is a value in minutes of maximum permitted time for
; a connected listener.  If someone is connected for longer than this
; amount of time, in minutes, they are disconnected.  When undefined,
; there is no limit defined.  Default is undefined.
; ListenerTimer=600

Ich wüsste nicht, warum Sie dies brauchen sollten. Grundsätzlich beenden Sie die Verbindung von Benutzern, die zu lange verbunden sind. Das Einzige, was ich mir vorstellen könnte ist, nur in der Verbindung wartende Benutzer oder Benutzer, von denen Sie denken, dass sie was anderes tun sollten als Ihrer Sendung zuzuhören, trennen zu können. Der Wert wird in Minuten angegeben.

Befehlsauflistung 1.31: Einstellen der Bann-Datei

; BanFile is the text file sc_serv reads and writes to/from
; for the list of clients prohibited to connect to this
; server.  It's automatically generated via the web
; interface.
; BanFile=sc_serv.ban

Dies ist der Dateiname für die Liste an Clients, die von Ihrem Server verbannt sind. Die Standardeinstellung ist sc_serv.ban aber Sie können für diese Einstellung jeden Namen verwenden, den Sie möchten.

Befehlsauflistung 1.32: Einstellen der Rip-Liste

; RipFile is the text file sc_serv reads and writes to/from
; for the list of client IP addresses which are *ALWAYS* permitted
; to connect to this server (useful for relay servers).
; This file is automatically generated via the web
; interface.  Note that if your server is FULL, and someone
; from a Reserved IP connects, the DNAS will force the person
; listening for the longest time off to make room for the new
; connection.
; RipFile=sc_serv.rip

So grimmig wie sich das anhört (RIP steht für Rest in peace, im deutschen "Ruhe in Frieden"), so heißt es hier "Reserved IP". Verwenden Sie diese Einstellung für Freunde oder andere Menschen, die Sie für wichtiger erachten, als andere Benutzer. Wenn Sie bereits an die maximale Anzahl an Benutzern senden und eines Ihrer Rip-Mitglieder versucht, sich mit dem Server zu verbinden, wird die am längsten verbundene Person vom Server geschmissen, um die Verbindung zu ermöglichen.

Befehlsauflistung 1.33: Einstellen, dass sich nur RIP-Benutzer verbinden können

; RipOnly, when set to Yes, will only allow IP addresses listed in the Reserved
; IP list to connect and relay.  All other connections for listening will be denied.
; This is really only useful for servers whose sole purpose is to provide the
; primary feed to all public relays.  Setting this value to Yes also forces the
; server into Private mode, since listing this server in the directory would
; be pointless.  Default is No.
; RipOnly=No

Hiermit erlauben Sie nur RIP-Mitgliedern, sich mit Ihrem SHOUTcast Server zu verbinden. Sie können dies entweder für private Radiosendungen verwenden oder um nur bestimmten Relays zu erlauben, auf Ihre Sendungen zuzugreifen.

Massen-Konfiguration

Befehlsauflistung 1.34: Eindeutige Variablen setzen

; Unique: assigns a variable name for use in any configuration item which points to a
; file.  Useful for servers running lots of SHOUTcast Servers that have similar
; configuration parameters, excepting logfile names, banfile names, etc.  Any
; parameter that takes a pathname can include the character $, which will
; substitute $ for the variable assigned here.  Keep in mind that the unique
; variable can only be used after it is defined, so don't try to use a unique
; variable substitution in a path before you define it.  For example, you
; could set:
; Unique=my_server
; and then define Log=/usr/local/SHOUTcast/$.log in an included configuration
; file.  Default is Unique=$, so that by default any file with $ in the name
; won't substitute anything at all.

Es wäre sicherlich sehr ärgerlich, wenn man all die Protokoll-, Bann- usw. Dateien auf etwas einheitliches setzen müsste, wenn man mehrere SHOUTcast Server betreibt. Anstelle dessen können Sie Unique auf etwas setzen und $ wird dann durch das ersetzt, worauf Unique gesetzt wurde. Zum Beispiel, wenn in einer Datei Unique=Jazz gesetzt wurde und eine andere Unique=Rock, dann würde Log=/var/log/$.log zu /var/log/Jazz.log in der einen Konfigurationsdatei und zu /var/log/Rock.log in der Anderen. Dies ist viel einfacher, wenn man viele SHOUTcast Server mit gleichen Konfigurationen betreiben will.

Befehlsauflistung 1.35: Einstellen von gemeinsamen Konfigurationsvariablen

; Include: instructs the sc_serv to read from the named configuration file,
; *at the point of insertion of the Include statement*, and process as though
; the included file was part of itself.  Note that all configuration parameters
; in the DNAS configuration file are processed first to last, so if an item is defined
; twice in a configuration, the last item to process will be the one that takes
; effect.  For this reason, it's usually a good idea to use the Includes first
; in a configuration file.
; example:
; Include=/usr/local/SHOUTcast/common.conf
; Default is not applicable.

Wenn Sie mehrere SHOUTcast Server betreiben und gleiche Konfigurationsvariablen verwenden möchten, ohne diese in jeder Konfigurationsdatei setzen zu müssen, können Sie Include auf eine Datei einstellen, die Einstellungen enthält, die in allen Konfigurationen gleich sind.

Optimierungs-Konfiguration

Befehlsauflistung 1.36: Einstellen der Anzahl verwendeter CPUs

; CpuCount is used to explicitly limit the DNAS to dominating a finite
; amount of processors in multiprocessor systems.  By default,
; SHOUTcast creates one thread for every processor it detects in the
; host system, and assigns listeners equally across all the threads.
; In the event SHOUTcast doesn't correctly determine the number of
; CPUs in your host, or if you for whatever reason want to force
; the DNAS to not use other processors, you can say so here.
; Default behavior is to use as many processors as the DNAS detects on
; your system.
; CpuCount=1

Auf Mehrprozessorsystemen können Sie diese Einstellung verwenden, um den SHOUTcast Server zu zwingen, genau die in CpuCount angegebene Anzahl an Prozessoren zu verwenden. Der Standard hier ist, einen Thread pro Prozessor und entsprechende "Zuhörer" (listeners) über alle Threads zu verwenden. Wenn Sie dies niedriger als die tatsächliche Anzahl Prozessoren Ihres Systems setzen, bleiben entsprechend viele Prozessoren für ander Aufgaben übrig.

Befehlsauflistung 1.37: Einstellen von Datenübertragungslücken

; Sleep defines the granularity of the client threads for sending data.
; DNAS 1.7.0, per client thread, will send up to 1,024 bytes of data
; per socket (or less depending on the window available), and then
; sleep for the provided duration before repeating the whole process.
; Note that making this value smaller will vastly increase CPU usage on
; your machine.  Increasing reduces CPU, but increasing this value too far
; will cause skips.  The value which seems most optimal for 128kbps
; streaming is 833 (833 microseconds per client poll) on our test labs.
; We wouldn't recommend setting it any lower than 100, or any higher than
; 1,024.  If you have a slower machine, set this number lower to fix
; skips.
; Default value is 833.
; Sleep=833

Der SHOUTcast Server wird den Sleep-Wert verwenden, um Lücken zwischen einzelnen Datensendungen zu bestimmen. Desto höher der Wert, desto länger die Lücke. Um so niedriger der Wert, umso kürzer die Lücke und umso höher die CPU-Belastung, die der SHOUTcast Server verursacht. Auf langsameren Systemen möchten Sie eventuell diesen Wert niedriger wählen, damit die Daten regelmäßiger an Ihre Benutzer gesendet werden. Am besten lässt man diesen Wert wie er ist.

Befehlsauflistung 1.38: Einstellen der XML-Ausgabe

; CleanXML strips some whitespace and linefeeds from XML output which
; confuses some (poorly written) XML parsers.  If you get XML rendering errors,
; try turning this on.  Default is No (off).
; CleanXML=No

Wahrscheinlich werden Sie sich über diese Einstellungen keine Gedanken machen müssen, solange Sie keinen eigenen XML-Parser verwenden wollen, um eigene Statistiken für Ihren Server zu erzeugen. Wenn der XML-Parser keine Leerzeichen und Zeilenumbrüche in XML verarbeiten kann, setzen Sie dies auf Yes und es sollte alles funktionieren.

Abschluss der Konfiguration

Ihr SHOUTcast Server sollte nun konfiguriert sein. Für Firmen, die SHOUTcast verwenden empfehle ich, W3C-Protokollierung einzuschalten, da es einfach eingelesen und für die Erstellung benutzerdefinierte Statistiken verwendet werden kann. Sie sollten zudem das AdministratorPassword setzen. Sie möchten eventuell auch einige der Massen-Konfigurations-Optionen verwenden, wenn Sie mehrere SHOUTcast Server erstellen.

Nach den Konfigurationseinstellungen werden wir nun daran gehen, den SHOUTcast zum Laufen zu bekommen. Wir werden mit einfachem Senden auf Anforderung beginnen und uns dann später SHOUTcast Trans zuwenden (da es etwas komplizierter ist).

2.  Mit dem SHOUTcast Server loslegen

Einrichten von Senden auf Anforderung (on demand streaming)

Senden auf Anforderung erstellt automatisch, wie im Konfigurations-Kapitel gezeigt, Abspiellisten für MP3 Dateien im Inhalts-Verzeichnis. Das SHOUTcast Server Ebuild setzt dieses Verzeichnis auf /opt/SHOUTcast/content für alle Ihre MP3s auf Abruf. Lassen Sie uns damit beginnen, eine einfache MP3-Datei auf Abruf zu erstellen.

Zunächst benötigen wir ein MP3 irgendwo her und packen es in das Inhalts- Verzeichnis. Wir werden diese Datei sample.mp3 aus einem /MP3 Verzeichnis nehmen, das ich erstellt habe.

Befehlsauflistung 2.1: Kopieren eines MP3 in das Inhalts-Verzeichnis

# cp sample.mp3 /opt/SHOUTcast/content/
# cd /opt/SHOUTcast/content/
# ls
sample.mp3

OK, jetzt ist die Datei kopiert. Nun müssen wir den SHOUTcast Server starten, damit auf die Datei zugegriffen werden kann.

Befehlsauflistung 2.2: Starten des SHOUTcast Servers

# /etc/init.d/shoutcast start
 * Starting Shoutcast Server...
*******************************************************************************
** SHOUTcast Distributed Network Audio Server
** Copyright (C) 1998-2004 Nullsoft, Inc.  All Rights Reserved.
** Use "sc_serv filename.ini" to specify an ini file.
*******************************************************************************
                                                                         [ ok ]

Das kleine Banner ist hier dazu da, sicherzustellen, dass nichts abgestürzt ist (z.B. das Sie wissen, dass Ihr Server wirklich gestartet ist). Ihr SHOUTcast Server ist nun gestartet. Aufgrund der Natur von Inhalten auf Abruf (on demand content), werden Sie NUR mit einem Browser darauf zugreifen können. MPlayer oder was auch immer sind nicht in der Lage es so abzuspielen, wie es ist. Ich verwende kmplayer um es direkt aus meinem Browser heraus abzuspielen. Sie können das Ergebnis im nächsten Bild sehen.


Abbildung 2.1: On Demand Content

Fig. 1: OnDemandContent

Einige Nutzer haben Audacious so eingerichtet, dass es ihre Audio Mime-Typen zu verarbeiten, so dass ihr Browser Audacious starten kann, um enthaltenen Stream abzuspielen. Nun da Sie in der Lage sind, mit Inhalten auf Abruf zu arbeiten, werden wir daran arbeiten, SHOUTcast Trans zu verwenden um einen echten Radio-Server (streaming radio) zu erstellen.

3.  SHOUTcast Trans konfigurieren

SHOUTcast Trans Einführung

SHOUTcast Trans steht für SHOUTcast Trans(coder), da es fähig ist, MP3s in geringere oder höhere Bandbreiten zu transformieren. SHOUTcast Trans arbeitet durch Senden von MP3s aus einer Abspielliste, die in der Konfigurationsdatei eingetragen ist. Wir werden mit der Konfiguration von SHOUTcast Trans beginnen, so dass wir eine echte Radiostation haben. Wir öffnen zuerst einmal die Konfigurationsdatei von SHOUTcast Trans, die hier zu finden ist: /etc/shoutcast/sc_trans.conf.

Befehlsauflistung 3.1: Öffnen der SHOUTcast Trans Konfigurationsdatei

# vi /etc/shoutcast/sc_trans.conf

Nun da wie die Konfigurationsdatei von SHOUTcast Trans geöffnet haben, werden wir beginnen, die Sendequelle (streaming source) einzurichten.

Konfiguration von SHOUTcast Trans

Befehlsauflistung 3.2: Einrichten der Abspielliste

; PlaylistFile (required EVEN IF RELAYING) - playlist file (to create, use
; find /path/to/mp3/directory -type f -name "*.mp3" > playlist_filename.lst
PlaylistFile=/opt/SHOUTcast/playlists/playlist.lst

Diese Einstellung sagt SHOUTcast, wo sie Ihren zu sendenden Inhalt findet. Sie erwartet eine existierende Datei, also lassen Sie uns fortfahren und eine Abspielliste erstellen. Ich werde relativ schnell eine aus meinem bereits zuvor erwähnten /Mp3 Verzeichnis erstellen.

Befehlsauflistung 3.3: Erstellen der Abspielliste

# find /Mp3 -type f -name "*.mp3" > /opt/SHOUTcast/playlists/playlist.lst

Nun, da die Abspielliste erstellt wurde, tragen wir diese in der Konfigurationsdatei ein und SHOUTcast Trans weiß nun, wo es die zu sendenden Dateien findet.

Befehlsauflistung 3.4: Einstellen von Server IP und Port

; Serverip/ServerPort are the target server to send to
Serverip=127.0.0.1
ServerPort=8000

Diese Einstellung entscheidet, wohin die Inhalte gesendet werden. In dieser Anleitung wird es die IP und der Porz des SHOUTcast Severs sein, den Sie zuvor eingerichtet haben (DestIP und PortBase).

Befehlsauflistung 3.5: Setzen des SHOUTcast Server Kennworts

; Password is the password on the sc_serv you're sending to.
Password=password_you_setup_in_sc_serv.conf

Dies ist dasselbe Kennwort, dass Sie während der SHOUTcast Server Konfiguration verwendet haben.

Befehlsauflistung 3.6: Einstellen Ihrer Sendungs-Informationen

; StreamTitle/URL/Genre define the data that appears on the directory and in the
; stream info.
StreamTitle=Chris Gentoo Beats
StreamURL=http://www.gentoo.org
Genre=JPOP Electronica And More!

Dies stellt den Titel Ihrere Sendung (z.B. Radio One), die URL (z.B. http://www.radio-one.com) und das Genre (z.B. Electronica Trance Tribal) ein.

Befehlsauflistung 3.7: Einstellen der Protokolldatei

; Logfile optionally denotes a text file to log sc_Trans to.  a kill -HUP
; will force a close and re-open of this file (but will also cease logging to
; the console)
LogFile=/var/log/sc_Trans.log

Dies zeigt auf die Protokolldatei für SHOUTcast Trans. Alle Protokollierungen gehen dort hinein.

Befehlsauflistung 3.8: Einstellen des Mischens

; Shuffle the playlist
Shuffle=1

Entscheiden Sie, ob oder ob Sie nicht wünschen, dass Lieder zufällig von Ihrer Abspielliste gespielt werden sollen. Die meisten Benutzer werden dies auf 1 setzen. Wenn Sie Liedbestellungen annehmen wollen, setzen Sie dies auf 0. Ich werde später erklären, wie das einzurichten ist.

Befehlsauflistung 3.9: Einrichten des Streams

; Bitrate/SampleRate/Channels empfohlene Werte:
; 8kbps 8000/11025/1
; 16kbps 16000/11025/1
; 24kbps 24000/22050/1
; 32kbps 32000/22050/1
; 64kbps mono 64000/44100/1
; 64kbps stereo 64000/22050/2
; 96kbps stereo 96000/44100/2
; 128kbps stereo 128000/44100/2
Bitrate=128000
SampleRate=44100
Channels=2
; Qualität reicht von 1-10. 1 ist das Beste, 10 das schnellste.
Quality=1

Mit Bitrate stellen Sie die Bitrate für Ihre Sendung ein. Sie kann von 8000 (8 kBit/s) bis 128000 (128 kBit/s) reichen. Samplerate setzt die Abtastrate der Sendung. Sie kann alle Werte von 11025 (11025 kHz) bis 44100 (44100 kHz) annehmen. Channels setzt die Anzahl der Kanäle, auf denen Ihre Sendung ausgestrahlt wird. Dies kann entweder 1 (mono) oder 2 (stereo) sein. Quality setzt die Sendungsqualität. Diese ist trotzdem auch von der Bitrate/Samplerate/Channels beeinflusst. Damit behandeln Sie die Komprimierung der Sendung. 1 gibt Ihnen die beste Qualität, 10 ergibt die beste Geschwindigkeit. Bedenken Sie die Bandbreite Ihrer Verbindung, wenn Sie diese Werte einstellen. Verwenden Sie diese Richtlinien, um die Werte zu bestimmen, mit denen Ihre MP3s gesendet werden sollen.

Befehlsauflistung 3.10: Einstellen des Überblendens

; Mode=0 for none, 1 for 100/100->100/0, 2 for 0/100->100/0
CrossfadeMode=1
; Length is ms.
CrossfadeLength=8000

Dies stellt die Überblendung (crossfading) von Liedern ein. Setzen sie dies auf 0, schalten Sie Überblendung aus. Setzen Sie es auf 1, wird Lied 1 ausgeblendet und Lied 2 eingeblendet. Setzen Sie es auf 2, wird Lied 1 eingeblendet und Lied 2 ausgeblendet. Length gibt an, wie lange die Überblendung in ms dauert.

Befehlsauflistung 3.11: Verwendung von ID3 einstellen

UseID3=1

Dies entscheidet, ob Sie den ID3-Tag für Informationen über Ihr MP3 nutzen wollen oder nicht.

Befehlsauflistung 3.12: Einstellen des Öffentlich-Status

; Public determines whether or not this station will show up in the directory
Public=0

Diese Einstellung legt fest, ob Sendungen öffentlich aufgelistet werden, wenn Sie relaying zu einem Server verwenden. Bedenken Sie, dass Sie dies in sc_serv.conf übersteuern können.

Befehlsauflistung 3.13: Einstellen der Interaktionsmöglichkeiten für Benutzer

; Put stuff here for user interaction (AOL IM, ICQ, IRC)
AIM=AIMHandle
ICQ=
IRC=SHOUTcast

Hier können Sie Informationen angeben, wie man Sie (der DJ) erreichen kann. Sie können AIM oder ICQ-Kanäle für Liederwünsche oder alles Mögliche einrichten. Sie können auch Ihren eigenen IRC-Channel einrichten, so dass Sie mit mehreren Benutzern gleichzeitig kommunizieren können.

Abschluß der SHOUTcast Trans Konfiguration

Ihr SHOUTcast Trans ist nun fertig eingerichtet um Sendungen an Ihren SHOUTcast Server zu schicken. Nun beginnen wir, unsere eigenen MP3s zu senden.

4.  Loslegen mit SHOUTcast Trans

SHOUTcast Trans starten

Da ich meistens SHOUTcast Trans mit SHOUTcast Server zusammen verwende, tendiere ich dazu, SHOUTcast Trans zu starten, welches dann SHOUTcast für Sie startet (wesentlich einfacher). Daher fahren wir mit dem Starten von SHOUTcast Trans fort.

Befehlsauflistung 4.1: Starten von SHOUTcast Trans und SHOUTcast Server

# /etc/init.d/shoutcast_trans start
 * Starting Shoutcast Server...
*******************************************************************************
** SHOUTcast Distributed Network Audio Server
** Copyright (C) 1998-2004 Nullsoft, Inc.  All Rights Reserved.
** Use "sc_serv filename.ini" to specify an ini file.
*******************************************************************************
                                                  [ ok ]
* Starting Shoutcast Trans...                     [ ok ]

Die SHOUTcast Trans Sendung anhören

Nun, nachdem SHOUTcast Trans gestartet wurde, wollen wir der Sendungn zuhören. Ich verwende MPlayer in diesem Beispiel, um die Sendung abzuspielen.

Befehlsauflistung 4.2: Ihren Stream hören

# mplayer -cache 1024 http://127.0.0.1:8000/
...
Playing http://127.0.0.1:8000/.
Connecting to server 127.0.0.1[127.0.0.1]:8000 ...
Name   : Chris Gentoo Beats
Genre  : JPOP Electronica And More!
Website: http://www.gentoo.org
Public : no
Bitrate: 128kbit/s
Cache size set to 1024 KBytes
Connected to server: 127.0.0.1
Cache fill:  9.38% (98304 bytes)    Audio file detected.
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
MP3lib: init layer2 and 3 finished, tables done
mpg123: Can't rewind stream by 156 bits!
AUDIO: 44100 Hz, 2 ch, 16 bit (0x10), ratio: 16000->176400 (128.0 kbit)
Selected audio codec: [mp3] afm:mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
Checking audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 44100 hz, little endian signed int
AF_pre: 44100Hz 2ch Signed 16-bit (Little-Endian)
AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit...
Video: no video
Starting playback...

Das war jetzt vielleicht etwas kurz. Den -cache Schalter habe ich eingefügt, um meine um einiges höheren Buffer-Einstellungen zu übersteuern. Und voilà! Sie hören nun die Sendung! Im nächsten Kapitel zeige ich Ihnen, wie Sie noch etwas mehr mit Ihrem SHOUTcast Server anfangen können.

5.  Fortgeschrittene Nutzung von SHOUTcast

Kommerzielle Verwendung

Firmen können SHOUTcast auf mehrere Arten verwenden:

  1. Verwenden Sie Sendungen auf Abruf (on demand streaming), um interessantere, tägliche Ankündigungen zu tätigen.
  2. Machen Sie öffentliche Bekanntmachungen verfügbar, wenn Sie passieren, lassen Sie Ihre Kunden auf den Punkt wissen, was abgeht. Danach archivieren Sie diese Inhalte als Sendung auf Abruf für späteren Zugriff.
  3. Machen Sie Interviews als Sendung und archivieren Sie sie dann für den Zugriff auf Abruf.

Es gibt natürlich noch mehr Möglichkeiten, SHOUTcast Server im Geschäft anstelle von langweiligem, altmodischen Text!

Mit SHOUTcast als DJ arbeiten

SHOUTcast Server ist einer der beliebtesten Server für beide, unerfahrene DJs und alte Hasen. Für die, die gerade damit anfangen, gibt es ein paar Wege, das Erlebnis für die Hörer Ihres SHOUTcast Servers zu verbessern. Ein Intro-Lied ist ein Schlüssel dazu. Es gibt den Hörern einen Eindruck von Ihrer Station. Stellen Sie sicher, dass Sie eines verwenden. Melden Sie ihren Server bei yp.SHOUTcast.com (beschrieben im Abschnitt SHOUTcast Server Konfiguration), so dass jeder weiß, wo Sie zu finden sind. Eine der einzigartigen Fähigkeiten ist, dass Wünsche angenommen werden können. Um Wünsche umsetzen zu können, müssen Sie zuerst das Mischen in der sc_Trans.conf abschalten. Halten Sie, ich würde sagen etwa 10, Lieder bereit um anfangen zu können. Dann fangen Sie mit dem Wünschen von Liedern in der Mitte an. Wenn jemand ein Lied wünscht, fügen Sie es am Ende der Abspielliste an. Dann können Sie dieses Skript verwenden, um zu steueren was SHOUTcast Trans mit Ihrer Abspielliste macht:

Befehlsauflistung 5.1: djcontrol

#!/bin/bash

case "$1" in
        "reload")
                kill -s USR1 `cat /var/run/SHOUTcast_Trans.pid`
                ;;
        "next")
                kill -s WINCH `cat /var/run/SHOUTcast_Trans.pid`
                ;;
        *)
                echo "Invalid command"
                ;;
esac

Wenn Sie das Lied zur Abspielliste hinzugefügt haben, müssen Sie SHOUTcast Trans mitteilen, dass Ihre Abspielliste um das gewünschte Lied geändert wurde.

Befehlsauflistung 5.2: Erneutes Laden der Abspielliste

# djcontrol reload

Sie sollten jetzt Ihre Hörer wissen lassen, nach welchem Lied der Wunsch gespielt wird. Oder Sie können die restlichen Lieder wie folgt überspringen:

Befehlsauflistung 5.3: Überspringen von Einträgen in der Abspielliste

# djcontrol next

Seien Sie bitte vorsichtig und überspringen Sie nicht zuviele Einträge, da es keine Möglichkeit gibt, auf den vorherigen Eintrag zurückzugehen. Wenn Sie den gewünschten Eintrag erreichen, startet das gewünschte Lied. Ich würde warten, bis ich etwa 5 Wünsche habe, bevor ich mit dem Abspielen der Lieder anfange. Auf diese Art müssen Sie nicht den ganzen Weg zum Anfang zurückgehen. Wenn Sie keine weiteren Wünsche mehr bekommen und denken, Ihre Wunschstunde ist vorbei, kopierenSie einfach Ihre nächste Abspielliste über die Wunsch-Abspielliste und laden Sie sie erneut. Wenn das aktuelle Lied vorbei ist, fängt die neue Abspielliste an.

Schlusswort

Damit sind wir am Ende der Anleitung zu SHOUTcast Server und SHOUTcast Trans. Ich hoffe Sie konnten von den hier gegebenen Informationen profitieren und bitte schreiben Sie mir EMails mit Kommentaren und Vorschlägen für diese Seite! Viel Vergnügen mit Ihrem SHOUTcast Server!



Drucken

Seite aktualisiert 2. November 2006

Die Originalversion dieser Übersetzung wird nicht länger gepflegt

Zusammenfassung: Dieses Dokument wird Sie durch alle notwendigen Schritte führen, die für das Einrichten eines Streaming-Radio Servers mit SHOUTcast Server und SHOUTcast Trans notwendig sind.

Chris White
Autor

Shyam Mani
Bearbeiter

Torsten Evers
Übersetzer

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.