Zu_Befehl.jpg

Rock around the commandline

Zu Befehl

01.09.2001
MP3s hören, in wav-Dateien umwandeln, Playlists abspielen, mit Shell-Skripten zusammenarbeiten – das alles und noch viel mehr kann das Programm mpg123. Bringen Sie Ihre Kommandozeile zum Singen!

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, wo es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Mit xmms, kmp3 etc. finden Sie unter Linux mehr als einen komfortablen MP3-Spieler. Jedes dieser Programme hat Features, die über das reine Abspielen von Musikstücken hinausgehen.

Doch manchmal reicht auch schon ein Kommandozeilenprogramm ohne aufwändige Oberfläche. So gibt es auf der Konsole schon seit Längerem das Programm mpg123. Es funktioniert auf vielen Unix-Plattformen mit einem einfachen Kommandozeilenaufruf und ist nicht so speicherhungrig wie die GUI-Verwandten. Wie Sie mit ein paar Handgriffen auf der Konsole MP3s abspielen, Listen Ihrer Lieblingssongs erstellen und diese sortiert oder in einer zufällig ausgewählten Reihenfolge erklingen lassen, darum soll es in dieser "Zu Befehl"-Folge gehen.

Spiel mir das Lied

MP3, abgekürzt für "MPEG-(Moving Pictures Experts Group)-2 Layer III", ist ein komprimiertes Audio-Format – Musikstücke werden in CD-Qualität auf etwa ein Zehntel der Dateigröße reduziert. Um diese über einen Computer abspielen zu können, sollten Sie einen ausreichend schnellen Rechner (mindestens einen Pentium) mit Soundkarte und die entsprechenden Ausgabegeräte (Lautsprecher oder Kopfhörer) besitzen.

Last but not least benötigen Sie eine Software, die die komprimierten Dateien wieder dekodiert. Auf der mpg123-Homepage ([1]) finden Sie die aktuelle Version (mpg123 0.59r) zum Download. Die meisten Distributionen haben das Programm ebenfalls als Paket dabei; schauen Sie auf Ihrem System nach, ob das Tool schon installiert ist:

huhn@asteroid:~$ which mpg123
 /usr/bin/mpg123

Wenn Sie darauf verzichten möchten, die jeweils neueste Version aus den Sourcen selbst zu kompilieren, installieren Sie ruhig einen Vorgänger, der bei Ihrer Distribution dabei ist. Mit dem Kommando mpg123 -v erhalten Sie Informationen über die auf Ihrem Rechner vorhandene Programmversion, z. B.

Version 0.59q (1999/Jan/26)

Alle in diesem Artikel vorgestellten Optionen funktionieren sowohl mit diesem Release als auch mit dem aktuellen.

Starten Sie einen ersten Versuch: Mit mpg123 datei.mp3 spielen Sie ein MP3 ab. Sollten Sie eine Meldung der Art Can't open /dev/dsp! erhalten, blockiert ein anderes Programm das Sound-Device. Sofern Sie nicht auf Anhieb herausfinden, welcher Prozess der Übeltäter ist, hilft das Tool lsof:

huhn@asteroid:~$ /usr/sbin/lsof | grep /dev/dsp
 xmms       2383 huhn   10w   CHR       14,3               9190 /dev/dsp

Hier sehen Sie, dass das Programm XMMS noch auf die Soundkarte zugreift. Beenden Sie den Prozess, und versuchen Sie es noch einmal:

huhn@asteroid:~/mp3$ mpg123 Subway_to_Sally_-_Der_Sturm.mp3
 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
 Version 0.59q (1999/Jan/26). Written and copyrights by Michael Hipp.
 Uses code from various people. See 'README' for more!
 THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
 Playing MPEG stream from
 Subway_to_Sally_-_Der_Sturm.mp3 …
 MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

Diesen Output bekommen Sie direkt in die Konsole. Einen "Stopp"-Knopf wie bei den grafischen Tools gibt es nicht, aber ein [Strg-C] tut hier seine Wirkung – der Prozess wird beendet. Mit den Tools zur Prozessverwaltung (vgl. LinuxUser 12/2000 [2]) können Sie an dieser Stelle noch weiter spielen.

