2016-11-15 6 views
1

Ich war auf der Suche nach einer Möglichkeit zur Batch-Reduzierung MP3-Bitrate auf meiner umfangreichen Sammlung von MP3-Dateien. Es war überraschend schwierig angesichts der Tatsache, dass dies eine sehr gemeinsame Sache sein muss.Batch reduzieren Bitrate und Größe von MP3-Audiodateien mit ffmpeg

In der Tat gibt es Dutzende, vielleicht Hunderte von Posts von Leuten, die fragen, wie man es macht, und Dutzende von Dienstprogrammen für unterschiedliche Geldbeträge, die behaupten, genau das zu tun. Als ich mich umschaute und einige freie Software ausprobierte, war ich überrascht, dass niemand die Aufgabe der Batch-Konvertierung/Anpassung einfach machte.

Wenn ich eine einzelne Datei konvertieren wollte, bin ich gesagt, dass dies eine anständige Art und Weise ist, es zu tun:

ffmpeg -y -loglevel "error" -i "my_music_file.mp3" -acodec libmp3lame -ab $BITRATE "my_music_file_new.mp3" 

(Obwohl ich, wenn die Datei in dem an Ort und Stelle und führte geändert wurde lieber gleicher Name.)

Ich brauche ein einfaches Bash-Skript mit ffmpeg, das rekursiv durch mein Musikverzeichnis geht und die Bitrate meiner mp3-Dateien ändert.

+1

Sie können Antworten auf Ihre eigenen Fragen geben, überlegen Sie sich, Ihre Frage als typische Frage neu zu schreiben und geben Sie Ihre Lösung als Antwort auf die Frage an. Dadurch können die Leute auch wissen, dass die Frage eine akzeptierte Lösung hat. – LordNeckbeard

Antwort

3

Es dauerte ein bisschen fiedeln, um die richtigen ffmpeg und Optionen zu finden, aber das sollte es tun.

#!/bin/bash 
MUSIC="FULL PATH TO YOUR MUSIC FOLDER" 
BITRATE=160k 
find "${MUSIC}" -name "*.mp3" -execdir echo "{}" \; -exec mv "{}" "{}.mp3" \; -exec ffmpeg -y -loglevel "error" -i "{}.mp3" -acodec libmp3lame -ab $BITRATE "{}" \; -exec rm "{}.mp3" \; 

Da ffmpeg nicht ausgeben kann auf die gleiche Eingabedatei ohne es zu nuking, das Skript zunächst die Datei umbenennt, einen neuen am gewünschten Bitrate baut, entfernt dann die alte Datei.

Ich bin sicher, dass viele Leute hier Verbesserungen vorgeschlagen haben. Ich begrüße sicherlich Wege, um das Skript lesbarer zu machen.