Eu tenho algumas centenas de arquivos .wav que eu preciso converter para o formato ogg e mp3. Existe uma maneira que eu possa fazer isso em lote do Audacity ou de alguma outra ferramenta de linha de comando?
Eu tenho algumas centenas de arquivos .wav que eu preciso converter para o formato ogg e mp3. Existe uma maneira que eu possa fazer isso em lote do Audacity ou de alguma outra ferramenta de linha de comando?
Respostas:
De uma linha de comando similar ao Unix (Linux, OSX, etc), o ffmpeg pode ser usado assim:
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
Isso irá converter todos os WAV em um diretório em um MP3 e um OGG; note que é sensível a maiúsculas e minúsculas (o comando acima irá converter todos os arquivos terminados em .wav, mas não em .WAV). Se você quiser uma versão sem distinção entre maiúsculas e 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 converter todos os WAV em um diretório recursivamente (isto é: todos os WAV no diretório atual e todos os diretórios no diretório atual), você poderia 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 respeito a Dennis por sua resposta Aqui para me encontrar uma implementação de trabalho de encontrar com ffmpeg)
Para pesquisa sem distinção entre maiúsculas e minúsculas com find, use -iname
ao invés de -name
.
Uma nota sobre -q:a
: para MP3, a faixa de qualidade é 0-9, onde 0 é a melhor qualidade e 2 é bom o suficiente para a maioria das pessoas para converter áudio em CD; para OGG, é 1-10, onde 10 é o melhor e 5 é equivalente a qualidade de CD para a maioria das pessoas.
find . -type f -name '*.wav' -exec bash -c 'ffmpeg -i "$0" -c:a libmp3lame -q:a 2 "${0/%wav/mp3}"' '{}' \;
Você poderia usar foobar2000 com codificadores para ogg e mp3. Eu acredito que você pode encontrar codificadores em rarewares .
Faça o download do ffmpeg no link abaixo e instale-o: http://ffmpeg.zeranoe.com/builds/
crie e execute o arquivo de lote com os seguintes comandos:
echo converting *.wav to *.ogg
mkdir ..\Ogg
for /r %%i in (*) do ffmpeg -i %%i -acodec libvorbis ..\Ogg\%%~ni.ogg
Todos os arquivos * .ogg convertidos serão copiados para o diretório .. \ Ogg.
Eu fiz algumas alterações em um arquivo bat que encontrei no SO, agora, lida com espaços em nomes de arquivos, como é frequentemente o caso no nome das músicas. este arquivo bat converte .wav para .mp3, usando a ferramenta de linha de comando VLC. Mas você pode mudar para os formatos wma - & gt; mp3 e assim por diante ...
@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 muda a codificação (para lidar com caracteres acentuados.) ab é a taxa de bits aqui 320