Als Nächstes simulieren Sie eine "Pause"-Taste. Schauen Sie zunächst nach der PID ("Prozess-Identifikationsnummer") von mpg123. Dazu schicken Sie das Programm direkt zu Beginn mit einem angehängten & in den Hintergrund und tippen dann ps ins Fenster:

huhn@asteroid:~/mp3$ mpg123 Subway_to_Sally_-_Der_Sturm.mp3 &[…]
 huhn@asteroid:~/mp3$ ps
   PID TTY          TIME CMD
 28010 pts/8    00:00:00 bash
 30928 pts/8    00:00:06 mpg123
 30929 pts/8    00:00:00 ps

Ein kill -STOP 30928 unterbricht den Prozess, beendet ihn aber nicht – Pause. Weiter geht's mit kill -CONT 30928, das Abspielen wird fortgesetzt. Wahlweise können Sie dem Programm auch mehrere Dateien mit auf den Weg geben; diese werden dann der Reihe nach abgespielt. Drücken Sie zwischendurch [Strg-C], wird nur das aktuelle Musikstück abgebrochen, mpg123 geht direkt zur nächsten Sound-Datei weiter.

Schauen Sie sich jetzt die wichtigsten Optionen des Programms an. Ein mpg123 -t (Langform: --test) dekodiert die Datei, ohne Sound auszugeben. Mit dem Parameter mpg123 -v datei.mp3 (für --verbose) bekommen Sie Informationen zur MP3-Datei:

[…]
 Channels: 2, copyright: No, original: Yes, CRC: No, emphasis: 0.
 Bitrate: 128 Kbits/s, Extension value: 0
 Audio: 1:1 conversion, rate: 44100, encoding: signed 16 bit, channels: 2Frame#   112 [ 8835], Time: 00:02.92 [03:50.79],

Zuviel auf einmal? Verwenden Sie -q (--quiet), um die Meldungen abzuschalten. Um die CPU-Auslastung etwas zu dämpfen, können Sie mit den Optionen --2to1 bzw. --4to1 (kurz: -2 oder -4) experimentieren. Sie setzen die Rate von 44 kHz auf 22 oder 11 herunter – natürlich auf Kosten der Klangqualität.

Weitere Optimierungen können Sie mit -b größe (--buffer größe) erzielen. Mit der Größe (in kBytes) legen Sie einen Speicher fest für den Fall, dass das System mal überlastet sein sollte – normalerweise wird die Sound-Ausgabe dann nämlich unterbrochen. Wählen Sie mindestens eine Größe von 1024 kBytes (entspricht einem MByte), das sind ca. sechs Sekunden des Musikstücks:

huhn@asteroid:~/mp3$ mpg123 -b 1024 Subway_to_Sally_-_Der_Sturm.mp3

Playlist, hang the DJ!

Wie eingangs erwähnt kann mpg123 auch mit mehreren Dateien umgehen. Geben Sie einfach die Dateinamen hintereinander an: mpg123 datei1.mp3 datei2.mp3 ... oder für alle Dateien in einem Verzeichnis mpg123 *.mp3.

Geordnet ist die Abspielfolge damit noch nicht, aber mit ein paar Kommandozeilenhandgriffen haben Sie sich schnell eine eigene Wunschliste zusammengestellt. Tools wie WinAmp oder XMMS speichern auf Wunsch eine Liste von Songs in einer Playlist mit der Dateiendung .mu3 ab. Eine solche Liste kann immer wieder mit dem Programm eingelesen werden – die Songs werden in der von Ihnen zusammengestellten Reihenfolge abgespielt.

Eine bereits mit XMMS erstellte liste.mu3 recyclen Sie mit mpg123 -@ liste.m3u (oder --list liste.m3u) für den Kommandozeilen-Player. Ein [Strg-C] bringt Sie dabei zum nächsten Stück.

Werfen Sie doch mal einen Blick in eine solche XMMS-Playlist. Die Struktur ist einfach:

