abcde
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
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:
abcde 🇬🇧 (A Better CD Encoder) ist ein CD-Ripper für die Kommandozeile. Audio-CDs können ausgelesen und die Tracks anschließend in die Formate FLAC, MP3, OGG (Vorbis) und WAV kodiert werden. Metadaten wie Interpret, Titel, Album usw. können vom Free DB 🇬🇧 CDDB Server heruntergeladen und bearbeitet werden.
Das Programm xcfa erleichtert durch eine grafische Oberfläche den Umgang mit abcde und bietet darüber hinaus eine Umwandlung zwischen verschiedenen Audio-Formaten. Ein weiteres Programm zum akkuraten Rippen ist Rubyripper, das ebenfalls eine grafische Oberfläche zur Verfügung stellt.
Installation¶
Um das Programm zu installieren, benötigt man das Paket [1]:
abcde (universe)
eyed3
Befehl zum Installieren der Pakete:
sudo apt-get install abcde eyed3
Oder mit apturl installieren, Link: apt://abcde,eyed3
sowie die gewünschten Codecs:
flac (universe, verlustfreier Codec zur Archivierung, siehe FLAC)
lame (universe, für MP3)
mkcue (universe, zum Anlegen eines Cuesheets (optional))
speex (universe, für Sprache, siehe Speex)
vorbis-tools (universe, für OGG)
vorbisgain (universe, Fügt Ogg Vorbis-Dateien Replay Gain Lautstärke-Tags hinzu (optional))
Befehl zum Installieren der Pakete:
sudo apt-get install flac lame mkcue speex vorbis-tools vorbisgain
Oder mit apturl installieren, Link: apt://flac,lame,mkcue,speex,vorbis-tools,vorbisgain
Sofern ID3-Tags geschrieben werden sollen (empfehlenswert), zusätzlich:
id3 (universe, für ID3v1.x-Tags)
id3v2 (universe, für ID3v2.0-Tags)
Befehl zum Installieren der Pakete:
sudo apt-get install id3 id3v2
Oder mit apturl installieren, Link: apt://id3,id3v2
Benutzung¶
Nach erfolgreicher Installation kann das Programm aus dem Terminal mit dem Befehl abcde
[2] gestartet werden:
abcde
Ausgabe ist:
Grabbing entire CD - tracks: 01 02 03 04 05 06 07 08 09 10 11 12 13 ... Grabbing track 01: Warty... cdparanoia III release 10.2 (September 11, 2008) Ripping from sector 0 (track 1 [0:00.00]) to sector 18573 (track 1 [4:07.48]) outputting to /home/marc/abcde.d10d3d0e/track01.wav (== PROGRESS == [ > | 003530 00 ] == :-) . ==)
In der Grundeinstellung werden alle Stücke der CD mit "cdparanoia
" ausgelesen, in das Format .ogg umgewandelt und die entsprechenden ID3-Tags nach einer Datenbankabfrage erstellt. Die .wav-Dateien werden nach dem Prozess wieder gelöscht. Über entsprechende Konfiguration der abcde.conf kann dies verändert werden.
Einzelne Tracks (z.B. 1,2,3,5 und 11) lassen sich durch Angabe der Tracknummern auslesen. [5] Etwaige Optionen (z.B. -M
) sind vor den Tracks zu setzen:
abcde 1-3 5 11
Um alle Tracks einer CD in eine Datei zu kodieren:
abcde -1
Möchte man zusätzlich auch ein Cuesheet der CD anlegen :
abcde -1 -M
Weitere Möglichkeiten sind den Manpages zu entnehmen.
Konfiguration¶
Die Konfiguration des Programms kann systemweit unter /etc/abcde.conf in einem Editor [3] und den entsprechenden Rechten [4] verändert werden. Daneben besteht auch die Möglichkeit, im Homeverzeichnis des aktuellen Benutzers eine Konfigurationsdatei zu erstellen, die die systemweiten Einstellungen überschreibt. Dazu kopiert man die systemweiten Einstellungen [5]:
cp /etc/abcde.conf ~/.abcde.conf
und passt diese den eigenen Wünschen an. Die Datei ist sehr gut dokumentiert und lässt eine Vielzahl von Änderungen zu. Neben der Bitrate, dem Datenbankserver, Speicherpfaden, Laufwerken gibt es viele Anpassungsmöglichkeiten. Überflüssige Zeilen können problemlos entfernt werden.
CDDB¶
Der zu verwendende CDDB-Server kann verändert sowie einige Einstellungen vorgenommen werden:
# CDDB options # If you wish to use a different CDDB server, edit this line. # If you just wanted to use a proxy server, just set your http_proxy # environment variable – wget will use it correctly. CDDBURL=“http://freedb.freedb.org/~cddb/cddb.cgi“
Alternative Server | |
Server | Adresse |
gnudb.org 🇬🇧 | http://gnudb.gnudb.org/~cddb/cddb.cgi |
TrackType.org 🇬🇧 | http://freedb2.org/~cddb/cddb.cgi |
Ausgabeformat¶
Das Ausgabeformat der Musikstücke wird unter dem Punkt OUTPUTTYPE
festgelegt. OUTPUTTYPE=mp3
erstellt .mp3-Dateien:
# OUTPUTTYPE can be either "ogg", "mp3", "flac" or "spx", or a combination # of them separated with ",": "ogg,mp3". OUTPUTTYPE=mp3
Sofern die Stücke in mehreren Formaten abgelegt werden sollen, kann man dies auch kombinieren (z.B. OUTPUTTYPE=ogg,mp3
).
Zielverzeichnis¶
Die Zielverzeichnisse können verändert werden. In diesem Beispiel werden die .mp3-Dateien nach ~/Musik kopiert:
# If you’d like to make a default location that overrides the current # directory for putting mp3’s, uncomment this. OUTPUTDIR="$HOME/Musik"
Bitrate¶
Einstellungen zu MP3, OGG Vorbis und Co. sind im entsprechenden Abschnitt zu ändern.
MP3¶
Für mp3-Dateien gibt es drei Einstellungen: --preset medium
(normal), --preset standard
(besser) und --preset extreme
(sehr hoch):
# MP3: LAMEOPTS='--preset standard'
OGG¶
Die Befehle für die Bitrate bei OGG weichen etwas von der MP3-Kodierung ab. -q 1
ist dabei die kleinste, -q 10
die höchste Rate. -q 6
entspricht dabei einer Rate von ungefähr 180 KB/s.
# Ogg: OGGENCOPTS='-q 6'
Leerzeichen und führende Null im Titel¶
Wünscht man eine führende Null in der Titelnummer, ändert man das sogenannte track padding wie folgt ab:
# Track padding: force abcde to pad tracks using 0, so every song uses a two # digit entry. If set to "y", even a single song encoding outputs a file like # 01.my_song.ext PADTRACKS=y
Sofern in den Dateinamen Leerzeichen statt Unterstrichen verwendet werden, sollte man folgende Änderung vornehmen:
# Custom filename munging: # By default, abcde will do the following to CDDB data to get a useful # filename: # * Translate colons to a space and a dash for Windows compatibility # * Eat control characters, single quotes, and question marks # * Translate spaces and forward slashes to underscores # To change that, redefine the mungefilename function. # mungefilename recieves the CDDB data (artist, track, title, whatever) # as $1 and outputs it on stdout. #mungefilename () #{ # echo "$@" | sed s,:,\ -,g | tr \ / \__ | tr -d \'\"\?\[:cntrl:\] #}
Unter diesen Block folgende Zeilen anhängen:
mungefilename () { echo "$@" | sed s,:,\ -,g | tr / \__ | tr -d \'\"\?\[:cntrl:\] }
Bedienung¶
Tastenkürzel | |
Taste(n) | Funktion |
1 | Sind mehrere Einträge in der Datenbank vorhanden kann der gewünschte Eintrag gewählt werden z.B. 2 |
Q | Gibt es mehr als 3 Einträge verläßt man so die Vorschau und kann anschließend den Eintrag auswählen. |
Beispielkonfiguration¶
Mit einer Raute (#) auskommentierte Zeilen können entfernt werden:
# -----------------$HOME/.abcde.conf----------------- # # # A sample configuration file to convert music cds to # MP3, Ogg Vorbis, FLAC, Musepack, AAC, WavPack, Opus, # Monkey's Audio (ape), True Audio, AC3 and mp2, 11 formats # at the same time! Using abcde version 2.7.2 release version. # # http://andrews-corner.org/linux/abcde/index.html # -------------------------------------------------- # # Encode tracks immediately after reading. Saves disk space, gives # better reading of 'scratchy' disks and better troubleshooting of # encoding process but slows the operation of abcde quite a bit: LOWDISK=y # Specify the method to use to retrieve the track information, # the alternative is to specify 'musicbrainz': CDDBMETHOD=cddb # Make a local cache of cddb entries and then volunteer to use # these entries when and if they match the cd: CDDBCOPYLOCAL="y" CDDBLOCALDIR="$HOME/.cddb" CDDBLOCALRECURSIVE="y" CDDBUSELOCAL="y" OGGENCODERSYNTAX=oggenc # Specify encoder for Ogg Vorbis MP3ENCODERSYNTAX=lame # Specify encoder for MP3 FLACENCODERSYNTAX=flac # Specify encoder for FLAC MPCENCODERSYNTAX=mpcenc # Specify encoder for Musepack AACENCODERSYNTAX=fdkaac # Specify encoder for AAC OPUSENCODERSYNTAX=opusenc # Specify encoder for Opus WVENCODERSYNTAX=wavpack # Specify encoder for Wavpack APENCODERSYNTAX=mac # Specify encoder for Monkey's Audio TTAENCODERSYNTAX=tta # Specify encoder for True Audio MP2ENCODERSYNTAX=twolame # Specify encoder for MP2 MKAENCODERSYNTAX=ffmpeg # Specify encoder for MKA (AC3 via FFmpeg) OGGENC=oggenc # Path to Ogg Vorbis encoder LAME=lame # Path to MP3 encoder FLAC=flac # Path to FLAC encoder MPCENC=mpcenc # Path to Musepack encoder FDKAAC=fdkaac # Path to the AAC encoder OPUSENC=opusenc # Path to Opus encoder WVENC=wavpack # Path to WavPack encoder APENC=mac # Path to Monkey's Audio encoder TTA=tta # Path to True Audio encoder TWOLAME=twolame # Path to MP2 encoder FFMPEG=ffmpeg # Path to FFmpeg (AC3 via FFmpeg) OGGENCOPTS='-q 6' # Options for Ogg Vorbis LAMEOPTS='-V 2' # Options for MP3 FLACOPTS='-s -e -V -8' # Options for FLAC MPCENCOPTS='--extreme' # Options for Musepack FDKAACENCOPTS='-p 2 -m 5 -a 1' # Options for fdkaac OPUSENCOPTS="--vbr --bitrate 128" # Options for Opus WVENCOPTS="-hx3" # Options for WavPack APENCOPTS="-c4000" # Options for Monkey's Audio TTAENCOPTS="" # Options for True Audio TWOLAMENCOPTS="--bitrate 320" # Options for MP2 FFMPEGENCOPTS="-c:a ac3 -b:a 448k" # Options for MKA (AC3 via FFmpeg) OUTPUTTYPE="ogg,mp3,flac,mpc,m4a,opus,wv,ape,tta,mp2,mka" # Encode to 11 formats! # The cd ripping program to use. There are a few choices here: cdda2wav, # dagrab, cddafs (Mac OS X only) and flac. New to abcde 2.7 is 'libcdio'. CDROMREADERSYNTAX=cdparanoia # Give the location of the ripping program and pass any extra options, # if using libcdio set 'CD_PARANOIA=cd-paranoia'. CDPARANOIA=cdparanoia CDPARANOIAOPTS="--never-skip=40" # Give the location of the CD identification program: CDDISCID=cd-discid # Give the base location here for the encoded music files. OUTPUTDIR="$HOME/Music" # The default actions that abcde will take. ACTIONS=cddb,playlist,read,encode,tag,move,clean # Decide here how you want the tracks labelled for a standard 'single-artist', # multi-track encode and also for a multi-track, 'various-artist' encode: OUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}' VAOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${TRACKNUM}.${ARTISTFILE}-${TRACKFILE}' # Decide here how you want the tracks labelled for a standard 'single-artist', # single-track encode and also for a single-track 'various-artist' encode. # (Create a single-track encode with 'abcde -1' from the commandline.) ONETRACKOUTPUTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}' VAONETRACKOUTPUTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}' # Create playlists for single and various-artist encodes. I would suggest # commenting these out for single-track encoding. PLAYLISTFORMAT='${OUTPUT}/${ARTISTFILE}-${ALBUMFILE}/${ALBUMFILE}.m3u' VAPLAYLISTFORMAT='${OUTPUT}/Various-${ALBUMFILE}/${ALBUMFILE}.m3u' # This function takes out dots preceding the album name, and removes a grab # bag of illegal characters. It allows spaces, if you do not wish spaces add # in -e 's/ /_/g' after the first sed command. mungefilename () { echo "$@" | sed -e 's/^\.*//' | tr -d ":><|*/\"'?[:cntrl:]" } MAXPROCS=2 # Run a few encoders simultaneously PADTRACKS=y # Makes tracks 01 02 not 1 2 EXTRAVERBOSE=2 # Useful for debugging COMMENT='abcde version 2.7.2' # Place a comment... EJECTCD=y # Please eject cd when finished :-)
VorbisGain¶
VorbisGain mit ogg verwenden:
OGGENCODERSYNTAX=oggenc OGGENC=oggenc VORBISGAIN=vorbisgain VORBISGAINOPTS='-a' ACTIONS=cddb,playlist,read,encode,replaygain,tag,move,clean BATCHNORM=y OUTPUTTYPE=ogg
Weitere Möglichkeiten zur Erstellung von Hörbüchern bieten die Skripte Book-To-MP3 und pdf2mp3.
Problembehebung¶
eyed3.id3:WARNING: Invalid numeric genre¶
Tritt dieser Fehler auf so muss in der Datei .abcde.conf die folgende Zeile ergänzt [3] werden:
EYED3OPTS="--non-std-genres"
XY is not in your path¶
Erhält man eine Fehlermeldung XY is not in your path
, so hilft es, das genannte Paket zu installieren. Nachfolgend am Beispiel von eyeD3:
[ERROR] abcde: eyeD3 is not in your path. [INFO] Define the full path to the executable if it exists on your system.
Abhilfe schafft dann die Installation von eyeD3:
sudo apt-get install eyed3
eyed3.id3:WARNING: Non standard genre name: 255¶
Wenn kein passendes Genre übergeben wurde, setzt abcde
es auf 255, was eyeD3
zu folgender Warnmeldung veranlassen kann:
Setting genre: 255 eyed3.id3:WARNING: Non standard genre name: 255
Dies tritt in den Versionen 0.8.x von eyeD3
auf. Welche Version aktiv ist, lässt sich über den Befehl eyeD3 --version
ermitteln.
Gegebenenfalls empfiehlt es sich, das Paket eyeD3 aus den Quellen zu deinstallieren und die neuere Version über den Python-Paketmanager pip zu beziehen:
sudo apt remove eyeD3 pip install --upgrade eyed3
Links¶
Projektseite 🇬🇧
HOWTO abcde 🇬🇧
vorbisgain 🇬🇧
CDs rippen unter Ubuntu mit abcde 🇩🇪 - Blogbeitrag, 06/2010
Leerzeichen statt Unterstrich - Forumsdiskussion
Music was my first love... 🇩🇪 - LinuxUser 04/2003
CDs rippen Übersichtsartikel