ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.
WikiIces2

Ices2

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Ices2 ist ein Source-Client aus dem Icecast-Projekt {en} . Ices2 sendet die Ausgabe der Soundkarte oder eine Abspielliste als einen Ogg/Vorbis-Stream an Icecast2-Sever.

Installation

Folgendes Paket muss installiert [1] werden:

  • ices2 (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install ices2 

sudo aptitude install ices2 

Die Datei /var/log/ices/ices.log muss angelegt [4] und dem Benutzer zugänglich gemacht werden [5].

Bedienung

Ices2 wird über .xml-Dateien konfiguriert. Unter /usr/share/doc/ices2/examples/ sind zwei Beispieldateien für das Senden des Soundtreiber-Signals (je nachdem, ob man ALSA oder OSS nutzt) und eine Beispielkonfiguration für das Senden einer Abspielliste, welche im einfachen Textformat erstellt werden kann. Der Programmaufruf erfolgt unter Angabe der Konfigurationsdatei:

ices2 </Pfad/Konfiguration.xml>  

Konfiguration

Genereller Aufbau

1
2
3
4
5
<?xml version="1.0"?>
 <ices>
  general settings # Generelle Einstellungen
  stream section   # Stream Abschnitt
 </ices>

Generelle Einstellungen

Diese Einstellungen betreffen IceS als Ganzes. Das folgende Beispiel ist ein nützliches Arbeits-Beispiel:

<background>0</background> # Auf 1 gesetzt arbeitet IceS im Hintergrund.
<logpath>/var/log/ices</logpath> # Pfad zur Log-Datei
<logfile>ices.log</logfile> # Name der Log-Datei
<logsize>2048</logsize> # maximale Größe einer Log-Datei in KB
<loglevel>3</loglevel> # Log-Level siehe unten
<consolelog>0</consolelog> # 1 bewirkt die Ausgabe der Log-Meldungen in der Konsole statt in die Log-Datei. Nicht zu empfehlen.
<pidfile>/var/log/ices/ices.pid</pidfile> # Erstellt eine Datei mit der Prozess-ID des laufenden IceS.
Log-Level

  • 1 - Nur Fehlermeldungen werden geloggt

  • 2 - Obige und Warnmeldungen werden geloggt

  • 3 - Obige und Informationsmeldungen werden geloggt

  • 4 - Obige und Debugmeldungen werden geloggt

Stream-Abschnitt

Hier sind die Einstellungen für den ein- und ausgehenden Datenstrom festgelegt.

1
2
3
4
5
<stream>
 <metadata>...</metadata>
 <input>...</input>
 <instance>...</instance>
</stream>

Metadata

1
2
3
4
5
6
<metadata>
 <name>Ubuntuusers Icecast2 Test Stream</name>
 <genre>Rock</genre>
 <description>This is the Ubuntuusers Icecast2 Radio Test Stream!</description>
 <url>http://wiki.ubuntuusers.de</url>
</metadata>

Dieser Abschnitt beschreibt, welche Informationen als Metadaten beim Verbinden an den Icecast-Server gesendet werden. Dieser Abschnitt gilt für alle Instanzen, kann aber vom Abschnitt einer einzelnen Instanz überschrieben werden.

Input

Dieser Bereich behandelt, wie die Audiodaten von Ices2 geholt werden. Es gibt verschiedene Wege, wie dies bewerkstelligt werden kann, meistens durch eine Abspielliste oder über das Signal der Soundkarte. Das Layout für die verschiedenen Inputmodule ist ähnlich. Innerhalb des Input-Abschnitts wird ein Modul-Tag zur Identifikation des in Frage kommenden Moduls benötigt, dem verschiedene Parameter mitgegeben werden können. Einzelheiten zu den Modul-Parametern werden später erläutert.

Instance

Mehrere Instanzen können definiert werden, um mehrere Encodierungs-Vorgänge zu erlauben, was nützlich ist, um einen Input in verschiedenen Bitraten ausgeben zu können. Jede Instanz definiert einen eigenen Satz von Einstellungen für den eingehenden Audio-Datenstrom. Jede Änderung am Input wird auf die Instanz angewendet.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<instance>
 <hostname>localhost</hostname>
 <port>8000</port>
 <password>hackme</password>
 <mount>/Beispiel1.ogg</mount>
 <yp>1</yp>
 <resample>
  <in-rate>44100</in-rate>
  <out-rate>22050</out-rate>
 </resample>
 <downmix>1</downmix>
 <savefile>/home/ices/dump/stream1.ogg</savefile>
 <encode>  
  <quality>0</quality>
  <nominal-bitrate>65536</nominal-bitrate>
  <maximum-bitrate>131072</maximum-bitrate>
  <minimum-bitrate>-1</minimum-bitrate>
  <managed>0</managed>
  <samplerate>22050</samplerate>
  <channels>1</channels>
  <flush-samples>11000</flush-samples>
 </encode>
</instance>
hostname

Setzt den hostname des Icecast-Servers der kontaktiert wird, dies kann ein Name oder eine IP-Adresse (ipv4 oder ipv6 auf Systemen, die ipv6 unterstützen) sein. Die Voreinstellung ist localhost.

port

Setzt den Port auf dem der Icecast-Server kontaktiert wird. Normalerweise 8000, kann aber in Abstimmung mit dem Server beliebig gewählt werden.

password

Zum Bereitstellen des Streams werden der Benutzername des Benutzers source und dessen Passwort für den Icecast-Server benötigt. Im Icecast2-Server sind dies beispielsweise source und hackme.

mount

Mountpoints (Einbindepunkte) werden verwendet um einen einzelnen Stream auf einem Icecast-Server zu identifizieren, sie müssen mit einem / beginnen und sollten mit .ogg enden.

yp

Streams werden nicht in den Yellow Pages gelistet, außer yp ist ausdrücklich eingestellt (Wert ist 1). In den Yellow Pages werden Internetradio-Stationen mit Namen, Beschreibung, Genre und laufendem Titel geführt, damit Zuhörer diese finden können (beispielsweise auf dir.xiph.org {en}).

Resample

1
2
3
4
<resample>
 <in-rate>44100</in-rate>
 <out-rate>22050</out-rate>
</resample>

Beim Encodieren oder Re-Encodieren kommt ein Punkt, an dem PCM-Audiodaten als Ogg/Vorbis encodiert werden. In manchen Situationen verlangt ein bestimmter Stream vielleicht eine niedrigere Samplerate um eine niedrigere Bitrate zu erreichen. Die Resample-Funktion verändert die Audiodaten, bevor sie den Encoder durchlaufen.

Die gängigsten Einstellungen sind 48000, 44100, 22050 und 11025, und es ist wirklich nur brauchbar, um eine niedrigere Samplerate zu erreichen. Die Samplerate mit IceS zu erhöhen ist nicht möglich.

Downmix

Einige Streams wollen ihre Bitrate noch weiter absenken, dazu wird die Anzahl der verwendeten Kanäle auf einen beschränkt. Die Umwandlung von Stereo in Mono ist allgemein üblich und wenn hier 1 eingestellt ist, werden die vorhandenen Kanäle zu einem Kanal (Mono) zusammengemischt. Wie bei der Resample-Funktion betrifft dies nur die Instanz, zu der es notiert ist.

Savefile

Manchmal soll der gesendete Stream auch gleich auf die Festplatte gespeichert werden, nützlich ist dies vorallem bei Live-Aufnahmen. Dazu muss hier nur der Pfad angegeben werden, wo der Stream abgespeichert werden soll.

encode

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<encode>  
 <quality>0</quality>
 <nominal-bitrate>65536</nominal-bitrate>
 <maximum-bitrate>131072</maximum-bitrate>
 <minimum-bitrate>-1</minimum-bitrate>
 <managed>0</managed>
 <samplerate>22050</samplerate>
 <channels>1</channels>
 <flush-samples>11000</flush-samples>
</encode>
quality

Setzt ein Qualitätsmaß für den Encoder. Die Einstellungsbreite liegt zwischen -1 und 10, wobei -1 die niedrigste Bitrate ist, und 10 die höchste (default 3), Dezimalwerte sind erlaubt, somit ist z.B. 1.5 erlaubt. Die aktuell verwendete Bitate hängt von der Einstellung der Vorbis-Bibliotheken, den Kanälen (Mono oder Stereo) und den zu encodierenden Audiodaten ab. Der Wert 0 für quality bei einer Samplerate von 44100hz und zwei Kanälen liegt im Normalfall bei 64kbps.

nominal-bitrate

Setzt eine Bitrate, die vom Encoder eingehalten werden soll. Die Einstellung kann als Alternative zu quality genutzt werden.

managed

Auf 1 gesetzt erlaubt dies die vollständige Verwaltung der Bitrate durch den Encoder. Dies wird zusammen mit nominal-bitrate, maximum-bitrate und minimum-bitrate benutzt, um einen Stream mit genaueren Anforderungen an die Bitrate zu erzeugen. Diese Einstellung führt allerdings zu höherer CPU-Last.

maximum-bitrate

Setzt die maximale Bitrate in bits pro Sekunde um die von einem Stream zu benutzende Bandbreite zu begrenzen. Funktioniert nur in Verbindung mit managed.

minimum-bitrate

Setzt die minimale Bitrate in bits pro Sekunde um die minimal von einem Stream benutzte Bandbreite zu begrenzen. Funktioniert nur in Verbindung mit managed. Da diese Funktion einen geringen Nutzen hat, sollte sie nicht wirklich Anwendung finden.

samplerate

Setzt die zum Encodieren verwendete Samplerate, welche entweder die Samplerate des Inputs oder das Ergebnis der resample-Funktion sein muss. Ein falsch gesetzer Wert führt dazu, dass der Stream sich zu schnell oder langsam anhört.

channels

Setzt die Anzahl der Kanäle, die encodiert werden sollen. Dies ist entweder die Anzahl der Kanäle des verwendeten Input-Modules oder 1, wenn downmix benutzt wird.

Input Module

ALSA

1
2
3
4
5
6
7
8
<module>alsa</module>
 <param name="rate">44100</param> # Samplerate in Hertz. 44100hz entspricht CD Qualität, manche Treiber bevorzugen 48000hz
 <param name="channels">2</param> # Anzahl der Kanäle. Normalerweise 2 für Stereo, 1 für Mono
 <param name="device">hw:0,0</param> # die Soundkarte
 <param name="periods">2</param> # Anzahl der zu erstellenden Interrupts
 <param name="buffer-time">500</param> # Buffergröße in Millisekunden
 <param name="metadata">1</param> # Metadaten-Update für Artist und Titel
 <param name="metadatafilename">/home/ices/metadata</param> # Datei aus der Metadaten gelesen werden sollen

Beispiel metadatafile

artist=raindog
title=meet yourself

OSS

1
2
3
4
5
6
<module>oss</module>
 <param name="rate">44100</param> # Samplerate in Hertz. 44100hz entspricht CD Qualität, manche Treiber bevorzugen 48000hz
 <param name="channels">2</param> # Anzahl der Kanäle. Normalerweise 2 für Stereo, 1 für Mono
 <param name="device">/dev/dsp</param> # die Soundkarte
 <param name="metadata">1</param> # Metadaten-Update für Artist und Titel
 <param name="metadatafilename">/home/ices/metadata</param> # Datei aus der Metadaten gelesen werden sollen

Playlist

Basic

1
2
3
4
5
<param name="type">basic</param> # eine Playlist in einfachem Textformat
 <param name="file">/pfad/zur/playlist</param> # Speicherort der Playlist
 <param name="random">0</param> # Abspielreihenfolge der Playlist zufällig ändern
 <param name="once">0</param> # auf 1 gesetzt, beendet dies IceS nach dem einmaligen Durchlaufen der Playlist
 <param name="restart-after-reread">1</param> # Playlist nach Update von vorne beginnen

Beispielhafte Abspielliste im einfachen Textformat:

/pfad/datei_1.ogg
/pfad/datei_2.ogg
/pfad/datei_n.ogg
Skript

<param name="type">script</param> # Ein Skript oder Programm, das den Speicherort einer OggVorbis-Datei ausgibt
 <param name="program">/path/to/program</param> # Speicherort des Skriptes

ubuntuusers.local › WikiIces2