Seite 1 von 1

AAC und MP3 Dateien nach MP3 konvertieren

Verfasst: Samstag 16. April 2011, 16:39
von devek
Hallo,

ich möchte gerne einen ganzen Stapel AAC und MP3 Dateien, deren Bitraten zwischen 256 und 320 kBit/s liegen in MP3 mit 128 kBit/s konvertieren.

Bisher habe ich das hier gebastelt:

Code: Alles auswählen

if engine == "lame":
	command = 'lame --quiet -b %d "%s" "%s"' % (bitrate, infile, outfile)
if engine == "ffmpeg":
	command = 'ffmpeg -i "%s" -acodec libmp3lame -ac 2 -ab %d "%s"' % (infile, bitrate*1024, outfile)
os.system(command)
Das Problem ist nur, dass weder das eine, noch das andere Programm die Metadaten richtig übernehmen. Gibt es eventuell die Möglichkeit das direkt aus Python zu erledigen?

Grüße,

devek

Re: AAC und MP3 Dateien nach MP3 konvertieren

Verfasst: Samstag 16. April 2011, 19:30
von problembär
Vielleicht liegt's an den " und der %-Konstruktion. Versuch doch mal, den String über '+' aufzubauen und laß Dir mit 'print' ausgeben, was genau an os.system() geschickt wird.

Oder probier' das mal mit subprocess. Da werden die Argumente AFAIR in einer Liste übergeben, um solche Probleme zu vermeiden.

Gruß

Re: AAC und MP3 Dateien nach MP3 konvertieren

Verfasst: Samstag 16. April 2011, 20:25
von lunar
@devek: In der Dokumentation von "ffmpeg" wird die Option "--map_metadata" beschrieben, mit der man die Metadaten wohl kopieren kann. Ansonsten kannst Du das Modul "mutagen" verwenden, um die Metadaten manuell aus der Quelldatei auszulesen und in die Zieldatei zu schreiben.

Nutze bitte "subprocess" zur Ausführung der Prozesse. Damit kannst Du die Befehle bequem als Liste zusammen bauen, ohne umständlich mit Anführungszeichen und Zeichenkettenformatierung zu hantieren.

Falls es Dir nicht um die Übung in Python, sondern nur um das Ergebnis geht, ist es vielleicht wohl sinnvoller, einfach ein bereits existierendes Programm wie SoundKonverter oder Perl Audio Converter zu nutzen, anstatt das Rad neu zu erfinden :)

Re: AAC und MP3 Dateien nach MP3 konvertieren

Verfasst: Samstag 16. April 2011, 20:38
von busfahrer
Hallo

wie @lunar schon schrieb gibt es für ffmpeg die Option "-map_meta_data". Das würde dann vereinfacht so aussehem

Code: Alles auswählen

ffmpeg -i <infile> <outfile> -map_meta_data 0:0
Gruß...busfahrer

Re: AAC und MP3 Dateien nach MP3 konvertieren

Verfasst: Samstag 16. April 2011, 20:40
von devek
Danke für den Tipp, mit

Code: Alles auswählen

-map_meta_data "%s":"%s
funktioniert es jetzt gut.

Es geht bei meinem Programm darum, dass ich eine Ordnerstruktur genau abbilde, und dabei alles in 128 kBit/s zu konvertieren. Die Speicherkarte meines Handys reicht nicht mehr aus. Und so möchte ich jetzt alles konvertieren, brauche dabei allerdings die Flexibiltät mit os.path.walk und vor allem diversen Stringoperationen auf die Dateinamen.

Subprocess schreibe ich auf meine Leseliste.

Das Ergebnis ist inzwischen fertig, sieht noch ziemlich gruselig aus, macht aber, was es soll :)