¿Convertir biblioteca de pistas WMA a MP3?

¿Convertir biblioteca de pistas WMA a MP3?

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 Instalar convertidor de sonido

y ejecutar Soundconverterdesde el lanzador o terminal

ingrese la descripción de la imagen aquí

La conversión predeterminada es .oggcambiar esto para mp3ir edit-> preferencesal tipo de resultados. Formata MP3 de la siguiente manera:

ingrese la descripción de la imagen aquí

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 ~/wmamp3para hacerlo ejecutable

sudo cp ~/wmamp3 /usr/binpara 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 /tmpen 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

información relacionada