Como converter vários arquivos de um tipo (por exemplo, wav para mp3) usando VLC ou Audacity em um único golpe?

4

Eu tenho 10 arquivos wav. Eu quero converter todos eles em arquivos mp3. Eu consegui fazer isso para um único arquivo (como descrito em Como converter mídia usando VLC? ), mas não quero fazer isso para cada arquivo. Existe uma maneira de converter todos os 10 arquivos em um único golpe? Estou usando o windows 7.

    
por Semjon Mössinger 08.07.2013 / 17:48

3 respostas

10

Eu segui a sugestão de nixda e usei um script em lote. Eu descobri como programar um lote para o Windows 7. Esta é a minha solução:

@echo off
for /f "delims=|" %%f in ('dir /b C:\Any_Directory\*.wav') do (
echo converting      %%f
CALL "C:\Program Files\VideoLAN\VLC\vlc.exe" --intf dummy --dummy-quiet "%%f" --sout="#transcode{acodec=mp3,ab=256,vcodec=dummy}:standard{access=file,mux=raw,dst=MP3_Files/"%%f"}"  vlc://quit
move "%%f" WAV_converted/"%%f"
)

cd MP3_Files
ren *.wav *.mp3
cd ..

echo .
echo .
echo .
echo conversion finished
pause

Como o programa funciona:

  • Todos os arquivos com a extensão .wav na pasta especificada "C: \ Any_Directory \" são convertidos para mp3 (os nomes dos arquivos não devem conter espaços em branco)
  • Os arquivos mp3 são salvos na pasta "MP3_Files" (que já deve existir)
  • Os arquivos wav são enviados para a pasta "WAV_converted" (que já deve existir)
  • "ab = 256" define a taxa de bits. Para converter com, e. taxa de bits 128, substitua por "ab = 128".
  • O arquivo de lote deve ser executado na mesma pasta que os arquivos que você deseja converter (como mencionado por Kevin Heidt)

Dicas  - Remova "--intf dummy --dummy-quiet" do script se você quiser ver a GUI do VLC durante a conversão. Pode ser útil para depuração.

Atualizar Ainda há um bug: Se o nome do arquivo wav contiver um ponto ou vírgula, o nome será truncado (e nenhuma extensão será anexada!). O arquivo é convertido apesar disso. Testado com a versão 1.1.11. Versões mais recentes podem não funcionar!

Adicionado sinal de cotação: --sout="...". Funciona também para versões mais recentes. Testado com a versão 2.1.3 de 64 bits no Windows (veja o VLC página wiki para diferenças na linha de comando para Linux e Windows e exemplos adicionais e opções).

    
por 09.07.2013 / 13:48
0

Eu usei o VLC para converter áudio para um conjunto de arquivos de vídeo, mas a mesma abordagem pode ajudar em qualquer tarefa de transcodificação. Você deve criar um arquivo .bat simples:

for %%a in (*.avi) do "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" -I dummy -vvv "%%a" --sout=#transcode{acodec=mp3,ab=128,channels=2,samplerate=22050}:standard{access=file,mux=ts,dst="%%a_conv.avi"} --sout-keep vlc://quit
  • Esse arquivo em lote fará a varredura de todos os arquivos * .avi na mesma pasta e transcodificá-los com um dado parâmetro descrito em sout = # transcodificar { params }
  • Para saber quais parâmetros você deve usar, é necessário selecionar Menu- > Mídia- > Fluxo ... e selecione todos os parâmetros no assistente da GUI. Na última etapa do assistente, você verá a sequência de parâmetros gerada que deve usar em seu arquivo de lote.
  • Os arquivos de saída terão o sufixo _conv.avi , altere-o se você precisar de outra extensão
por 12.07.2017 / 22:03
0

Para adicionar uma abordagem semelhante encontrada no SO:

As alterações que fiz, permite espaços nos nomes dos diretórios e nos nomes das músicas , pois é sempre (sempre) o caso.

@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
    
por 09.11.2017 / 17:01