ubuntuusers.de

LAME

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


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./lame.png LAME ist ein Enkoder für das weit verbreitete MP3-Audioformat und gilt schon länger als Referenz auf diesem Gebiet. Die Bedienung verläuft über das Terminal, es existieren jedoch viele Programme mit grafischer Oberfläche (siehe Audiodateien umwandeln), die auf die LAME-Bibliothek zurückgreifen.

Lame erzielt beachtliche Ergebnisse, trotzdem ist MP3 selbst mittlerweile als veraltet zu bezeichnen. Modernere Codecs wie Vorbis, Opus oder AAC arbeiten deutlich effizienter. Allerdings können viele ältere Hardware-Player (Stereoanlagen, Autoradios, DVD-Player etc.) oft nur MP3 von CDs oder USB-Sticks lesen.

Hinweis:

MP3 ist ein verlustbehaftetes Verfahren. Bitrate und die Frage ob diese konstant oder variabel sein soll spielt eine wichtige Rolle.

Wer die höchstmögliche Tonqualität haben möchte, ist mit einem verlustfreien Codec wie FLAC vielleicht besser beraten statt MP3-Dateien mit höchster Bitrate zu erstellen.

Installation

LAME kann direkt aus den Quellen installiert werden [1]:

  • lame (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install lame 

Oder mit apturl installieren, Link: apt://lame

Benutzung

Die allgemeine Syntax von LAME lautet [1]:

lame OPTIONEN QUELLDATEI ZIELDATEI 

Die Quelldatei muss als Wave, MP2 oder MP3 vorliegen. Wird keine Zieldatei angegeben, wird der Name der Quelldatei übernommen. Werden keine Optionen angegeben, arbeitet Lame mit einer empfohlenen Voreinstellung und verwendet eine variable Bitrate, die zwar die beste Qualität liefert, doch bei älteren Hardware-Playern Probleme verursachen kann. Möchte man die Qualität ungeachtet der empfohlenen Voreinstellung beeinflussen, ohne sich zu sehr mit der Materie zu beschäftigen, kann eines der unten genannten Presets als Option angegeben werden z.B. --preset extreme.

Wichtige Optionen von LAME
OptionBeschreibung
-b n Mit konstanter Bitrate (CBR) enkodieren: n = 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 (Standard: 128 kbit/s) Beispiel: lame -b 128. CBR bietet die höchste Kompatibilität zu älteren Hardware-Playern aber geringste Qualität.
--abr n Durchschnittliche Bitrate (ABR) einstellen: n := beliebiger Wert (Ganzzahl oder Fließkommazahl) Beispiel: lame --abr 225 in.wav. Kompromiss aus CBR und VBR, eher ungebräuchlich.
-v oder --vbr-new Variable Bitrate (VBR). Produziert die höchste Qualität und wird Standardmäßig verwendet.
-V0Qualitätstufen für VBR: 0=hoch ... 4=Standard ... 9=niedrig
-h Verbesserte Qualität unabhängig von der Bitrate. Verlangsamt Enkodierung. Diese Option ist bei VBR bereits voreingestellt.
-q nStatt -h eine Stufe für die Qualitätsverbesserung festlegen. Stufen 0 (hoch) bis 9 (gering). -h entspricht 5. Stufe 0 und 1 verlangsamen Enkodierung deutlich.
-m MODUSUmgang mit den Kanälen: (s)tereo / (j)oint stereo/ (m)ono. Standard: (s) bei CBR- (j) bei VBR. Joint Stereo produziert meist bessere Qualität.
--preset VOREINSTELLUNG Mögliche Voreinstellungen für VBR: medium, standard, extreme, insane.
--longhelpAusgabe einer Vielzahl möglicher Einstellungsmöglichkeiten
--strictly-enforce-ISOKann Abspielprobleme bei Hardware-Playern verhindern. Produziert aber größere Dateien bei hohen Bitraten.
-FBei Enkodierung mit CBR ( -b n) Kompatibilität zu Hardware-Playern nochmals erhöhen.
--replaygain-accurateGründlichere Berechnung von Replay-Gain-Werten als die Standardmäßige. Benötigt mehr Zeit.
--noreplaygainBerechnung unterlassen, z.B. weil ein Hardware-Player Replay Gain nicht unterstützt, was häufig vorkommt. Beschleunigt die Enkodierung.
--decodeMP3- in Wave-Datei umwandeln.

LAME kennt noch eine Reihe weiterer Optionen, die man mit Hilfe der Option --help aufrufen oder durch einen Blick in die Manpage von LAME ansehen kann.

ID3-Tags

Der Befehl lame kann auch Metadaten (ID3-Tags) in die entsprechenden MP3-Dateien speichern. Dazu gibt es jedoch, insbesondere wenn man mehrere Dateien umwandelt, komfortablere grafische Programme – beispielsweise EasyTAG. Möchte man die ID3-Tags dennoch mit Hilfe von lame über die Konsole eingeben, hilft ein weiterer Blick in die Manpage von LAME.

Anwendungsbeispiele

MP3-Dateien mit statischer Bitrate

Der typische Anwendungsfall ist, dass man eine unkomprimierte Datei, z.B. eine WAV-Datei, die man aus einer Audio-CD extrahiert hat, in eine MP3 umwandeln möchte. Das folgende Beispiel wandelt eine WAV-Datei "Lied.wav" in eine MP3-Datei mit hoher Qualität (-h) und einer statischen Bitrate von 192 kbit/s (-b) um:

lame -h -b 192 Lied.wav Lied.mp3 

Der Befehl führt zu folgender Ausgabe:

LAME 3.98.4 64bits (http://www.mp3dev.org/)
Using polyphase lowpass filter, transition band: 20094 Hz - 20627 Hz
Encoding Lied.wav to Lied.mp3
Encoding as 44.1 kHz single-ch MPEG-1 Layer III (3.7x) 192 kbps qval=2
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA 
    17/17    (100%)|    0:00/    0:00|    0:00/    0:00|   7.4014x|    0:00 
-------------------------------------------------------------------------------
   kbps       mono %     long  %
  192.0      100.0       100.0
Writing LAME Tag...done
ReplayGain: +9.3dB

MP3-Datei mit variabler Bitrate und id3 Tag

Dieser beispiel Befehl zeigt die Möglichkeiten von Lame

lame -r --bitwidth 16 --little-endian --vbr-new -V 0 -s 44.1 -h --tt %t --ta %a --tl %m --ty %y --tc %c Eingangsdatei Ausgangsdatei

Führt zur folgenden Ausgabe

lame --bitwidth 16 --little-endian --vbr-new -V 0 -s 44.1 -h --tt Banause --ta DJ_Deeaan --tl Hits_2098 --ty 2020 --tc ohne_Worte ~/Track.wav ~/Track.mp3
LAME 3.100 64bits (http://lame.sf.net)
polyphase lowpass filter disabled
Encoding /home/xxx/Track.wav to /home/xxx/Track.mp3
Encoding as 44.1 kHz j-stereo MPEG-1 Layer III VBR(q=0)
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA 
 12825/12825 (100%)|    0:07/    0:07|    0:07/    0:07|   45.187x|    0:00 
 32 [   16] *
 40 [    1] *
 48 [    0] 
 56 [    0] 
 64 [    0] 
 80 [    0] 
 96 [    0] 
112 [    0] 
128 [    1] %
160 [    5] *
192 [  245] %**********
224 [ 2702] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%**********************************************
256 [ 5279] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*******************************************************************************
320 [ 4576] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%************************************************************************************************
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   kbps        LR    MS  %     long switch short %
  270.5       56.1  43.9        74.6  13.4  12.0
Writing LAME Tag...done
ReplayGain: -6.7dB

MP3-Dateien mit variabler Bitrate

Die erzeugten Dateien sind qualitativer und auch oft kleiner, beim De-/Kodieren entsteht aber ein höherer Rechenaufwand.

Der folgende Befehl erzeugt eine MP3 mit einer variablen Bitrate mit empfohlener Qualitätsstufe 4:

lame -V4 Lied.wav Lied.mp3 

Fremdformat (M4A/AAC) zu MP3

Achtung!

Wenn möglich, sollte auf eine Umwandlung von einem verlustbehafteten Format in ein anderes abgesehen werden. Die Qualität wird hier durch den Generationsverlust oft hörbar verschlechtert.

Teilweise muss die Quelldatei zunächst selbst dekodiert werden. Handelt es sich um eine MPEG4/AAC-komprimierte Datei (Dateierweiterung meist .m4a), ist diese mit faad (evtl. nachinstallieren) zu dekodieren und über eine Pipe an den Befehl lame weiterzugeben:

faad -o - "Lied.m4a" | lame -V2 - Lied.mp3 

Weitere Fremdformate zu MP3

Soweit die Quelldatei sich in einem anderen Format befindet und erst dekodiert werden muss, empfiehlt sich die Verwendung des Multimedia-Frameworks GStreamer, das die Audiodaten an LAME weitergibt. Mehr dazu im Artikel GStreamer.

Mehrere Dateien verarbeiten (Stapelverarbeitung)

Will man nicht jede Datei einzeln kodieren, sondern mehrere in einem Verzeichnis (Batch), kann man ein Shell-internes Konstrukt in Form einer Schleife verwenden. Das folgende Beispiel wandelt alle Dateien mit der Endung .wav in eine MP3 um:

for i in *.wav; do lame -h -b 192 "$i" "`basename "$i" .wav`".mp3; done 

Wenn sich Dateien mit der Endung .wav in vielen Unterverzeichnissen befinden, kann man in ein übergeordnetes Verzeichnis wechseln und mit folgendem Befehl alle Dateien an ihrem jeweiligen Speicherort in MP3-Dateien umwandeln:

find . -type d -exec sh -c '(cd {} && for i in *.wav; do lame -h -b 128 "$i" "`basename "$i" .wav`".mp3; done)' ';' 

Um alle M4A-Dateien in einem Ordner in MP3-Dateien umzuwandeln, reicht dieser Befehl:

for file in *.m4a; do faad -o - "$file" | lame -V2 - "$(basename "$file" .m4a).mp3"; done 

Diese Revision wurde am 6. Mai 2021 18:47 von frustschieber erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, Audio, MP3