Konwersja wsadowa .wav na mp3 i ogg?

20

Mam kilkaset plików .wav, które muszę przekonwertować na format ogg i mp3. Czy jest sposób, że mogę to zrobić wsadowo z Audacity lub z innego narzędzia wiersza poleceń?


źródło

Odpowiedzi:

25

Z wiersza poleceń podobnego do Uniksa (Linux, OSX itp.) Ffmpeg może być używany w następujący sposób:

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

Spowoduje to konwersję każdego pliku WAV w katalogu na jeden plik MP3 i jeden plik OGG; zauważ, że wielkość liter ma znaczenie (powyższe polecenie przekształci każdy plik z rozszerzeniem .wav, ale nie .WAV). Jeśli potrzebujesz wersji bez rozróżniania wielkości liter:

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

Aby rekurencyjnie przekonwertować każdy plik WAV w katalogu (to znaczy: każdy plik WAV w bieżącym katalogu i wszystkie katalogi w bieżącym katalogu), możesz użyć 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}' '{}' \;

(Maksymalny szacunek dla Dennisa za jego odpowiedź tutaj za znalezienie mi działającej implementacji find z ffmpeg)

W przypadku wyszukiwania bez rozróżniania wielkości liter z funkcją find użyj -inamezamiast -name.

Uwaga na temat -q:a: w przypadku MP3 zakres jakości wynosi 0–9, gdzie 0 to najlepsza jakość, a 2 to wystarczająca ilość dla większości ludzi do konwersji audio CD; dla OGG jest to 1-10, gdzie 10 to najlepsza, a 5 odpowiada jakości CD dla większości ludzi.

zła
źródło
4
Bardzo przydatne. Zmodyfikowałem to, aby rekurencyjnie konwertować .wav na mp3, ponieważ nie potrzebowałem ogg:find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}"' '{}' \;
smg
Trzeci przykład konwersji rekurencyjnej jest niezgodny '.
Anafora,
$ for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k "${f/%wav/mp3}"; donetylko dla 320 kbps mp3
qwr
3

Możesz użyć foobar2000 z koderami dla ogg i mp3. Wierzę, że można znaleźć kodery na rzadkich komputerach .

Nils Magne Lunde
źródło
2

Wygląda na to, że możesz użyć oggenc do konwersji WAV na OGG, a lame do konwersji WAV na MP3.

Christian Mann
źródło
2

Pobierz ffmpeg z poniższego linku i zainstaluj go: http://ffmpeg.zeranoe.com/builds/

utwórz i uruchom plik wsadowy zawierający poniższe polecenia:

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

Wszystkie przekonwertowane pliki * .ogg zostaną skopiowane do katalogu .. \ Ogg.

Satja
źródło
0

Wprowadziłem pewne zmiany do pliku nietoperza, który znalazłem w SO, teraz zajmuje się spacjami w nazwach plików, jak to często bywa w przypadku nazw piosenek. ten plik nietoperza przekonwertuj .wav na .mp3, używając narzędzia wiersza poleceń VLC. Ale możesz zmienić format na wma -> mp3 i tak dalej ...

@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 zmień kodowanie (aby poradzić sobie z akcentowanymi znakami). ab to szybkość transmisji tutaj 320

Tomek
źródło