Script bash depuis nautilus

Bonjour,

j'aimerais convertir des fichiers multimédias en mp3 depuis nautilus en executant un script externe. J'y arrive de cette façon, en plaçant le script suivant dans ~/.gnome2/nautilus-script

ffmpeg -i "$1" -ac 2 -ab 192k -ar 44100 "$1".mp3


Et ça marche bien avec un fichier à la fois.

Maintenant ce que j'aimerai c'est sélectionner plusieurs fichiers et appliquer le script en une seule fois depuis nautilus...

Est-ce possible? La fonction de nautilus est-elle capable de lire plusieurs arguments? Et comment modifier le script? J'imagine qu'il faudra utilier une boucle for... Mais je ne maîtrise pas du tout...

Merci de votre aide!

2 réponses

  1. Modérateur
    Salut,

    Et simplement comme ça :

    for fich in *; do ffmpeg -i "${fich}" -ac 2 -ab 192k -ar 44100 "${fich}.mp3"; done

    Ça ne le ferait pas ?
    1. Contributeur
      oui, mais ça ne réponds pas à la question. à savoir le faire depuis nautilus, alors que là ça ressemble à une commande tapée dans une console.
    2. Modérateur
      Ben oui, mais comme j'ai jamais fait ça depuis Nautilus (ou autres) ;-\

      Le tout serait de savoir comment Nautilus gère les fichiers (sélectionnés à la souris si j'ai bien compris ??!!), comme des paramètres ($1, $2, $3, etc. ) ou s'il peut/sait développer l'astérisque (*) et gérer les variables ???
    3. Contributeur
      C le même gars qui a posté...
      c'est le "$@" qui me manquait ! Sinon, la solution est fort similaire à la mienne.
  2. Contributeur
    Il faut en effet modifier le script. Une boucle for par exemple :
    for (( b=1;b<$#;b++))
    do :
         a='eval "\$"$b'
         ffmpeg -i $a -ac 2 -ab 192k -ar 44100 $a.mp3
    done

    peut être revoir la définition de la variable 'a', mais ça devrais fonctionner