[[Vorlage(Getestet focal, jammy)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme starten: Ein Programm starten] [:Editor: Einen Editor öffnen] [:sudo: Root-Rechte] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [https://abcde.einval.com/ abcde] {en} (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 [http://www.freedb.org/ Free DB] {en} 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]: {{{#!vorlage Paketinstallation abcde, universe eyed3 }}} sowie die gewünschten [:Codecs:]: {{{#!vorlage Paketinstallation flac, universe, verlustfreier Codec zur Archivierung, siehe [:FLAC:] lame, universe, für MP3 mkcue, universe, zum Anlegen eines [wikipedia:Cuesheet:Cuesheets] (optional) speex, universe, für Sprache, siehe [wikipedia:Speex:] vorbis-tools, universe, für OGG vorbisgain, universe, Fügt Ogg Vorbis-Dateien Replay Gain Lautstärke-Tags hinzu (optional) }}} Sofern [wikipedia:ID3-Tag:ID3-Tags] geschrieben werden sollen (empfehlenswert), zusätzlich: {{{#!vorlage Paketinstallation id3, universe, für ID3v1.x-Tags id3v2, universe, für ID3v2.0-Tags }}} = Benutzung = Nach erfolgreicher Installation kann das Programm aus dem Terminal mit dem Befehl `abcde` [2] gestartet werden: {{{#!vorlage Befehl 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 [#Konfiguration 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: {{{#!vorlage Befehl abcde 1-3 5 11 }}} Um alle Tracks einer CD in __eine__ Datei zu kodieren: {{{#!vorlage Befehl abcde -1 }}} Möchte man zusätzlich auch ein [wikipedia:Cuesheet:] der CD anlegen : {{{#!vorlage Befehl abcde -1 -M }}} Weitere Möglichkeiten sind den [:Shell/man: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]: {{{#!vorlage Befehl 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 [:ripperX#Server:Datenbankserver], Speicherpfaden, Laufwerken gibt es viele Anpassungsmöglichkeiten. Überflüssige Zeilen können problemlos entfernt werden. == CDDB == Der zu verwendende [wikipedia:CDDB: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“ }}} {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> Alternative Server +++ Server Adresse +++ [http://www.gnudb.org/ gnudb.org] {en} `http://gnudb.gnudb.org/~cddb/cddb.cgi` +++ [http://www.freedb2.org/ TrackType.org] {en} `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' }}} ## == Normalisierung == ## NORMALIZERSYNTAX=mp3gain == 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 = {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> Tastenkürzel +++ Taste(n) Funktion +++ [[Vorlage(Tasten, 1)]] Sind mehrere Einträge in der Datenbank vorhanden kann der gewünschte Eintrag gewählt werden z.B. [[Vorlage(Tasten, 2)]] +++ [[Vorlage(Tasten, 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 [:Skripte/Book-To-MP3:Book-To-MP3] und [:Skripte/pdf2mp3: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''': {{{#!vorlage befehl 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 [packages:search?suite=all&searchon=names&keywords=eyed3:eyeD3] aus den Quellen zu deinstallieren und die neuere Version über den Python-Paketmanager [:pip:] zu beziehen: {{{#!vorlage Befehl sudo apt remove eyeD3 pip install --upgrade eyed3 }}} = Links = * [https://abcde.einval.com/ Projektseite] {en} * [uf_thread:109429:HOWTO abcde] {en} * [https://ubuntuforums.org/showpost.php?p=9497485&postcount=62 vorbisgain] {en} * [https://meinnoteblog.wordpress.com/2010/06/12/cds-rippen-unter-ubuntu-mit-abcde/ CDs rippen unter Ubuntu mit abcde] {de} - Blogbeitrag, 06/2010 * [topic:a-better-cd-encoder-abcde-leerzeichen-statt-u:Leerzeichen statt Unterstrich] - Forumsdiskussion * [https://www.linux-user.de/ausgabe/2003/04/070-zubefehl-abcde/index.html Music was my first love...] {de} - LinuxUser 04/2003 * [:CDs_rippen:] {Übersicht} Übersichtsartikel #tag: Shell, Multimedia, Audio, Audiobooks, MP3