[…]
 /home/huhn/mp3/rock/AC-DC_-_Touch_Too_Much.mp3
 /home/huhn/mp3/rock/ACDC_-_Who_Made_Who.mp3[…]

Eigentlich werden da nur die Dateien mit der kompletten Pfadangabe aufgeführt. So etwas können Sie mit einem Editor Ihrer Wahl auch selbst erstellen und mit ein paar Handgriffen auf der Kommandozeile automatisieren. Angenommen Sie haben Ihre MP3-Dateien in Unterverzeichnissen sortiert, und es gibt eine Klassikabteilung, die Sie zusammenfassen möchten.

huhn@asteroid:~/mp3$ find /absoluter/Pfad/zum/Klassik-Verzeichnis -name "*.mp3" > ./klassik.m3u

Erinnern Sie sich an "Zu Befehl" 06/2000 ([3]), als es um find ging? Hier wird im Klassik-Verzeichnis nach allen Dateien gesucht, die auf .mp3 enden. Für diese gilt dann, dass sie auf der Standardausgabe (stdout) ausgegeben werden, welche diesmal nicht der Monitor ist, sondern mit > in eine Datei klassik.m3u umgeleitet wird.

Sie erhalten eine alphabetisch sortierte Liste. Soll diese nicht einfach der Reihe nach abgespielt, sondern das nächste Stück zufällig ausgewählt werden, fügen Sie dem Parameter -@ klassik.m3u noch ein -z (für --shuffle) hinzu.

Mit find kann man noch weiter spielen. Sie haben Ihre MP3s nicht oder schlecht sortiert und wissen, dass da irgendwo ein Stück von Loona liegt, an das Sie sich einfach nicht mehr genau erinnern? Der Aufruf

huhn@asteroid:~$ find /home/huhn/mp3/ -name "*oona*" | xargs mpg123

hilft weiter:

Playing MPEG stream from Loona_-_Baila_Mi_Ritmo.mp3

Das Programm xargs übergibt die von find erzeugte Liste an das Kommando mpg123, das nicht aus einer Pipe lesen kann.

Um MP3-Dateien auf eine Musik-CD brennen zu können, müssen sie als nicht komprimierte wav-Dateien vorliegen. Zum Umwandeln können Sie den Parameter -w nehmen:

huhn@asteroid:~$ mpg123 -w datei.wav datei.mp3

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Zu Befehl: Suchen mit grep, egrep, fgrep, (b)zgrep
    Für die Suche nach Wörtern und Ausdrücken in Textdateien bieten sich die Kommandos der grep-Familie an. Als Ergebnis zeigen sie wahlweise die gefundenen Zeilen, die Namen der Dateien, in denen das Suchmuster vorkommt, oder die Anzahl der Treffer an.
  • Zu Befehl: Kanäle, Pipes und Tee
    Mit wenigen Handgriffen leiten Sie auf der Kommandozeile Ein- und Ausgaben von Befehlen um und kombinieren Kommandos. Wir stellen die benötigten Bash-Operatoren vor und zeigen, wie Sie mit dem Programm tee noch einen Zwischenschritt einlegen.
  • Zu Befehl: ssh, scp
    Die klassischen Unix-Programme Telnet und FTP erlauben Verbindungen und Datei-Transfers zu anderen Rechnern im Netz, sind aber unsicher: Alle Daten werden unverschlüsselt übertragen. Deswegen verwenden man heute die SSH-Tools (Secure Shell), die das Gleiche ermöglichen, dabei aber durch Verschlüsselung für Sicherheit sorgen.
  • Bequem eingerichtet
    Mit Umgebungsvariablen richten Sie sich die Kommandozeile individuell und gemütlich ein.
  • Zu Befehl: pwd, cd, pushd, popd und dirs
    Die Wege im Verzeichnisdschungel sind unergründlich. Wie Sie auf dem rechten Pfad bleiben und welche Kommandos bei der Navigation helfen, zeigt diese "Zu Befehl"-Folge.
Kommentare

Infos zur Publikation

LU 12/2014: ANONYM & SICHER

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...