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ń?
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ń?
Odpowiedzi:
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 -iname
zamiast -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.
find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}"' '{}' \;
'
.
$ for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k "${f/%wav/mp3}"; done
tylko dla 320 kbps mp3
Możesz użyć foobar2000 z koderami dla ogg i mp3. Wierzę, że można znaleźć kodery na rzadkich komputerach .
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.
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