Netzrauschen
Audio-Streaming mit GnuMP3d
Abspielen
Möchten Sie einen Stream beziehungsweise eine Datei anhören, verwenden Sie dafür normalerweise die Web-Oberfläche. Dazu wechseln Sie in das gewünschte MP3-Verzeichnis und wählen die Datei direkt aus oder klicken auf den Play-Link. Wahlweise erhalten Sie hier auch Informationen über die Datei sowie die Möglichkeit, sie herunterzuladen. Bei Verzeichnissen und selbst erstellten Playlisten können Sie genauso vorgehen.
Der Browser öffnet dann ein M3U-File, das alle wichtigen Informationen über den Stream enthält. Diese Datei recht er an Ihr MP3-Abspielprogramm weiter. Xmms [4], Realplayer [5] und mplayer [6] zum Beispiel können mit diesem Format umgehen. Mit den Informationen der M3U-Datei startet der Player schließlich den MP3-Stream und spielt ihn ab. Mehr Details zu M3U finden Sie im gleichnamigen Kasten.
Das M3U-Format
M3U ist ein reines Textformat für Playlisten. Eine solche Liste enthält die Länge und den Namen der Datei sowie weitere Informationen über die Files, die im Stream enthalten sein sollten. Dieses Format ermöglicht es überhaupt erst, mehrere Musikstücke hintereinander abzuspielen ohne jede einzeln auszuwählen. Eine solche Datei könnte wie folgt aussehen:
#EXTM3U #EXTINF:223,Künstler - Lied 1 - 2005 Künstler - Lied 1.mp3 #EXTINF:391,Künstler - Lied 2 - 2005 Künstler - Lied 2 - 2005
Die erste Zeile legt fest, dass es sich um eine M3U-Datei handelt. Bei den #EXTINF-Zeilen handelt es sich um zusätzliche Informationen, wie Liedlänge, Künstlername und sonstige Informationen. Alle anderen Zeilen führen die Dateinamen auf.
Downsampling
MP3-Dateien sind häufig mit einer Bitrate von 128 KBit/s kodiert. Bei einem Stream dieser Bandbreite wäre das Upload-Volumen einer üblichen ADSL-Leitung schnell ausgelastet, denn Sie stellt zum Download 768 KBit/s, zum Upload aber nur 128 KBit/s bereit. In diesem Fall bietet es sich an, die Dateien zum Streamen mit einer niedrigeren Bitrate neu zu kodieren, das so genannte Downsampling. Auch für Benutzer mit einer Volumenbeschränkung ist es sinnvoll, so die Übertragungsrate herunterzusetzen. Dazu muss man die Datei /etc/gnump3d/gnump3d.conf editieren. Listing 2 zeigt die hierfür nötigen Konfigurationsvariablen.
Listing 2
/etc/gnump3d/gnump3d.conf
01 downsample_enabled = 1 02 downsample_"level"_"file suffix" = command args 03 04 downsample_high_mp3 = /usr/bin/lame --mp3input -b 96 $FILENAME - 05 downsample_medium_mp3 = /usr/bin/lame --mp3input -b 64 $FILENAME - 06 downsample_low_mp3 = /usr/bin/lame --mp3input -b 32 $FILENAME - 07 08 downsample_high_ogg = sox -t ogg $FILENAME -t raw - | oggenc --raw --downmix -b 96 - 09 downsample_medium_ogg = sox -t ogg $FILENAME -t raw - | oggenc --raw --downmix -b 64 - 10 downsample_low_ogg = sox -t ogg $FILENAME -t raw - | oggenc --raw --downmix --resample 22050 -b 32 - 11 downsample_clients = ALL 12 default_quality = medium
Damit das Downsampling überhaupt funktioniert, muss es über die Variable downsample_enabled mit dem Wert 1 aktiviert werden. Die Variable in Zeile 2 legt die Syntax für die nächsten Anweisungen fest. Die Zeilen 04 bis 10 stellen drei Stufen der Bitraten-Regelung ein. Im Beispiel gibt es die Stufen high, medium und low. Nach der Stufe folgt die Dateiendung, für die der folgende Befehl gilt. So legt Zeile 4 fest, was der Server macht, wenn es sich um eine Datei mit der Erweiterung .mp3 in der Qualität high handelt.
Dabei kodiert GnuMP3d nicht die Dateien auf der Festplatte neu, sondern streamt direkt die Ausgabe des Kommandos. Bei langsamen Computern bietet sich diese Methode nicht an, weil es dann zu hörbaren Verzögerungen oder gar Aussetzern kommt. Für MP3-Dateien bietet sich hier das Programm lame [7] an, für Ogg eine Kombination aus den Programm sox [8] und oggenc [9]. Die Variable $FILENAME dürfen Sie hier auf keinen Fall verändern, da GnuMP3d für sie die im Stream enthaltenen Dateinamen einsetzt.
Die Option downsample_clients gibt an, für welche Computer im Netzwerk die Bitrate des Streams verändert werden soll (Zeile 11). In diesem Fall gilt die Anpassung für alle, es lassen sich aber auch IP-Adressen-Bereiche angeben. Die Variable default_quality legt die Standard-Bitrate fest (Zeile 12).
Gringere Bitraten als 64 KBit/s beeinträchtigen allerdings den Hörgenuss: Je höher die Bitrate, desto mehr Informationen enthält die Datei und desto besser ist die Qualität.



