Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

#1 22 Apr 2005 12:43:22

Bashful
Citoyen(ne)
 
Date d'inscription: 22 Apr 2005
Messages: 14

[BASH] Script bash avec lame (Résolu)

Bonjour,

Voila j'ai un petit problème en script bash dont je ne comprends pas l'erreur.

Je crée un script qui parcourt récursivement les dossiers de mon disque dure a partir d'un dossier racine et qui récupère tous les chemins des musiques comme par exemple les .ra .wav .wma .ogg .raw etc ... et qui les convertit tous en mp3.

Bref les path des musiques sont mis dans un tableau puis convertit une a une. Pour faciliter la compréhension du script j'ai crée un script test qui justement montre le problème:

Code:

#!/bin/bash

#initialisation du tablo viteuf avec des chansons
test[0]="/home/stuff/test/03 le voisin.wav"
test[1]="/home/stuff/test/test2/01 Le Chien Mouille (En Silence).wav"
test[2]="/home/stuff/test/test2/02 A Table.wav"

for ((i=0;$i<${#test[*]};i++))
do
#affiche le path de la chanson
echo ${test[$i]}
#recupere le path sans l'extention
nom=` echo ${test[$i]} | awk -F "." '{print $1}'`
#affiche le nom
echo $nom
# crée la commande lame
cmd_lame="--verbose "$nom.wav" "$nom.mp3" "
# affiche la commande lame
echo "$cmd_lame"
# execute celle ci
lame $cmd_lame

#lame --verbose "/home/stuff/test/test2/02 A Table.wav" "/home/stuff/test/test2/02 A Table.mp3"

done

et voici l'erreur :
lame: excess arg Table.wav"
LAME version 3.96.1 (http://lame.sourceforge.net/)(...)

usage: lame [options] [outfile]

and/or can be "-", which means stdin/stdout.

Try:
"lame --help" for general usage information
or:
"lame --preset help" for information on suggested predefined settings
or:
"lame --longhelp"
or "lame -?" for a complete options list

En gros il me dit que les espaces de la chanson sont les problemes.
mais  j'ai mis des " " pour justement reparer ce probleme et y a toujours le meme probleme ... je comprends plus
Et pourtant quand je ne met plus la derniere line en commentaire ca marche ...
La non plus je comprends plus ...

enfin voila j'espere que j'ai ete claire dans mes explications et que tout le monde a put comprendre le problemes et j'espere que quelque qu'un va pourvoir m'eclairé car la je vois pas ...

Hors ligne

 

#2 22 Apr 2005 13:00:15

saintshakajin
Prêcheu(r|se) du libre
 
Date d'inscription: 03 Feb 2005
Messages: 182

Re: [BASH] Script bash avec lame (Résolu)

J'ai fait un truc du genre, mais pour les photos et en Perl: LB-PhotoResizer donc, inspire toi, pour les traitements. Sinon, n'oublie pas que Linux n'est pas Windows dans les espaces, donc ça donne /home/user/02 blabla - brol.mp3 En gros, il ya un  devant l'espace. Dans ton cas, il essaie de convertir 02 puis convertir A et pour terminer convertir Table.wav. Là, tu vois qu'il y a un problème smile


Debian Sid - XOrg 6.9 - KDE 3.5.0 - Kernel 2.6.15-ck2

Hors ligne

 

#3 22 Apr 2005 13:17:36

Bashful
Citoyen(ne)
 
Date d'inscription: 22 Apr 2005
Messages: 14

Re: [BASH] Script bash avec lame (Résolu)

Merci de m'avoir repondu aussi vite ...
j'ai déja essayé de mettre des  devant les espace mais ca marche pas :S
C'est pour ca que j'ai posté mon message c'est que la je ne sais pas comment faire et vu que je ne lache jamais l'affaire ben voila je ne dors pas smile  sinon j'ai trouvé une solution mais ca me fait changer mon code et je ne vois pas pourquoi là ça ne marche pas car en faisant ca marche :

Code:

for i in /$dossier/*.wav
do 
  nom=` echo $i | awk -F "." '{print $1}'`
  lame "$nom".wav "$nom".mp3
done

enfin bon voilà si quelqu'un trouve une solution je suis preneur ...

Hors ligne

 

#4 22 Apr 2005 14:44:49

Swebian
Invité
 

Re: [BASH] Script bash avec lame (Résolu)

J'aime même pas eu l'envie de corriger ton message jusqu'au bout. T'es pas sur un portable ici.

SMS, 1er avertissement.

 

#5 22 Apr 2005 15:59:42

Bashful
Citoyen(ne)
 
Date d'inscription: 22 Apr 2005
Messages: 14

Re: [BASH] Script bash avec lame (Résolu)

yikes oulaaaaa je ne savais pas que les forums étaient au tant a cheval sur l'orthographe, j'en suis désole c'est la première fois que je vais sur un forum. Je m'y tiendrai a écrire correctement.

Hors ligne

 

#6 22 Apr 2005 16:03:59

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: [BASH] Script bash avec lame (Résolu)

Ce que j'adore chez les newbies, c'est leur acharnement à réinventer la roue chaque fois que c'est possible  :cheesy:

Essaie:

Code:

find . -name "*.wav" |sed -e 's/.wav$//' |xargs -i lame {}.wav {}.mp3

Hors ligne

 

#7 22 Apr 2005 17:31:36

Bashful
Citoyen(ne)
 
Date d'inscription: 22 Apr 2005
Messages: 14

Re: [BASH] Script bash avec lame (Résolu)

Je sais maintenant pourquoi je suis jamais venu sur un forum, j'ai toujours trouvé une solution a tout mes problèmes, mais là je me suis dit arrêt de faire l'autiste et va sur des forums pour essayer de résoudre tes problèmes plus vite car on m'avais dit du bien des forums et c'est là où je puise la plupart des réponses a mes problèmes.
Alors je me suis dit c'est l'occasion de partager des savoir faire et tout , mais depuis que je suis arrivé je me fait insulté, je voulais juste des réponse constructives et des échanges. Le seul message constructif a été de saintshakajin (que je remercie d'ailleurs). Voila je trouve ça dommage ...

Hors ligne

 

#8 22 Apr 2005 17:54:12

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: [BASH] Script bash avec lame (Résolu)

Je t'ai donné plus haut une commande qui fait ce que tu veux...

Hors ligne

 

#9 22 Apr 2005 18:17:53

Swebian
Invité
 

Re: [BASH] Script bash avec lame (Résolu)

Je sais maintenant pourquoi je suis jamais venu sur un forum, j'ai toujours trouvé une solution a tout mes problèmes, mais là je me suis dit arrêt de faire l'autiste et va sur des forums pour essayer de résoudre tes problèmes plus vite car on m'avais dit du bien des forums et c'est là où je puise la plupart des réponses a mes problèmes.
Alors je me suis dit c'est l'occasion de partager des savoir faire et tout , mais depuis que je suis arrivé je me fait insulté, je voulais juste des réponse constructives et des échanges. Le seul message constructif a été de saintshakajin (que je remercie d'ailleurs). Voila je trouve ça dommage ...

Il y a une charte sur ce forum qui spécifie que tu te trouves pas sur un téléphone portable. J'ai pas voulu répondre à ton message car ça me dégoûtait de le lire. Je suis pas un intégriste de l'orthographe, mais je trouve qu'un minimum de respect envers la grammaire est la moindre que l'on puisse exiger de nos jours dans des pays industrialisés.

Je veux juste que cette règle soit suivie. Si tu prends ça comme une agression personnelle, c'est ton problème.

Oui Swisslinux.org à peut-être les règles les plus chiantes des millions de forums de part le monde mais au moins les pages envoyées dans un traducteur online sont mieux traduites dans d'autres langues grâce à ça. Et personnellement j'y tiens.

 

#10 25 Apr 2005 11:44:03

Bashful
Citoyen(ne)
 
Date d'inscription: 22 Apr 2005
Messages: 14

Re: [BASH] Script bash avec lame (Résolu)

Le newbiZ te remercie pour ta réponse BOFH, mais je n'essaye pas de  " réinventer la roue chaque fois que c'est possible ". Si j'avais envie de faire un script bourrin j'aurais mis cette commande. Mais là j'ai besoin de faire des traitements avec les noms des chansons etc ... c'est pour ca que je les recherche et les stocke dans un tableau.

Voilà mon problème.

  Je ne comprend pas pourquoi le code juste au dessus (enfin le premier celui dorigine) ne marche pas car quand j'affiche la commande lame elle est correcte mais quand je l'exécute cela ne marche pas. J'ai pourtant essayer de voir s'il n'y avait pas de caractères invisibles mais non c'est pas ca. J'ai aussi essayé d'enlever le "--verbose" de la cmd_lame et de le mettre lors de l'exécution mais toujours pas.

J'ai aussi essayé de mettre des quote au lieu des " pour les nons de chanson et la non plus toujours pas.

  C'est la première fois que je suis au tant bloqué sur un problème à la noix car c'est un problème à la noix à mon avis.
   Voila si quelq'un a une idée je suis preneur.

Hors ligne

 

#11 25 Apr 2005 12:09:45

Minuteman
Prêcheu(r|se) du libre
 
Date d'inscription: 05 Nov 2004
Messages: 193

Re: [BASH] Script bash avec lame (Résolu)

Je sais maintenant pourquoi je suis jamais venu sur un forum, j'ai toujours trouvé une solution a tout mes problèmes, mais là je me suis dit arrêt de faire l'autiste et va sur des forums pour essayer de résoudre tes problèmes plus vite car on m'avais dit du bien des forums et c'est là où je puise la plupart des réponses a mes problèmes.
Alors je me suis dit c'est l'occasion de partager des savoir faire et tout , mais depuis que je suis arrivé je me fait insulté, je voulais juste des réponse constructives et des échanges. Le seul message constructif a été de saintshakajin (que je remercie d'ailleurs). Voila je trouve ça dommage ...

Il y a une charte sur ce forum qui spécifie que tu te trouves pas sur un téléphone portable. J'ai pas voulu répondre à ton message car ça me dégoûtait de le lire. Je suis pas un intégriste de l'orthographe, mais je trouve qu'un minimum de respect envers la grammaire est la moindre que l'on puisse exiger de nos jours dans des pays industrialisés.

Je veux juste que cette règle soit suivie. Si tu prends ça comme une agression personnelle, c'est ton problème.

Oui Swisslinux.org à peut-être les règles les plus chiantes des millions de forums de part le monde mais au moins les pages envoyées dans un traducteur online sont mieux traduites dans d'autres langues grâce à ça. Et personnellement j'y tiens.

En passant je vois pas ce qui vous choque dans sa manière d'écrire...à part quelques fautes d'accord c'est TRES loin d'un language SMS...

Hors ligne

 

#12 25 Apr 2005 12:15:42

saintshakajin
Prêcheu(r|se) du libre
 
Date d'inscription: 03 Feb 2005
Messages: 182

Re: [BASH] Script bash avec lame (Résolu)

Bashful, tu n'aurais pas envie de coller les résulats/erreurs. C'est plus facile pour voir ce qui va pas (du moins pour moi)


Debian Sid - XOrg 6.9 - KDE 3.5.0 - Kernel 2.6.15-ck2

Hors ligne

 

#13 25 Apr 2005 13:17:36

Bashful
Citoyen(ne)
 
Date d'inscription: 22 Apr 2005
Messages: 14

Re: [BASH] Script bash avec lame (Résolu)

oki pas de problèmes saintshakajin et merci de m'aider.

Ce script cible juste le problèmes que j'ai dans mon script, c'est un script test.
voici mon code :

Code:

#!/bin/bash

test[0]="/home/stuff/test/03 le voisin.wav" 
#test[0]="/home/stuff/test/03 le voisin.wav"
test[1]="/home/stuff/test/test2/01 Le Chien Mouille (En Silence).wav" 
#test[1]="/home/stuff/test/test2/01 Le Chien Mouille (En Silence).wav" 
test[2]="/home/stuff/test/test2/02 A Table.wav"
#test[2]="/home/stuff/test/test2/02 A Table.wav"

for ((i=0;$i<${#test[*]};i++))
do
    echo ${test[$i]}
    nom=`echo ${test[$i]} | awk -F "." '{print $1}'`
    echo $nom
    cmd_lame="'$nom.wav' '$nom.mp3'"
    echo "$cmd_lame"
    /usr/local/bin/lame --verbose $cmd_lame
    #lame --verbose "/home/stuff/test/test2/02 A Table.wav" "/home/stuff/test/test2/02 A Table.mp3"
done

et le message d'erreur :

Code:

/home/stuff/test/03 le voisin.wav
/home/stuff/test/03 le voisin
'/home/stuff/test/03 le voisin.wav' '/home/stuff/test/03 le voisin.mp3'
/usr/local/bin/lame: excess arg voisin.wav'
LAME version 3.96.1 (http://lame.sourceforge.net/)

usage: /usr/local/bin/lame [options] <infile> [outfile]

    <infile> and/or <outfile> can be "-", which means stdin/stdout.

Try:
     "/usr/local/bin/lame --help"           for general usage information
 or:
     "/usr/local/bin/lame --preset help"    for information on suggested predefined settings
 or:
     "/usr/local/bin/lame --longhelp"
  or "/usr/local/bin/lame -?"              for a complete options list

il est le même pour les 3 chansons.

C'est un problème à la noix d'espace mais je ne vois pas là ? ^o)

Pour en revenir à mon orthographe (en réponse à Minuteman) il a un peu raison de dire ça car pour la traduction cela sera plus facile et si mon problème peut en aider d'autre ben ca vaut le coup de faire des efforts.

Mais bon ça peut être dit plus gentilment, le je vois pas trop le rapport avec  "la moindre que l'on puisse exiger de nos jours dans des pays industrialisés." donc si on veut parler en language texto on va dans un pays en voie de développement c'est ca ?

Et le terme "respect envers la grammaire" m'a bien fais rigoler aussi smile
Enfin bon fermons la parenthèse. Ca sert à rien de polémiquer 3h sur un sujet qui va faire que facher des gens.

Hors ligne

 

#14 25 Apr 2005 16:39:21

Swebian
Invité
 

Re: [BASH] Script bash avec lame (Résolu)

Je sais maintenant pourquoi je suis jamais venu sur un forum, j'ai toujours trouvé une solution a tout mes problèmes, mais là je me suis dit arrêt de faire l'autiste et va sur des forums pour essayer de résoudre tes problèmes plus vite car on m'avais dit du bien des forums et c'est là où je puise la plupart des réponses a mes problèmes.
Alors je me suis dit c'est l'occasion de partager des savoir faire et tout , mais depuis que je suis arrivé je me fait insulté, je voulais juste des réponse constructives et des échanges. Le seul message constructif a été de saintshakajin (que je remercie d'ailleurs). Voila je trouve ça dommage ...

Il y a une charte sur ce forum qui spécifie que tu te trouves pas sur un téléphone portable. J'ai pas voulu répondre à ton message car ça me dégoûtait de le lire. Je suis pas un intégriste de l'orthographe, mais je trouve qu'un minimum de respect envers la grammaire est la moindre que l'on puisse exiger de nos jours dans des pays industrialisés.

Je veux juste que cette règle soit suivie. Si tu prends ça comme une agression personnelle, c'est ton problème.

Oui Swisslinux.org à peut-être les règles les plus chiantes des millions de forums de part le monde mais au moins les pages envoyées dans un traducteur online sont mieux traduites dans d'autres langues grâce à ça. Et personnellement j'y tiens.

En passant je vois pas ce qui vous choque dans sa manière d'écrire...à part quelques fautes d'accord c'est TRES loin d'un language SMS...

En attendant si tu avais au moins vu le message avant que je désmsifie le tout...

Mais bon ça peut être dit plus gentilment

A ma décharge le nombre de fois hallucinants où je dois le répéter car on ne prend pas le temps de lire la charte. J'ai été brusque, j'en conviens.

Fin bref.

 

#15 25 Apr 2005 16:48:50

Muad'dib
Gourou(e) du libre
 
Lieu: Sion
Date d'inscription: 11 Oct 2004
Messages: 340

Re: [BASH] Script bash avec lame (Résolu)

Le nom de tes fichiers est peux-être trop long. Essaie de raccourcir.


"heureux celui qui partage"
--------------------------------------

Hors ligne

 

#16 25 Apr 2005 17:13:28

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: [BASH] Script bash avec lame (Résolu)

Woups, erreur de ma part. Il manquait les guillements aux arguments de lame:

Code:

find . -name "*.wav" |sed -e 's/.wav$//' |xargs -i lame "{}.wav" "{}.mp3"

find . -name "*.wav" => trouve tous les fichiers dans l'arborescence du répertoire courant et se terminant par .wav

sed -e 's/.wav$// => enlève les .wav a la fin des fichiers

xargs -i => lance une instance de la commande suivante par entrée, {} étant remplacé par la dite entrée.

Pour les espaces, effectivement c'est plus subtil que ca en a l'air. Si tu utilises des guillemets pour délimiter les arguments d'une commande, il ne faut pas échapper les espaces à l'intérieur de la chaîne.

Si la bizarrerie persiste, tu peux toujours essayer le bon vieux hack:

Code:

/usr/local/bin/lame "-" "-" <fichier.wav >fichier.mp3

ce qui donnerait avec la commande de tout à l'heure:

Code:

find . -name "*.wav" |sed -e 's/.wav$//' |xargs -i bash -c "lame - - <'{}.wav' >'{}.mp3'"

Hors ligne

 

#17 25 Apr 2005 17:52:32

WaVeR
Gourou(e) du libre
Lieu: Biel-Bienne
Date d'inscription: 08 Oct 2004
Messages: 531
Site web

Re: [BASH] Script bash avec lame (Résolu)

Juste un petit ajout smile

pour convertir mes fichiers .wma en .ogg je fais dans le répertoire courant:

Code:

for i in *.wma; do mplayer -ao pcm -aofile "${i%.wma}.wav" "$i"; oggenc -m 256 "${i%.wma}.wav"; rm -f "${i%.wma}.wav"; done

Plus d'explications


There's no place like 127.0.0.1

Hors ligne

 

#18 25 Apr 2005 18:29:27

Bashful
Citoyen(ne)
 
Date d'inscription: 22 Apr 2005
Messages: 14

Re: [BASH] Script bash avec lame (Résolu)

Je suis con des fois, il fallait juste mettre :

Code:

bash -c "lame --verbose $cmd_lame"

pour que ca marche. Je cherches toujours compliqué quand c'est un probleme à la noix.
   
   Sinon BOFH je vient de lire ton message et je voudrais bien que tu m'explique cette commande ci-dessous car celle-la je la connais pas et le comprend pas trop d'ailleurs.

Code:

lame "-" "-" <fichier.wav >fichier.mp3

Je viens aussi de lire ton message aussi WaVeR et tu tombe bien car je n'y connais rien à la commande pour la convertion en ogg. Tu pourrais m'expliquer vite fait quels options j'ai besoin pour un bon encodage en ogg pour une bonne qualité en faite, ça m'éviteras de passer 2 heures sur les optins du man de oggenc.

Merci d'avance.
Et merci pour tous ceux qui mon aidé.

Hors ligne

 

#19 25 Apr 2005 22:38:42

WaVeR
Gourou(e) du libre
Lieu: Biel-Bienne
Date d'inscription: 08 Oct 2004
Messages: 531
Site web

Re: [BASH] Script bash avec lame (Résolu)

ben l'option -m 256 c'est ce qu'il me faut c'est du HighQuality. Ceci permet d'avoir un minimum de 256Kbps au niveau du bitrate (mais un .ogg volumineux) sinon pour un .ogg normal tu peux faire -m 128. C'est tout ce qu'il faut. ^^


There's no place like 127.0.0.1

Hors ligne

 

#20 26 Apr 2005 02:30:49

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: [BASH] Script bash avec lame (Résolu)


   
   Sinon BOFH je vient de lire ton message et je voudrais bien que tu m'explique cette commande ci-dessous car celle-la je la connais pas et le comprend pas trop d'ailleurs.

Code:

lame "-" "-" <fichier.wav >fichier.mp3

La man page de LAME précise que si tu passes "-" comme nom de fichier à l'encodeur, il utilise respectivement l'entrée et la sortie standard. < et > sont les redirections standard du shell de l'entrée et la sortie standard vers des fichiers. Donc, c'est juste un truc pour déléguer la recherche et l'ouverture des fichiers au shell dans l'éventualité ou lame n'arrive pas à le faire correctement pour une raison inconnue.

Hors ligne

 

#21 26 Apr 2005 15:31:45

Muad'dib
Gourou(e) du libre
 
Lieu: Sion
Date d'inscription: 11 Oct 2004
Messages: 340

Re: [BASH] Script bash avec lame (Résolu)

N'oublie pas de classifier le post come Résolu.


"heureux celui qui partage"
--------------------------------------

Hors ligne

 

#22 26 Apr 2005 20:10:48

Bashful
Citoyen(ne)
 
Date d'inscription: 22 Apr 2005
Messages: 14

Re: [BASH] Script bash avec lame (Résolu)

Je suis desolé de te demander ça mais on fait comment ?
Ca fait con mais c'est la premiere fois que je vais sur un forum.

Merci d'avance.

Hors ligne

 

#23 26 Apr 2005 20:13:12

Swebian
Invité
 

Re: [BASH] Script bash avec lame (Résolu)

Je suis desolé de te demander ça mais on fait comment ?
Ca fait con mais c'est la premiere fois que je vais sur un forum.

Merci

Laisse, je règle ça moi. Pas de problème. Il suffit d'éditer ton tout premier post.

 

#24 26 Apr 2005 20:19:18

Bashful
Citoyen(ne)
 
Date d'inscription: 22 Apr 2005
Messages: 14

Re: [BASH] Script bash avec lame (Résolu)

Merci c'est cool, et merci à tout le monde pour leur aide.

Bash.

Hors ligne

 

Pied de page des forums

Powered by FluxBB