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 isso para um único arquivo (como descrito em Como converter mídia usando o VLC? ), mas eu 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.


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 para versões mais recentes também. Testado com a versão 2.1.3 de 64 bits no Windows (consulte o Página wiki do VLC para diferenças na linha de comando para Linux e Windows e exemplos adicionais e opções).


1
Nota: isso pressupõe que seu arquivo de lote está sendo executado na mesma pasta que os arquivos que você deseja converter (D: \ "pasta xyz" \ VLC_batch)
Kevin Heidt

1
link de videolan está morto ...
Kev

Esta ainda é uma solução boa e funcional. Uma nota; Eu usei para converter uma carga dos meus arquivos do Soundcloud, e tudo o que o SC tinha chamado com um% convertido em um arquivo de tamanho zero. Fácil o suficiente para consertar os nomes de arquivos primeiro.
Whelkaholism

Também não gosta de parênteses no nome do arquivo.
Whelkaholism

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 determinado params descrito em sout = # transccode { params }
  • Para saber quais parâmetros você deve usar, é necessário selecionar Menu- & gt; Mídia- & gt; 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.
  • Arquivos de saída terão _conv.avi sufixo, altere-o se precisar de outra extensão

0

Para adicionar uma abordagem semelhante encontrada no SO:

As mudanças que fiz, permite espaços nos nomes dos diretórios e nos nomes das músicas como costuma ser (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

Bom ... bom trabalho. Agora, para aceitar um caminho como um argumento e permitir todos os caracteres aceitáveis ​​em nomes de arquivos (atualmente falha se o nome do arquivo tiver, por exemplo, um '!')
Krakkos
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.