
Eu sei que existem opções como o Sound Converter para fazer uma faixa ou diretório por vez, mas existem ferramentas que rastreiam recursivamente os subdiretórios de um diretório e convertem todos os WMA em MP3?
Basicamente, eu gostaria de deixá-lo solto no meu ~/Music e deixá-lo fazer seu trabalho sem que eu tenha que fornecer manualmente um subdiretório de cada vez.
Responder1
InstalarConversor de som
e execute Soundconverter
a partir do inicializador ou terminal
A conversão padrão é .ogg
alterar para mp3
o edit-> preferences
tipo de resultados. Format
para MP3 da seguinte forma:
Clique em adicionar pasta e selecione sua pasta de música. Você pode selecionar a pasta de saída na configuração de preferência acima antes de clicar em converter.
Espero que isso seja feito com dois cliques :)
Responder2
É provável que o MPlayer já esteja instalado. Certifique-se também de que você tem coxo:
sudo apt-get install mplayer lame
Depois, há duas maneiras de fazer isso, uma versão fácil de ler e um script curto e sujo para fazer isso:
Todos os wma devem estar no seu diretório atual. Crie um arquivo chamado wmamp3 em seu diretório inicial (~/) contendo:
#!/bin/bash
current_directory=$( pwd )
#remove spaces
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done
#remove uppercase
for i in *.[Ww][Mm][Aa]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done
#Rip with Mplayer / encode with LAME
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -ao pcm:waveheader $i && lame -m s audiodump.wav -o $i; done
#convert file names
for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done
#cleanup
rm audiodump.wav
chmod +x ~/wmamp3
para torná-lo executável
sudo cp ~/wmamp3 /usr/bin
para colocá-lo em algum lugar útil no seu caminho
Digite “wmamp3” para executar sua conversão.
A versão curta e suja (faz exatamente o mesmo que acima):
for i in *.wma ; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm -ao pcm:waveheader "$i" && lame -m j -h --vbr-new -b 160 audiodump.wav -o "`basename "$i" .wma`.mp3"; done; rm -f audiodump.wav
Responder3
Mplayer e lame devem ser instalados primeiro:
sudo apt-get install mplayer lame
Em seguida, crie o script (página de referência ) e execute-o:
#!/bin/bash
# By Marko Haapala
# converts wma to mp3 recursively. does not delete any static files, so
# cleanup and renaming is needed afterwards.
#
# requirements:
# lame - http://lame.sourceforge.net/download.php
# mplayer - apt-get install mplayer or http://www.mplayerhq.hu/design7/dload.html
current_directory=$(pwd)
wma_files=$(find "${current_directory}" -type f -iname "*.wma")
# Need to change IFS or files with filenames containing spaces will not
# be handled correctly by for loop
IFS=$'\n'
for wma_file in ${wma_files}; do
mplayer -vo null -vc dummy -af resample=44100 \
-ao pcm -ao pcm:waveheader "${wma_file}" && lame -m s \
audiodump.wav -o "${wma_file}".mp3
rm audiodump.wav
done
Parece que faz exatamente o que você deseja. Tenha em mente que você pode querer mexer nas bandeiras esfarrapadas para garantir que obterá o nível de qualidade desejado.
Responder4
Eu sei que isso é um pouco antigo, mas modifiquei o script mostrado por David Futcher. As mudanças são:
Use
/tmp
em vez da pasta atual para o arquivo wav temporário (isso deu uma grande aceleração quando usei para converter arquivos em um pendrive).Remova os arquivos wma depois de terem sido convertidos (com sorte, com sucesso).
Aqui está:
#!/bin/bash
# By Marko Haapala
# converts wma to mp3 recursively. does not delete any static files, so
# cleanup and renaming is needed afterwards.
#
# Modified by V10lator
# to delete the wma files and to use /tmp for temporary files
#
# requirements:
# lame - http://lame.sourceforge.net/download.php
# mplayer - apt-get install mplayer or http://www.mplayerhq.hu/design7/dload.html
current_directory=$(pwd)
tmp_file=$(mktemp -t -u --suffix=.wav)
wma_files=$(find "${current_directory}" -type f -iname "*.wma")
# Need to change IFS or files with filenames containing spaces will not
# be handled correctly by for loop
IFS=$'\n'
for wma_file in ${wma_files}; do
mplayer -vo null -vc dummy -af resample=44100 \
-ao pcm -ao pcm:waveheader -ao pcm:file="${tmp_file}" \
"${wma_file}" && lame -m s "${tmp_file}" \
-o "${wma_file}".mp3 && rm "${wma_file}"
rm "${tmp_file}"
done