
Sé que hay opciones como Sound Converter para hacerlos una pista o directorio a la vez, pero ¿hay alguna herramienta que rastree recursivamente los subdirectorios de un directorio y convierta todos los WMA a MP3?
Básicamente, me gustaría soltarlo en mi ~/Music y dejar que haga su trabajo sin tener que darle manualmente un subdirectorio a la vez.
Respuesta1
InstalarConvertidor de sonido
y ejecutar Soundconverter
desde el lanzador o terminal
La conversión predeterminada es .ogg
cambiar esto para mp3
ir edit-> preferences
al tipo de resultados. Format
a MP3 de la siguiente manera:
Haga clic en agregar carpeta y luego seleccione su carpeta de música. Puede seleccionar la carpeta de salida en la configuración de preferencias anterior antes de hacer clic en convertir.
Espero que esto se haga con dos clics :)
Respuesta2
Es probable que MPlayer ya esté instalado. También asegúrate de tener cojos:
sudo apt-get install mplayer lame
Luego hay dos formas de hacerlo, una versión fácil de leer y un script breve y sencillo para hacerlo:
Todos los archivos wma deben estar en su directorio actual. Cree un archivo llamado wmamp3 en su directorio de inicio (~/) que contenga:
#!/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 hacerlo ejecutable
sudo cp ~/wmamp3 /usr/bin
para colocarlo en algún lugar útil en tu camino
Escriba "wmamp3" para ejecutar su conversión.
La versión corta y sucia (hace exactamente lo mismo que arriba):
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
Respuesta3
Primero se deben instalar Mplayer y Lame:
sudo apt-get install mplayer lame
Luego crea el script (página de referencia ) y ejecutarlo:
#!/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 hace exactamente lo que quieres. Tenga en cuenta que es posible que desee jugar con las banderas aburridas para asegurarse de obtener el nivel de calidad deseado.
Respuesta4
Sé que esto es un poco antiguo pero modifiqué el guión mostrado por David Futcher. Los cambios son:
Úselo
/tmp
en lugar de la carpeta actual para el archivo wav temporal (esto aceleró mucho cuando lo usé para convertir archivos en una memoria USB).Elimine los archivos wma después de que se hayan convertido (con suerte, con éxito).
Aquí lo tienes:
#!/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