M4A zu MP3 Massenumwandlung (Debian / 09.04.2025)
Das Script wandelt rekursiv beginnend ab einem Pfad ($1) M4A-Audiodateien in MP3 um. Die Qualität bleibt nahezu gleich. Der Pfad ist dem $1-Argument zu übergeben.
Die daraus entstehende MP3 ist gleichnamig wie die M4A Datei.
🧾und Was macht das Skript?
📁 1. Eingabeparameter prüfen
Erwartet ein Verzeichnis als erstes ArgumentWenn kein Argument oder kein Verzeichnis → Fehlermeldung + Exit
🔍 2. Suche nach .m4a
-Dateien
Durchsucht rekursiv das VerzeichnisIgnoriert Groß-/Kleinschreibung (-iname)Liefert eine Liste aller.m4a-Dateien
🔁 3. Verarbeitung jeder Datei
Füdafür jede .m4a-Datei:benötigt.
a. Bestimme Zieldateiname .mp3
:
b. Überspringen, wenn .mp3
bereits existiert:
c. Umwandlung per ffmpeg
:
Eingabe: M4A-DateiAusgabe: MP3 mitLAME-Codec(libmp3lame)Qualität:-qscale:a 4=gute VBR-Qualität(~160 kbps)-y= automatische Überschreibung (falls Datei entstehen würde)< /dev/null= verhindert interaktive Prompts
d. Erfolgskontrolle
✅ Ausgabe:
Gibt für jede Datei an, ob sie:übersprungenwurdeerfolgreich konvertiertwurdeeinenFehlererzeugt hat
🧰 Benötigte Pakete / Tools
|
| |
|
|
Script:
#!/bin/bash
DIR="$1"
if [ -z "$DIR" ] || [ ! -d "$DIR" ]; then
echo "Usage: $0 /pfad/zum/verzeichnis"
exit 1
fi
find "$DIR" -type f -iname "*.m4a" | while read -r M4A; do
MP3="${M4A%.m4a}.mp3"
# Nur umwandeln, wenn mp3 nicht schon existiert
if [ -f "$MP3" ]; then
echo "Überspringe (bereits vorhanden): $MP3"
continue
fi
echo "Wandle um: $M4A → $MP3"
ffmpeg -i "$M4A" -codec:a libmp3lame -qscale:a 4 "$MP3" -y < /dev/null
if [ $? -eq 0 ]; then
echo "Erfolg: $MP3"
else
echo "Fehler bei: $M4A"
fi
done