Ho alcune centinaia di file .wav che devo convertire in formato ogg e mp3. C'è un modo in cui posso farlo in batch da Audacity o da qualche altro strumento da riga di comando?
Ho alcune centinaia di file .wav che devo convertire in formato ogg e mp3. C'è un modo in cui posso farlo in batch da Audacity o da qualche altro strumento da riga di comando?
Risposte:
Da una riga di comando simile a Unix (Linux, OSX, ecc.), Ffmpeg può essere usato in questo modo:
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
Questo convertirà ogni WAV in una directory in un MP3 e un OGG; nota che fa distinzione tra maiuscole e minuscole (il comando sopra convertirà ogni file che termina in .wav, ma non in .WAV). Se si desidera una versione senza distinzione tra maiuscole e minuscole:
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
Per convertire ricorsivamente ogni WAV in una directory (ovvero: ogni WAV nella directory corrente e tutte le directory nella directory corrente), è possibile utilizzare 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 rispetto a Dennis per la sua risposta qui per avermi trovato un'implementazione funzionante di find con ffmpeg)
Per la ricerca senza distinzione tra maiuscole e minuscole con find, utilizzare -iname
invece di -name
.
Una nota su -q:a
: per MP3, l'intervallo di qualità è 0-9, dove 0 è la migliore qualità e 2 è abbastanza buono per la maggior parte delle persone per convertire l'audio del CD; per OGG, è 1-10, dove 10 è il migliore e 5 è equivalente alla qualità del CD per la maggior parte delle persone.
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
solo per 320 kbps mp3
È possibile utilizzare foobar2000 con encoder per ogg e mp3. Credo che tu possa trovare encoder su rarewares .
Scarica ffmpeg dal link seguente e installalo: http://ffmpeg.zeranoe.com/builds/
creare ed eseguire file batch con i seguenti comandi in esso:
echo converting *.wav to *.ogg
mkdir ..\Ogg
for /r %%i in (*) do ffmpeg -i %%i -acodec libvorbis ..\Ogg\%%~ni.ogg
Tutti i file * .ogg convertiti verranno copiati nella directory .. \ Ogg.
Ho apportato alcune modifiche a un file bat che ho trovato su SO, ora, si occupa di spazi nei nomi dei file come spesso accade nel nome delle canzoni. questo file bat converte .wav in .mp3, usando lo strumento da riga di comando VLC. Ma puoi cambiare nei formati wma -> mp3 e così via ...
@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 cambia la codifica (per gestire caratteri accentuati.) ab è la velocità in bit qui 320