FLAC in MP3 mit FFMPEG konvertieren?

733
Desmond Smith

Also verwende ich ffmpeg, um flac-Dateien aus einem bestimmten Ordner in mp3-Dateien mit 320 kbitrate zu konvertieren.

Ich verwende diese Antwort als Referenz.

https://stackoverflow.com/a/41096234/9259505

Der Befehl, den ich in der Windows-Befehlsshell verwende, lautet also

ffmpeg -i infile.flac -c:v copy -b:a 320k outfile.mp3 

aber das ist nur für ein lied. Wie kann ich diesen Befehl ändern, um alle .flac-Dateien im Arbeitsverzeichnisordner zu durchlaufen?

Ich habe diese 2 selbst ausprobiert, aber sie funktionieren nicht.

for file in 'C:\Users\...' *.flac; do ffmpeg -i "$file" -c:v copy -q:a 0 "$".mp3; done  ffmpeg -i "*.flac" -c:v copy -q:a 0 outfile.mp3 

Hinweis: Ich verwende die Kopie -c: v, weil das Album-Artwork letztendlich transkodiert wird, was zu einer viel größeren Datei führt, die ich zu vermeiden versuche. Der Befehl muss also die Streams kopieren.

Betriebssystem: Windows 10

0
Welches Betriebssystem? Bei Ihrer Frage fehlen diese wesentlichen Informationen. Bitte [bearbeiten] DavidPostill vor 6 Jahren 1

1 Antwort auf die Frage

1
Michael Harvey

Sie sagen, Sie verwenden die Windows-Befehlsshell, aber die erste von Ihnen angezeigte Befehlszeile (die "for file in" beginnt) sieht nicht wie Windows aus, sondern eher wie eine Art Linux-Shellbefehl. Die zweite Funktion funktioniert nicht, da ffmpeg keinen Platzhalter als Eingabedateispezifikation akzeptiert.

Dieser einzeilige Windows-Befehl macht das, was Sie zu wollen scheinen, damit ffmpeg (mit Ihren Optionen oben) jede flac-Datei im aktuellen Ordner als Eingabe übernimmt und im selben Ordner eine mp3-Datei mit derselben Datei ausgibt Name vor der Erweiterung:

Bei Aufforderung:

for %A in (*.flac) do ffmpeg -i "%~nA.flac" -c:v copy -b:a 320k "%~nA.mp3" 

Wenn die MP3-Datei bereits vorhanden ist, werden Sie von ffmpeg gefragt, ob Sie sie überschreiben möchten.

Hinweis: Der obige Befehl wurde für die Befehlszeile erstellt. Es funktioniert nicht in einem Batch-Skript. Dafür müssen Sie alle Prozentzeichen (%) auf diese Weise verdoppeln

Im Batch-Skript (cmd):

for %%A in (*.flac) do ffmpeg -i "%%~nA.flac" -c:v copy -b:a 320k "%%~nA.mp3" 
der einzige funktionierende Code, den ich gefunden habe MonsterMMORPG vor 5 Jahren 0