Home / LinuxUser / 2005 / 06 / Audio-Streaming mit GnuMP3d

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

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.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 46 Punkte (3 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...