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?
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:
(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 -inamelugar 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.
Muy útil. Modifiqué esto para convertir por lotes .wav a mp3 de forma recursiva, ya que no necesitaba ogg:find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}"' '{}' \;
smg
El tercer ejemplo, para la conversión recursiva, no coincide '.
Anaphory
$ for f in *.wav; do ffmpeg -i "$f" -c:a libmp3lame -b:a 320k "${f/%wav/mp3}"; donesolo para mp3 de 320 kbps
qwr
3
Puede usar foobar2000 con codificadores para ogg y mp3. Creo que puedes encontrar codificadores en rarewares .
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
Respuestas:
Desde una línea de comandos similar a Unix (Linux, OSX, etc.), ffmpeg se puede usar así:
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:
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
:(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.fuente
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 kbpsPuede usar foobar2000 con codificadores para ogg y mp3. Creo que puedes encontrar codificadores en rarewares .
fuente
Parece que puede usar oggenc para convertir WAV en OGG, y puede usar cojo para convertir WAV en MP3.
fuente
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:
Todos los archivos * .ogg convertidos se copiarán al directorio .. \ Ogg.
fuente
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.
chcp cambia la codificación (para tratar con caracteres acentuados). ab es la tasa de bits aquí 320
fuente