Musikdatei-Konvertierung von OGG nach MP3

Transcription

Musikdatei-Konvertierung von OGG nach MP3
Teil 20 - Shellskriptprogrammierung : Musikdatei-Konvertierung von OGG nach MP3
Aufgabenstellung:
In einem gesonderten Verzeichnis befinden sich mehrere OGG-Dateien, die ins MP3-Format umgewandelt werden
sollen. In diesem Quellverzeichnis dürfen sich keine WAV-Dateien befinden (s.u.). Dies ist nur dann sinnvoll, wenn
der MP3-Player keine OGG-Dateien abspielen kann, da OGG eigentlich bezüglich der Kriterien Offenheit,
Kompressionsgrad und Qualitätsverlust das "bessere" Format ist!
Werkzeuge:
oggdec
lame
mv
sed
normalize­audio
for i in ; do ; done
Wandelt OGG in WAV um.
Wandelt WAV in MP3 um.
Verschiebt Dateien.
Streameditor, bearbeitet Datenströme nach Mustern.
Gleicht die Lautstärke mehrerer Musikdateien aneinander an.
For-Schleife
Analyse einer möglichen Lösung:
1. Erstelle mit einem einfachen Texteditor die folgende Textdatei und speichere sie unter ogg_2_mp3.sh .
2. Mache Sie anschließend mit dem Kommanodzeilen-Befehl chmod u+x ogg_2_mp3.sh ausführbar.
3. Starte nun von der Kommandozeile dieses selbst erstellte Programm mit dem Befehl ./ogg_2_mp3.sh
#!/bin/bash mkdir neue_mp3_dateien echo "Ein neuer Ordner für die MP3­Zieldateien wurde erstellt." for f in *.ogg ; do oggdec $f done echo "Die Konvertierung nach WAV ist abgeschlossen." for g in *.wav ; do lame ­h ­b 128 $g mv $g.mp3 neue_mp3_dateien/ done echo "Die Konvertierung nach MP3 ist abgeschlossen." echo "Die MP3­Zieldateien wurden nach neue_mp3_dateien verschoben" cd neue_mp3_dateien for h in *.wav.mp3 ; do neuername=`echo "$h"| sed ­e 's/.wav.mp3$/.mp3/'` mv ­v $h $neuername done echo "Die Benennung der MP3­Zieldateien wurde korrigiert." for i in *mp3 ; do normalize­audio ­m $i done echo "Die Lautstärke der MP3­Zieldateien wurde untereinander angeglichen." cd .. find . ­name "*.wav" | xargs rm echo "Alle im Ursprungsverzeichnis liegenden WAV­Dateien wurden gelöscht."
3. Welcher einfachere Befehl würde im letzten Schritt zum Löschen der WAV-Dateien ausreichen?
4. Was bedeutet die Option ­b des lame-Befehls?
5. Schreibe ein eigenes Skript ogg_2_mp3_eigen.sh mit der gleichen Funktionalität, welches die Zieldateien in
einen neuen Ordner neue_mp3_dateien_eigen schreibt. Benutze wieder For-Schleifen und das Werkzeug
ffmpeg mit den folgenden Optionen:
ffmpeg ­i $f ­acodec mp3 ­b 128 $f.mp3
6. Schreibe ein eigenes Skript mp3_2_ogg.sh, welches den umgekehrten Umwandlungsschritt veranlasst.
Benutze wieder For-Schleifen und das Werkzeug mp32ogg (ohne besondere Optionen).
7. Schreibe das Skript aus Aufgabe 6 viel kürzer als "Einzeiler" (plus Kopfzeile). Tipp: Benutze das * Zeichen!

Documents pareils