Mpg123
mpg123
| |
---|---|
![]() Konsolenausgabe von mpg123 beim Abspielen einer mp3-Datei. | |
Basisdaten
| |
Entwickler | Michael Hipp, Thomas Orgis, Nicholas Humfrey |
Erscheinungsjahr | 1999 |
Aktuelle Version | 0.60 (29. August 2006) |
Betriebssystem | Unix-Systeme |
Programmiersprache | C, Assemblersprache |
Kategorie | Decoder |
Lizenz | LGPL |
deutschsprachig | nein |
http://mpg123.org/ |
mpg123 ist ein freier Audio-Spieler an der Kommandozeile für MPEG-Audio. Die unterstützten Formate sind MPEG-Layer 1, 2 und 3 (letzteres ist bekannt als MP3). Der Name mpg123 begründet sich in der Unterstützung der drei Audiolayer.
Fähigkeiten
Das Programm läuft auf diversen Unix-Betriebssystemen. Offiziell unterstützt sind Linux, FreeBSD, SunOS 4.1.3, Solaris 2.5, HP-UX 9.x und IRIX.
mpg123 hat das Ziel die Daten in Echtzeit zu dekodieren und abzuspielen. Dieses Ziel wird für viele Rechner erreicht. Dies hat zur Folge, dass auf vielen modernen Rechnern mpg123 eine geringe Systembelastung erzeugt. Dies ermöglicht mehrere mpg123-Instanzen gleichzeitig laufen zu lassen (um verschiedene Räume zu beschallen) oder nebenher weitere Berechnungen durchzuführen. Darüberhinaus gibt es für viele Hardwarearchitekturen speziell optimierte Routinen, so dass auf den betroffenen Systemen ein Performancegewinn erreicht werden kann.
Laut Tests[1] erfüllt mpg123 die Anforderungen der Spezifikation an die Korrektheit der Wiedergabe.
Das Programm unterstützt Gapless Playback und wertet dafür Informationen von Lame aus. mpg123 wertet ID3-Tags der Versionen 1 und 2 aus. Die so gewonnenen Informationen werden in der Konsole ausgegeben. mpg123 nimmt auch während des Dekodierens Tastaturbefehle an, womit die Musikausgabe gesteuert werden kann. Diverse Frontends nutzen diese Funktionalität.
Geschichte
mpg123 wurde von Michael Hipp 1995 als Weiterentwicklung des mpegaudio-Pakets gestartet. Mit der Zeit kamen Beiträge weiterer Programmierer hinzu, hauptsächlich optimierte Dekodierroutinen für verschiedene Prozessorarchitekturen.
Beginnend 2000/2001 reduzierte sich die Aktivität der Weiterentwicklung an mpg123, nachdem zuvor mehrere Versionen in der 0.59-Reihe herausgebracht worden waren. Da mit der Zeit mehrere schwere Sicherheitslücken bekannt wurden[2], entwickelten die Linux-Distributionen Debian (ausgehend von mpg123 0.59r) und Gentoo (ausgehend von mpg123 0.59s) Patches zur Behebung dieser Sicherheitslücken. Michael Hipp wies Anfang 2005 auf diese Probleme hin und riet von der Nutzung der offiziellen, aber ungepflegten Version ab.
Neben diesen Varianten wurden von diversen Autoren Weiterentwicklungen als Patches angeboten. Im April 2005 startete Nicholas Humfrey ein Projekt auf Sourceforge. Er veröffentlichte eine Version namens mpg123-gpl, basierend auf der Version 0.59 und den Debian-Patches. Als Weiterentwicklung implementierte er die Nutzung von GNU-Autoconf. Unabhängig davon entwickelte Thomas Orgis 2005 mehrere Versionen von mpg123-thor, die basierend auf Version 0.59r einige frei verfügbare Patches einarbeitete, darunter die Debian-Sicherheitspatches. Darüberhinaus wurde die Konsolensteuerung überarbeitet[3].
Diese beiden Projekte begannen Ende 2005 zusammenzuarbeiten. Mit der Zustimmung von Michael Hipp entwickelten sie die neue 'offizielle' Version von mpg123. Nach mehreren Beta-Versionen erschien so am 29.08.2006 die Version 0.60 von mpg123. Das Datum wurde symbolisch gewählt, eines der MP3 betreffenden Patente lief an dem Tag in Deutschland aus[4].
Lizenz und Patente
Die aktuelle Version 0.60 von mpg123 ist unter der LGPL lizensiert. Das bedeutet das Programm erfüllt die Bedingungen für freie Software und Open Source.
Zu Beginn seiner Entwicklung wurde mpg123 jedoch noch unter der folgenden Bedingung veröffentlicht: free for private use, ask me when you want to do something commercial. Die Einschränkungen für die kommerzielle Nutzung vertragen sich nicht mit den Bedingungen für freie Software. Viele Linux-Distributionen setzten mpg123 daher in eine non-free-Sektion oder verzichteten ganz auf diese Software.
Aufgrund dieser Situation entwickelte Joe Drew 1999 ein Skript, um mpg123 für die Nutzung in FreeAmp zu ersetzen. 2001 entschied er sich, daraus einen kompletten Ersatz für mpg123 zu entwickeln, der vollkommen kompatibel aber auch freie Software sein sollte. Dieses Projekt nannte er mpg321.[5]
Michael Hipp änderte bei späteren Veröffentlichungen von mpg123 die Lizenz auf GPL und die Lizenz der mpglib auf LGPL. Damit wurde das Programm freie Software, der Bedarf für eine freie Alternative entfiel. Mit dem Release der Version 0.60 änderten die neuen Projektleiter die Lizenz für das komplette Paket auf LGPL.
Die Fraunhofer-Gesellschaft und Thomson halten eine ganze Reihe von Softwarepatenten rund um Techniken zur Nutzung des MP3-Formats.[4] Laut eigener Aussage verlangen sie jedoch keine Lizenzgebühren von Decodern. Zudem ist ein Teil dieser Patente bereits abgelaufen.[6]
Varianten
Michael Hipp erstellte 1998 eine Java-Variante unter dem Namen jmpg123. Diese Variante kam jedoch nie über die Version 0.1 hinaus. Zudem erstellte er eine Portierung der Layer-2-Funktionalität für einen DSP.
Von dem Programm gibt es eine Windows-Portierung. mpg123 oder Codebestandteile davon wurden in vielen weiteren Projekten als Decoder für MP3 eingesetzt, so XMMS, MPlayer, LAME und als Plugin für Winamp.
Weblinks
- Offizielle Homepage des Projekts (englisch)
- Projektseite auf Sourceforge.net (englisch)