Ich möchte alle * .flac in * .mp3 in dem spezifischen Ordner konvertieren.
Das habe ich versucht, aber es funktioniert nicht:
# change to the home directory
cd ~/music
# convert all *.flac files
ffmpeg -i *.flac -acodec libmp3lame *.mp3
# (optional: check whether there are any errors printed on the terminal)
sleep 60
Wie erreiche ich mein Ziel?
bash
shell-script
ffmpeg
Kevin Dong
quelle
quelle
Antworten:
Versuche dies:
quelle
$(basename "${i/.flac}")
den Umgang mit Leerzeichen ändern ?for
Schleife: IFS = $ '\ n'$(basename "${i/.flac}").mp3
zu"$(basename "${i/.flac}").mp3"
(Anführungszeichen)Eine einfache 1-Liner-Lösung:
find -name "*.flac" -exec ffmpeg -i {} -acodec libmp3lame -ab 128k {}.mp3 \;
http://lewisdiamond.blogspot.ca/2012/01/converting-flac-to-mp3.html
Beachten Sie, dass dies im angegebenen Verzeichnis rekursiv angewendet wird. Wenn Sie dies in Ihrem Musikordner ausführen, werden alle Flacs aus Unterordnern konvertiert, und es wird eine MP3-Datei daneben erstellt. Sie können es auch ohne ffmpeg tun, indem Sie direkt flac und lame verwenden (dh w / flac lesen, von Pipe zu Lame, in eine Datei .mp3 ausgeben), wie im Link gezeigt.
quelle
-maxdepth 1
wie in X Tians Antwort denken, um die Rekursivität zu begrenzen.find -name "*.flac" -exec bash -c 'ffmpeg -i "{}" -y -acodec libmp3lame -ab 128k "${0/.flac}.mp3"' {} \;
Wenn die Dateinamen Leerzeichen enthalten:
quelle
Ich habe alles genommen, was ich hier (und vielleicht auch auf anderen Websites) gefunden habe, und ein kleines Tool erstellt, um nicht nur MP3s von Flacs rekursiv zu erstellen, sondern auch relative Pfade beizubehalten, um sie mit Multithread-Unterstützung an anderer Stelle zu erstellen.
oh, und ja, ich verstehe, ich habe ffmpeg in diesem Fall nicht verwendet, weil mein OSMC keine Pakete für ffmpeg, nur für avconv, zur Verfügung stellte, aber da Sie bereits hier sind, schätze ich, wissen Sie, dass es "im Grunde" das ist das Gleiche - zumindest für den wichtigsten Teil. Ersetzen Sie einfach den Befehl "avconv" durch "ffmpeg". Meine ersten Läufe waren mit dem ffmpeg bin und genau den gleichen Optionen.
Ich bin auf keinen Fall ein Bash-Hacker, aber ich habe es geschafft, als mein erstes Bash-Skript mit den gegebenen Anforderungen, und vielleicht wird jemand davon profitieren. Ich bin offen für alle Vorschläge von Ihrer Seite, aber bisher funktioniert es für mich.
Mein Skript zum Hochfahren der 4 Instanzen, eine für jeden Kern, sieht folgendermaßen aus:
Und das Arbeitsskript sieht so aus:
Die finden Sie unter https://github.com/erdnuesse/flac-to-mp3
Grüße, Kay
quelle
Ich habe mit avconv an @ Ketans Antwort gearbeitet, da ffmpeg hier nicht gut funktioniert.
Dadurch werden
flac
Dateien in einem Ordner inmp3
Dateien konvertiert und anschließend in einen vorhandenen "mp3" -Ordner verschoben. Dateien werden im Modell "original_name.flac.mp3" benanntquelle
quelle
GNU Parallel ist für diese Art von Aufgaben gemacht:
Die Jobs werden parallel ausgeführt (ein Job pro CPU-Kern) und es wird sichergestellt, dass die Ausgabe auf dem Terminal nicht gemischt wird.
Um mehr zu erfahren, lesen Sie 15 Minuten lang Kapitel 1 + 2: https://zenodo.org/record/1146014
quelle
{.}.mp3 :::
Konstrukt macht? Oder beziehen Sie sich auf den Handbuchabschnitt, der dies erklärt?Paralleles FTW (Sie haben zweifellos mehr als einen Kern - warum nicht?):
quelle
Wenn Sie beispielsweise mehrere AVI-Dateien haben:
quelle
Wenn es helfen kann ... Ich habe ein kleines Bash-Skript geschrieben, um dies zu tun ... Sie müssen ffmpeg / flac installiert haben.
Wie es funktioniert:
Es braucht 2 Argumente:
Es produziert:
quelle
Um alle flac- oder wav-Dateien in verschachtelten Ordnern rekursiv in mp3 umzuwandeln, habe ich diesen Befehl verwendet:
Es erstellt einen Ordner mit dem Namen "mp3" in dem Ordner mit den Dateien "flac" oder "wav" und speichert relative mp3-Dateien mit einer Bitrate von 320 kbps, ohne die alte Dateierweiterung im Namen zu belassen.
quelle
Der Dateiname ist "wav2mp3"
quelle
für eine in * .flac
do OUTF =
echo "$a" | sed s/\.flac$/.mp3/g
ffmpeg -i "$ a" -acodec libmp3lame "$ OUTF"
getan
quelle
Mir ist klar, dass dies ziemlich spät kommt, aber für den Speicher siehe mein Skript "batchaudiocvt" auf sourceforge. Es ist ein (ziemlich großes) Shell-Skript, das für die effiziente Massenkonvertierung von Audiodateien zwischen vielen Formaten entwickelt wurde. Insbesondere ist es am besten, die üblichen Tags zu konvertieren.
quelle