Tengo unos cientos de archivos .wav que necesito convertir a formato ogg y mp3. ¿Hay alguna manera de que pueda hacer esto en lote desde Audacity o desde alguna otra herramienta de línea de comandos?
Tengo unos cientos de archivos .wav que necesito convertir a formato ogg y mp3. ¿Hay alguna manera de que pueda hacer esto en lote desde Audacity o desde alguna otra herramienta de línea de comandos?
Respuestas:
Desde una línea de comandos similar a Unix (Linux, OSX, etc.), ffmpeg se puede usar así:
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
Esto convertirá cada WAV en un directorio en un MP3 y un OGG; tenga en cuenta que distingue entre mayúsculas y minúsculas (el comando anterior convertirá cada archivo que termine en .wav, pero no en .WAV). Si quieres una versión que no distinga entre mayúsculas y minúsculas:
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
Para convertir cada WAV en un directorio de forma recursiva (es decir: cada WAV en el directorio actual y todos los directorios en el directorio actual), puede usar 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 respeto a Dennis por su respuesta aquí por encontrarme una implementación funcional de find con ffmpeg)
Para la búsqueda que no distingue entre mayúsculas y minúsculas con find, use en -iname
lugar de -name
.
Una nota sobre -q:a
: para MP3, el rango de calidad es 0-9, donde 0 es la mejor calidad y 2 es lo suficientemente bueno para la mayoría de las personas para convertir audio de CD; para OGG, es 1-10, donde 10 es el mejor y 5 es equivalente a la calidad de CD para la mayoría de las personas.
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 para mp3 de 320 kbps
Puede usar foobar2000 con codificadores para ogg y mp3. Creo que puedes encontrar codificadores en rarewares .
Descargue ffmpeg desde el siguiente enlace e instálelo: http://ffmpeg.zeranoe.com/builds/
cree y ejecute un archivo por lotes con los siguientes comandos:
echo converting *.wav to *.ogg
mkdir ..\Ogg
for /r %%i in (*) do ffmpeg -i %%i -acodec libvorbis ..\Ogg\%%~ni.ogg
Todos los archivos * .ogg convertidos se copiarán al directorio .. \ Ogg.
Hice algún cambio en un archivo bat que encontré en SO, ahora trata con espacios en los nombres de los archivos, como suele ser el caso en el nombre de las canciones. este archivo bat convierte .wav a .mp3, usando la herramienta de línea de comandos VLC. Pero puede cambiar a los formatos wma -> mp3, etc.
@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 codificación (para tratar con caracteres acentuados). ab es la tasa de bits aquí 320