web-dev-qa-db-fra.com

Convertir une bibliothèque de pistes WMA en MP3?

Je sais qu'il existe des options, telles que Sound Converter, permettant de créer une piste ou un répertoire à la fois, mais existe-t-il des outils permettant d'explorer de manière récursive les sous-répertoires d'un répertoire et de convertir tous les fichiers WMA en MP3?

En gros, je voudrais le laisser perdre sur mon ~/Music et le laisser faire sans que je sois obligé de lui donner manuellement un sous-répertoire à la fois.

28
Mike Crittenden

MPlayer est probablement déjà installé. Assurez-vous également que vous avez boiteux:

Sudo apt-get install mplayer lame

Ensuite, il y a deux façons de le faire, une version facile à lire et un script court et compliqué pour le faire:

Tous les wma devraient être dans votre répertoire actuel. Créez un fichier appelé wmamp3 dans votre répertoire personnel (~ /) contenant:

#!/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 pour le rendre exécutable

Sudo cp ~/wmamp3 /usr/bin pour le placer quelque part utile sur votre chemin

Tapez "wmamp3" pour exécuter votre conversion.


La version courte et sale (fait exactement la même chose que ci-dessus):

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
16
Rory Alsop

Installez Soundconverter Install soundconverter

et lancez Soundconverter à partir du lanceur ou du terminal

enter image description here

La conversion par défaut est .ogg, remplacez-la par mp3 et passez à edit-> preferences sous le type de résultats. Format to MP3 comme suit:

enter image description here

Cliquez sur Ajouter un dossier, puis sélectionnez votre dossier de musique. Vous pouvez sélectionner le dossier de sortie dans la configuration des préférences ci-dessus avant de cliquer sur convertir.

J'espère que cela se fera en deux clics :)

39
Achu

Mplayer et lame doivent être installés en premier:

Sudo apt-get install mplayer lame

Ensuite, créez le script ( page de référence ) et exécutez-le:

#!/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

On dirait qu'il fait exactement ce que vous voulez. N'oubliez pas que vous voudrez peut-être jouer avec les drapeaux boiteux pour obtenir le niveau de qualité souhaité.

13
David Futcher

Je sais que c'est un peu vieux mais j'ai modifié le script montré par David Futcher. Les changements sont les suivants:

  • Utilisez /tmp au lieu du dossier actuel pour le fichier wav temporaire (cela a donné une grande accélération lorsque j'ai utilisé cela pour convertir des fichiers sur une clé USB).

  • Supprimez les fichiers wma après leur conversion (espérons-le avec succès).

C'est ici:

#!/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
2
V10lator

Installez Perl Audio Converter (pacpl): Sudo apt-get install pacpl

Cette commande convertira tous les fichiers wma d'un répertoire donné en fichiers mp3 (en laissant les originaux intacts):

pacpl -r -to mp3 -only wma <directory name>

Si vous vous sentez risqué, vous pouvez ajouter l'option --delete pour supprimer également les originaux:

pacpl -r --delete -to mp3 -only wma <directory name>I

2
Eric Mathison

Pour ceux qui recherchent une version graphique capable de sélectionner certains types de fichiers: l'outil KDE soundKonverter https://github.com/HessiJames/soundkonverter demande quels types de fichiers doivent être ajoutés à la file d'attente de conversation.

La meilleure solution pour mon énorme collection de livres audio contenant des fichiers mp3/ogg/wma.

1
tuxflo

Voici mon édition du script Marko Haapala, en utilisant ffmpeg:

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
# Also, it must be run as root to correctly handle spaces on Ubuntu 16
IFS=$'\n'
for wma_file in ${wma_files}; do
 ffmpeg -i "${wma_file}" -q:a 0 "${wma_file}".mp3
 #uncomment rm below to delete original wma's
 #rm "${wma_file}"
done

Je préfère ffmpeg, car il ne change pas la fréquence d'échantillonnage et n'a pas besoin de fichier temporaire

1
Slavik

Vous pouvez également utiliser mon application ... dmMediaConverter en mode Bulk. Pour obtenir de l'aide, voir cette vidéo ... au lieu de fichiers vidéo, faites glisser les fichiers wma. https://www.youtube.com/watch?v=rZR40mdFRoQ&index=1&list=PLwURYFQvHBAtG8wqzyVgOQ1WtEYSkiscO

0
mdalacu

Soundcoverter montre une erreur quelque chose à propos du module Windows Media et Python 2.7

Avconv a bien fonctionné: avconv -i ./song.wma song.mp3

0
mapcuk