BASH Convertir en masse des WAV en MP3 [Réglé]

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
J'aurais besoin d'un petit coup de main

J'ai téléchargé gratuitement et légalement un pack de musique au format WAV. Mais les morceaux sont trop "lourds" et je compte les convertir en MP3.
Voici ce que j'utilise :
Code BASH :
for m in `ls -c1X | grep -E '(.wav$)' | sed 's/ /_/g'` do nom=$(echo $m | sed 's/_/ /g') ffmpeg -i "$nom" "$nom.mp3" done
Je suis obligé de passer par un sed d'un côté pour remplacer les espaces par un underscore et inversement dans la boucle.
En effet, dans le for, j'ai ce titre à convertir : "Ain't A Party - Guetta (Mosimann & Toma Bootleg).wav"
Dans le for, si j'echo le resultat, j'ai ceci :
Citation :
Ain't
A
Party
Guetta
(Mosimann
&
Toma
Bootleg).wav
A
Party
Guetta
(Mosimann
&
Toma
Bootleg).wav
Je dois mettre donc des _ pour "tromper" le for.
Il y a t il un moyen plus élégant ?
Merci

Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


skulls Membre non connecté
-
- Voir le profil du membre skulls
- Inscrit le : 19/03/2013

Je présume que tu souhaites un moyen plus élégant pour ton script ?

Ma foi sur l'avenir, bien fou qui se fiera, tel qui rit vendredi dimanche pleurera

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
1/ un moyen plus élégant
2/ les chansons avec un caractère "_" ne sont donc pas convertis ( car s'il y a un "_" il n'est pas transformé dans le permier sed mais transformé en espace ensuite ce qui fait que le fichier est "introuvable")
Je dois donc trouver un caractere de transition, et ça m'embête, il y a sans doute plus simple

Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


skulls Membre non connecté
-
- Voir le profil du membre skulls
- Inscrit le : 19/03/2013

Citation :
1/ un moyen plus élégant
Tu peux le faire avec SoundKonverter mais comme tu es sur du script c'est pour ça que je pose la question.

Ma foi sur l'avenir, bien fou qui se fiera, tel qui rit vendredi dimanche pleurera

ZEBULON Membre non connecté
-
- Voir le profil du membre ZEBULON
- Inscrit le : 30/10/2008
- Groupes :
Je confirme, soundconverter est trés efficace et rapide pour ça .
@+
Mageia 5 KDE 64 Bits
HP Pavilion A6738fr - AMD Athlon 64 X2 4450e - 4 Go ram - DD 1 To - chipset graphique NVIDIA GeForce 6150 SE / / nForce 430 - ATI Radeon HD 3650 -
HP Pavilion A6738fr - AMD Athlon 64 X2 4450e - 4 Go ram - DD 1 To - chipset graphique NVIDIA GeForce 6150 SE / / nForce 430 - ATI Radeon HD 3650 -

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
Mais au fond, j'aimerais bien comprendre et pouvoir faire ce que je souhaite en bash si j'en ai besoin plus tard dans un autre domaine.
Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


skulls Membre non connecté
-
- Voir le profil du membre skulls
- Inscrit le : 19/03/2013

Code BASH :
Tu peux le faire avec SoundKonverter
Effectivement je t'ai donné la version KDE

Ma foi sur l'avenir, bien fou qui se fiera, tel qui rit vendredi dimanche pleurera

ZEBULON Membre non connecté
-
- Voir le profil du membre ZEBULON
- Inscrit le : 30/10/2008
- Groupes :
Citation :
" Exemple de petit script bash pour convertir tous les wma d'un dossier en mp3" :
Code BASH :
#!/bin/bash for i in *.wma; do j="${i%.wma}" soundconverter -b -m audio/mpeg -s .mp3 "$j.wma" && rm -f "$j.wma" && echo "$i réencodé en mp3." done
source doc ubuntu
Si ça peut aider

@+
Mageia 5 KDE 64 Bits
HP Pavilion A6738fr - AMD Athlon 64 X2 4450e - 4 Go ram - DD 1 To - chipset graphique NVIDIA GeForce 6150 SE / / nForce 430 - ATI Radeon HD 3650 -
HP Pavilion A6738fr - AMD Athlon 64 X2 4450e - 4 Go ram - DD 1 To - chipset graphique NVIDIA GeForce 6150 SE / / nForce 430 - ATI Radeon HD 3650 -

Visiteur
Visiteur
Code BASH :
#!/bin/bash SAVEIF=$IFS IFS=$(echo -en "nb") for file in $(ls *wav) do name=${file%%.wav} lame -V0 -h -b 128 --vbr-new $name.wav $name.mp3 done IFS=$SAVEIF
ensuite en console dans le repertoire ou sont tes WAV
sh WAV_to_MP3.sh
PS: pour changer le bitrate par exemple
lame -V0 -h -b 128 --> lame -V0 -h -b 160
Édité par Visiteur Le 28/10/2013 à 15h21

Visiteur
Visiteur
version plus simple pour ogg 192b (paquetage vorbis-tools)
Code BASH :
for i in *.wav; do oggenc -q 6 "$i" "`basename "$i" .wav` .ogg"; done
bien que pratique la ligne de commande il est quand même plus simple d'utiliser des logiciels comme SoundConverter
Édité par Visiteur Le 28/10/2013 à 15h59

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
MadTuX :
Code BASH :
#!/bin/bash SAVEIF=$IFS IFS=$(echo -en "nb") for file in $(ls *wav) do name=${file%%.wav} lame -V0 -h -b 128 --vbr-new $name.wav $name.mp3 done IFS=$SAVEIF
Ca marche bien !

Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !

Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie