{{{#!vorlage Wissen [:Anwendungen_hinzufügen:Anwendungen hinzufügen] [:Terminal: Ein Terminal öffnen] [:Programme starten: Ein Programm ohne Menüeintrag starten] optional [:Menüeditor: Programme zum Menü hinzufügen] (optional) [:Paketinstallation_DEB: Ein einzelnes Paket installieren] optional, nur für [#mpck mpck] [:Programme_kompilieren: Programme aus dem Quelltext übersetzen] optional, nur für [#mpck mpck] [:Editor: Einen Editor öffnen] optional, nur [#Wiedergabeliste Wiedergabeliste] [:Rechte: Rechte für Dateien und Ordner ändern] optional, nur [#Wiedergabeliste Wiedergabeliste] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/Oxygen/preferences-desktop-sound.png, 64, align=left)]] Mit den hier vorgestellten Programmen kann eine MP3-Sammlung überprüft werden, um gegebenenfalls fehlerhafte Dateien aufzuspüren. Dies geschieht auf unterschiedliche Art und Weise. Unter anderem können [:Metadaten:] wie ID3-Tags, Datenkompression, Dateninkonsistenzen und die Übereinstimmung mit dem [wikipedia:MP3:]-Standard in den Audiodateien kontrolliert werden, um evtl. Fehler anzuzeigen und zu beheben. Allerdings besitzen nicht alle Programme eine Korrekturfunktion, manche dienen ausschließlich zur Diagnose. Die Programme können in ihrer Funktion aber auch kombiniert eingesetzt werden. Da es sich in der Mehrzahl um Kommandozeilen-Programme handelt, lässt sich durch Angabe eines Ordners oder eines Platzhalters statt einer Einzeldatei auch eine größere Anzahl von Dateien schnell überprüfen. Wer eine grafische Programmoberfläche bevorzugt, findet diese bei [:MP3 Diags:]. = Programme = Nachfolgend eine alphabetische Liste ohne Wertung. Aus Gründen der Übersichtlichkeit sind die Programme in die beiden Abschnitte [#Audiodaten Audiodaten] und [#ID3-Tags ID3-Tags] unterteilt, auch wenn sich einzelne Programme nicht so einfach eingruppieren lassen. {{{#!vorlage Warnung Vor einer Fehlerkorrektur sollte für den Notfall immer eine Sicherung der zu reparierenden Daten angelegt werden. }}} == Audiodaten == [[Vorlage(Bildunterschrift, id3v1_blocks.gif, 250, "Aufbau [http://www.id3.org/ID3v1 ID3v1] {en}", right)]] === mp3check === [sourceforge:mp3check:] {en} überprüft die Datenkonsistenz und gibt – je nach mitgegebenen Parametern – die gefundenen Fehler aus. Das Programm ist in den Paketquellen [1] zu finden: {{{#!vorlage Paketinstallation mp3check, universe }}} Der Aufruf geschieht über das Terminal [2]: {{{#!vorlage Befehl mp3check --cut-junk-start foo.mp3 }}} {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> mp3check +++ Parameter Beschreibung +++ `-3` Nur MP3-Dateien untersuchen (nur in Kombination mit anderen Parametern) +++ `-e` Zyklische Redundanzprüfung +++ `--cut-junk-start` Entfernt Daten vor dem ersten (Audio-)Frame. Achtung: hiervon können u.a. ID3v2.x-Tags betroffen sein. +++ `--cut-junk-end` Entfernt Daten nach dem letzten Frame +++ `-S` Daten vor dem ersten Frame ignorieren (ID3v2.x-Tags bleiben erhalten) +++ `-B` VBR aktivieren }}} Eine vollständige Übersicht zu den Parametern ist der [man:mp3check:Manpage] {en} zu entnehmen. [[Bild(./mp3diags_logo.png, 48, align=right)]] === MP3 Diags === [http://mp3diags.sourceforge.net/ MP3 Diags] {en} hilft bei der Reparatur fehlerhafter MP3-Dateien. Unter anderem wird die Wiederherstellung von VBR-Dateien, die Korrektur der Spieldauer und die Entfernung von fehlerhaften MP3-Dateien unterstützt. Neben der Normalisierung von Audio-Dateien mit [:MP3Gain:] können Metadaten mit dem integrierten Editor bearbeitet und nach unterschiedlichen Kriterien sortiert werden. Im Gegensatz zu den anderen hier vorgestellten Programmen besitzt es eine grafische Oberfläche. Das Programm ist außerordentlich vielseitig. Weitere Details sind im Artikel [:MP3_Diags:] zu finden. [[Bild(./mp3val_logo.jpg, 110, align=right)]] === MP3val === [http://mp3val.sourceforge.net/ MP3val] {en} kann defekte Daten finden und reparieren. Für das Kommandozeilenprogramm gibt es mit '''mp3valgui''' noch eine kleine, in [:Python:] geschriebene grafische Oberfläche, die aber separat über die Projektseite heruntergeladen und manuell installiert werden muss. Einfacher gestaltet sich dagegen die Installation der alternativen GUI [sourceforge:wxmp3val:wxMP3val] {en}, die Fremdpakete für Ubuntu bereitstellt. Zur Installation aus den Paketquellen [1] benötigt man das folgende Paket: {{{#!vorlage Paketinstallation mp3val, universe }}} Der Programmaufruf [2]: {{{#!vorlage Befehl mp3val foo.mp3 -foo.log -f }}} {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> MP3val +++ Parameter Beschreibung +++ `-l foo.log` Protokoll '''foo.log''' anlegen. Fehlt dieses Argument, wird die Ausgabe nach[wikipedia:Standard-Datenströme#Standardausgabe_.28stdout.29:stdout] ausgegeben. +++ `-f` Fehlerreparatur +++ `-p` Ausgabe in eine [:Shell/Umleitungen#Der-Pipe-Operator:Pipe] }}} Eine vollständige Übersicht zu den Parametern findet man in der [man:mp3val:Manpage] {en}. [[Bild(logo200.png, 64, align=right)]] === mpck === [http://checkmate.gissen.nl/ Checkmate mpck] {en} überprüft die Frames und Header von MP3-Dateien auf Konsistenz, um defekte Dateien zu identifizieren. Das Programm dient ausschließlich zur Diagnose, Reparaturen sind nicht möglich. Zur Installation von der [http://checkmate.gissen.nl/download.php Projektseite] {en} das '''.deb'''-Paket herunterladen und manuell installieren [5]. [[Vorlage(Fremd, Paket, "")]] Alternativ kann man auch den Quelltext herunterladen und selbst kompilieren [6]. Zur Überprüfung einer Datei [2] wird das Programm über folgenden Befehl aufgerufen: {{{#!vorlage Befehl mpck foo.mp3 }}} Damit werden Informationen zur MP3-Datei '''foo.mp3''' ausgegeben. Um den kompletten eigenen Musikordner zu überprüfen und das Ergebnis in eine Datei '''fehlerhafte_mp3s.txt''' zu schreiben: {{{#!vorlage Befehl mpck -rB ~/Musik > fehlerhafte_mp3s.txt }}} {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> mpck +++ Parameter Beschreibung +++ `-B` Lediglich defekte MP3-Dateien werden ausgegeben +++ `-R` Verzeichnisse werden rekursiv überprüft +++ `-r` nur MP3-Dateien überprüfen, aber rekursiv }}} Die [:man:Manpage] zum Programm gibt Aufschluss über die möglichen Fehlermeldungen und weitere Parameter. === VBRFix === Bei Dateien mit [wikipedia:Bitrate#Variable_Bitrate:VBR] (variable Bitrate) – das Gegenstück heißt CBR (constant Bitrate) – wird dynamisch komprimiert, wobei die Dateigröße direkt von der Komplexität der Daten abhängt (und damit im Regelfall kleinere Dateien als bei CBR ergibt). Dieses Verfahren wird beispielsweise bei [wikipedia:Ogg:] standardmäßig eingesetzt. Problematisch ist teilweise aber die Bestimmung der Abspieldauer von VBR-kodierten Musikdateien. Häufig kann diese im Voraus nicht exakt bestimmt werden, da sich aus der Dateigröße aufgrund der schwankenden Bitrate vor Kenntnis der konkreten Daten keine Zeitangabe berechnen lässt. Praktisch kann sich das in einer unsinnigen Anzeige bei der Länge der Musikstücks äußern. [http://home.gna.org/vbrfix/ VBRFix] {en} kann unter anderem den dafür verantwortlichen [wikipedia:Xing-Header:Xing VBR header] neu erstellen. Zur Installation wird folgendes Paket benötigt: {{{#!vorlage Paketinstallation vbrfix, universe }}} Über das Terminal [2] ruft man das Programm mit den gewünschten Parametern auf: {{{#!vorlage Befehl vbrfix foo.mp3 foo_neu.mp3 }}} Die Originaldatei bleibt erhalten und eine neue '''foo_neu.mp3''' wird erstellt. {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> VBRFix +++ Parameter Beschreibung +++ `-ri1` ID3v1-Tags entfernen +++ `-ri2` ID3v2-Tags entfernen +++ `-always -makevbr` CBR in VBR umwandeln }}} Weitere Parameter sind in der [man:vbrfix:Manpage] {en} zu finden. === Beispiel === Diagnose mit [#mpck mpck]: {{{ SUMMARY: Limp Bizkit & Eminem - Turn Me Loose.mp3 version MPEG v1.0 layer 3 average bitrate 23222 bps (VBR) samplerate 8000 Hz frames 11965 time 28:42.960 unidentified 3799 b (0%) errors unidentified bytes inconsistent frame headers invalid header values CRC error result Bad }}} Die Datei enthält gleich mehrere Fehler: * [wikipedia:Bitrate:]: 23222 bps entsprechen 23,2 kbps – normal wären mind. 128 kbps (bei CBR; damit ein Indiz für VBR) * Samplerate: viel zu niedrig – normal wären 44100 Hz * Dauer: fast 29 Min. lang – typischer VBR-Fehler * inkonsistente interne Strukturen (Frame Headers) * Prüfsummenfehler (CRC) Nach der Reparatur mit [#MP3val MP3val]: {{{ SUMMARY: Limp Bizkit & Eminem - Turn Me Loose.mp3 version MPEG v1.0 layer 3 bitrate 128000 bps samplerate 44100 Hz frames 11972 time 5:12.737 unidentified 0 b (0%) errors none result Ok }}} == ID3-Tags == Speziell zur Kontrolle und Bearbeitung der Metadaten stehen alternativ mehrere [:Multimedia#Verwaltung:Alternativen] mit grafischer Oberfläche zur Verfügung, die auch den neueren Standard [wikipedia:MP3#Tagging:ID3v2.x] unterstützen. {{{#!vorlage Experten Von ID3v2.x existieren verschiedene Versionen. Zu der damit verbundenen Problematik siehe [:Metadaten#Musik:]. }}} === eyeD3 === [http://eyed3.nicfit.net/ eyeD3] {en} ist ein Programm, mit dem ID3-Tags ausgelesen, bearbeitet und konvertiert werden können. Es unterstützt die Formate ID3 v1.0, v1.1, v2.3 und v2.4 – also alle derzeit relevanten Versionen. Zur Installation wird folgendes Paket benötigt: {{{#!vorlage Paketinstallation eyed3 }}} Anschließend das Programm mit den gewünschten Parametern aufrufen [2]. Beispiel: {{{#!vorlage Befehl eyeD3 -v foo.mp3 }}} {{{ foo.mp3 [ 1.23 MB ] ------------------------------------------------------------------------------- Time: 01:23 MPEG1, Layer III [ 320 kb/s @ 44100 Hz - Joint stereo ] ------------------------------------------------------------------------------- ID3 v2.3: title: foo artist: march album: bar year: 2011 ... }}} {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> eyeD3 +++ Parameter Beschreibung +++ `-h` Hilfe +++ `-v` Informationen zur MP3-Datei erhalten +++ `--to-v1.1` ID3-Tag nach Version 1.1 konvertieren +++ `--to-v2.3` ID3-Tag nach Version 2.3 konvertieren +++ `--artist=TEXT` Künstler setzen +++ `--album=TEXT` Albumname setzen +++ `--title=TEXT` Titel setzen +++ `--track=NUMMER` Titelnummer setzen +++ `--genre=TEXT` Genre setzen +++ `--add-image Cover.jpg:FRONT_COVER` Ein Albumcover hinzufügen +++ `--remove-images` Bilder entfernen +++ `--remove-all` Alle ID3-Tags der Versionen 1.x und 2.x entfernen +++ `--rename=NAME` Dateien umbenennen. Als Basis werden die Tags verwendet. Zur Verfügung stehen u.a. die Variablen: `%A` (Künstler), `%t` (Titel) und `%n` (Stücknummer) }}} Weitere Optionen sind der [man:eyeD3:Manpage] {en} zu entnehmen. [[Vorlage(Bildunterschrift, MP3infoGUI.png, 300, "MP3Info", right)]] === MP3Info === [http://www.ibiblio.org/mp3info/ MP3Info] {en} erlaubt das Anzeigen und Bearbeiten von ID3-Tags in MP3-Dateien. Allerdings beherrscht das Programm nur den älteren Standard [wikipedia:MP3#Tagging:ID3v1], der keine Coverbilder unterstützt. Das Programm besitzt eine grafische Oberfläche (GUI), die bei Bedarf alternativ zur Kommandozeile genutzt werden kann. Folgendes Paket muss installiert werden: {{{#!vorlage Paketinstallation mp3info, universe mp3info-gtk, universe, optionale grafische Oberfläche }}} Der Aufruf geschieht über das Terminal [2]: {{{#!vorlage Befehl mp3info -x foo.mp3 }}} Zum Start der GUI [3] wird der Befehl `gmp3info` verwendet. Auf Wunsch kann ein Menüeintrag [4] vorgenommen werden. {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> MP3Info +++ Parameter Beschreibung +++ `-x foo.mp3` Anzeige der verfügbaren ID3-Tags von '''foo.mp3''' +++ `-i foo.mp3` '''foo.mp3''' wird im Editor geöffnet +++ `-d` ID3-Tag löschen }}} Die [man:mp3info:Manpage] {en} liefert eine vollständige Übersicht zu den Verwendungsmöglichkeiten der Kommandozeilenversion. {{{#!vorlage Hinweis Mit [[Vorlage(Tasten, CTRL+C)]] wird der Editor beendet – jedoch werden die vorgenommenen Änderungen durch den Abbruch nicht gespeichert. }}} [[Vorlage(Bildunterschrift, id3v2_blocks.gif, 250, "Aufbau [http://www.id3.org/ID3v2Easy ID3v2] {en}", right)]] === id3v2 === Da der Nutzen von MP3Info für die eigenen Musikdateien heutzutage begrenzt ist, kommt [sourceforge:id3v2:] {en} ins Spiel. Dieses Programm kann ID3v2-Tags anzeigen, hinzufügen, ändern oder entfernen sowie entsprechende Daten aus vorhandenen ID3v1-Tags erzeugen. Folgendes Paket muss installiert werden: {{{#!vorlage Paketinstallation id3v2, universe }}} Der Aufruf geschieht über das Terminal [2]: {{{#!vorlage Befehl id3v2 -l foo.mp3 }}} zeigt die vorhandenen ID3-Tags an. Weitere Beispiele: {{{#!vorlage Befehl id3v2 -l *.mp3 |grep "No ID3v2 tag" |cut -d ":" -f1 }}} überprüft, ob innerhalb eines Ordners Dateien ohne ID3-Tags enthalten sind. Der Befehl {{{#!vorlage Befehl id3v2 -a Interpret -A Albumname -t Titel -y Erscheinungsjahr foo.mp3 }}} schreibt einige wichtige Eckdaten. {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> id3v2 +++ Parameter Beschreibung +++ `-l` Anzeige vorhandener Tags +++ `-C` ID3v1 in ID3v2 konvertieren +++ `-s` ID3v1-Tags entfernen +++ `-d` ID3v2-Tags entfernen +++ `-D` __alle__ ID3-Tags entfernen }}} Die [man:id3v2:Manpage] {en} liefert eine vollständige Übersicht. [[Bild(./beets_logo.png, 48, align=right)]] === beets === [http://beets.radbox.org/ beets] {en} ist eine relativ neue Anwendung für die Kommandozeile, die MusicBrainz zur Überprüfung der Metadaten einsetzt. Plugins erweitern die vorhandenen Möglichkeiten. Weitere Informationen liefern der Blogbeitrag [http://www.webupd8.org/2012/01/beets-command-line-tool-to-fix-music.html Beets Music Tagger: Command Line Tool To Fix Metadata And Organize Your Music Library] {en} (01/2012) und die [http://readthedocs.org/docs/beets/ Dokumentation] {en}. Folgendes Paket muss installiert werden: {{{#!vorlage Paketinstallation beets, universe }}} = Wiedergabeliste = Um in größeren Musikbeständen Wiedergabelisten zu ergänzen oder zu entfernen empfiehlt es sich ein Skript zu verwenden. Nach gewünschtem Zweck den Code in einem Editor [7] einfügen, die Ausführrechte setzen [8] und '''m3ucreate.sh''' oder '''m3uremove.sh''' im Terminal [2] aufrufen z.B. über: {{{#!vorlage Befehl ./m3ucreate.sh QUELLORDNER }}} {{{#!vorlage Hinweis Die Verzeichnisse werden rekursiv durchsucht. }}} == m3u erzeugen == '''m3ucreate.sh''' {{{#!code bash #!/bin/bash INPUTDIR="$1" cd "$INPUTDIR" INPUTDIR="$PWD" cd "$OLDPWD" filedir="" OLDIFS="$IFS" IFS=$'\n' for filepath in $(find $INPUTDIR -type f -name '*.mp3' -print | sort); do IFS="$OLDIFS" oldfiledir="$filedir" filedir="$(dirname "$filepath")" filename="$(basename "$filepath")" if [ "$oldfiledir" = "$filedir" ]; then echo $filename >> "$filedir/$(echo $filedir | awk -F/ '{ print $(NF-1) " - " $NF }').m3u" else rm -f "$filedir/$(echo $filedir | awk -F/ '{ print $(NF-1) " - " $NF }').m3u" echo $filename > "$filedir/$(echo $filedir | awk -F/ '{ print $(NF-1) " - " $NF }').m3u" fi done exit }}} == m3u entfernen == '''m3uremove.sh''' {{{#!code bash #!/bin/bash INPUTDIR="$1" find $INPUTDIR -type f -name '*.m3u' -delete exit }}} = Links = [[Bild(id3v2.gif, , align=right)]] * [http://www.id3.org/ ID3.org] {en} * [http://www.effinger.org/blog/2008/11/02/mp3-dateien-auf-fehler-testen/ MP3-Dateien auf Fehler testen] {de} * [sourceforge:mp3check:MP3 Check] - nicht mit `mp3check` aus diesem Artikel identisch * [http://mikiwiki.org/wiki/mp3info#Beispiele MP3Info Anwendungsbeispiele] {de} * [sourceforge:mp3val:MP3val] * [http://checkmate.gissen.nl/ Checkmate mpck] {en} - weiteres Komandozeilenprogramm, nur Diagnose * [http://mikiwiki.org/wiki/Checkmate#Verwendung Verwendung] {de} * [http://www.produnis.de/blog/post/2007-2020-alterkram/mp3-dateien-reparieren-mit-mp3val/ Musiksammlung mit mp3val fixen] {de} * [http://www.321tux.de/2009/11/id3-tags-konvertieren-in-id3v2-3/ ID3-Tags konvertieren (in ID3v2.3)] {de} * [http://lbot.wordpress.com/2009/03/07/how-to-fix-corrupted-mp3-album-art-on-the-psp-ipod/ How to fix corrupted mp3 album art on the PSP / Ipod] {en} * [http://superuser.com/questions/129041/any-beat-detection-software-for-linux Any beat detection software for Linux?] {en} * [topic:shell-script-um-fuer-mehrere-ordner-m3u-liste:M3U erzeugen/entfernen] * [https://dupeguru.voltaicideas.net/ dupeGuru] {en} - doppelte Dateien finden #tag: Multimedia, MP3, Audio, Übersicht