Batch .wav in mp3 und ogg konvertieren?

20

Ich habe ein paar hundert .wav-Dateien, die ich sowohl in das ogg- als auch in das mp3-Format konvertieren muss. Gibt es eine Möglichkeit, dies im Batch von Audacity oder einem anderen Befehlszeilentool aus zu tun?


quelle

Antworten:

25

In einer Unix-ähnlichen Befehlszeile (Linux, OSX usw.) kann ffmpeg folgendermaßen verwendet werden:

for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f/%wav/mp3}" -c:a libvorbis -q:a 4 "${f/%wav/ogg}"; done

Dadurch wird jedes WAV in einem Verzeichnis in ein MP3- und ein OGG-Format konvertiert. Beachten Sie, dass zwischen Groß- und Kleinschreibung unterschieden wird (der obige Befehl konvertiert jede Datei, die mit .wav endet, jedoch nicht mit .WAV). Wenn Sie eine Version ohne Berücksichtigung der Groß- und Kleinschreibung wünschen:

for f in *.{wav,WAV}; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f%.*}.mp3" -c:a libvorbis -q:a 4 "${f%.*}.ogg"; done

Um jeden WAV in einem Verzeichnis rekursiv zu konvertieren (dh jeden WAV im aktuellen Verzeichnis und alle Verzeichnisse im aktuellen Verzeichnis), können Sie Folgendes verwenden find:

find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}" -c:a libvorbis -q:a 4 "${f/%wav/ogg}' '{}' \;

(Max Respekt an Dennis für seine Antwort hier für die Suche nach einer funktionierenden Umsetzung von find mit ffmpeg)

Verwenden Sie -inamefür die Suche ohne Berücksichtigung der Groß- / Kleinschreibung mit find anstelle von -name.

Ein Hinweis zu -q:a: Für MP3 liegt der Qualitätsbereich zwischen 0 und 9, wobei 0 die beste Qualität darstellt und 2 für die meisten Menschen zum Konvertieren von CD-Audio ausreicht. für OGG ist es 1-10, wobei 10 die beste und 5 die CD-Qualität für die meisten Menschen ist.

Übelsuppe
quelle
4
Sehr hilfreich. Ich habe dies geändert, um .wav rekursiv in mp3 zu konvertieren, da ich ogg nicht brauchte:find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}"' '{}' \;
smg
Das dritte Beispiel für die rekursive Konvertierung stimmt nicht überein '.
Anaphory
$ for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k "${f/%wav/mp3}"; donenur für 320 kbps mp3
qwr
2

Sieht so aus, als könnten Sie mit oggenc WAV in OGG und mit lame WAV in MP3 konvertieren.

Christian Mann
quelle
2

Laden Sie ffmpeg von untenstehendem Link herunter und installieren Sie es: http://ffmpeg.zeranoe.com/builds/

Erstellen und Ausführen einer Batch-Datei mit folgenden Befehlen:

echo converting *.wav to *.ogg 
mkdir ..\Ogg
for /r %%i in (*) do ffmpeg -i %%i -acodec libvorbis ..\Ogg\%%~ni.ogg

Alle konvertierten * .ogg-Dateien werden in das Verzeichnis .. \ Ogg kopiert.

Sathya
quelle
0

Ich habe einige Änderungen an einer Fledermausdatei vorgenommen, die ich auf SO gefunden habe. Jetzt werden Leerzeichen in Dateinamen behandelt, wie dies häufig bei Titelnamen der Fall ist. Diese Fledermausdatei konvertiert .wav in .mp3 mit dem VLC-Befehlszeilentool. Du kannst aber zu den Formaten wma -> mp3 und so weiter wechseln ...

@echo off
chcp 65001
SETLOCAL ENABLEDELAYEDEXPANSION

for /f "delims=" %%f IN ('dir /b /s "YOUR_DISK:\Path\To\Your Music\That May contain Spaces\*.wav"') do (
set file1=%%~nf.mp3
echo "file :" !file1!
set fic1=%%f
echo "file : " !fic1!

CALL "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"  "!fic1!" --sout="#transcode{vcodec=none,acodec=mp3,ab=320,channels=2,samplerate=48000}:std{access=file{no-overwrite},mux=mp3,dst="""!file1!"""}" vlc://quit
)

echo .
echo conversion finished
pause

chcp ändere die Kodierung (um mit akzentuierten Zeichen umzugehen). ab ist hier die Bitrate 320

Tom
quelle