Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/12/2011, à 13:36

AozRoon

Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

Salut,

J'ai fait un script tout bête pour réencoder des vidéos pour les lire ensuite sur un baladeur :

mencoder $1 -o $2 -of avi -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc xvid -xvidencopts bitrate=687 -vf scale=320:200

Au lieu de lui passer explicitement les noms du fichier à encoder ($1) et celui du fichier de sortie ($2), je préfèrerai que le script utilise comme nom du fichier de sortie le nom du fichier à encoder auquel il ajoute un suffix. Par exemple : "monFilm.avi" --> "monFilm_baladeur.avi"

Des pistes pour réaliser cela ? Merci !

Hors ligne

#2 Le 30/12/2011, à 13:43

AnsuzPeorth

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

bjr,

file=$@
ext=${file##*.}
name=${file%.*}
mencoder "$file" -o "${name}_baladeur.${ext}"

Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#3 Le 30/12/2011, à 14:35

Dell-ubuntu

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

J'utilise celui-ci :

#!/bin/bash

if [ $# -ne 1 ] ; then
echo "usage : $0 FileToEncode"
exit 1
fi

output=`expr "$1" : "\(.*\)\..*"`
echo "res : $output"
output=`basename "$output"`refait_en_320x240.avi

mencoder  -audio-preload 0.8 -delay 0.1  -af volnorm  -srate 16000 -oac mp3lame -lameopts mode=3:cbr:br=96   -subfont-autoscale 3  -subcp latin1   -noodml  -vf scale=320:240,crop=320:240 -sws 9   -ovc lavc -lavcopts vcodec=mpeg4:vhq:vmax_b_frames=0:vbitrate=420 -ffourcc XVID -o "$output"  "$1"

#4 Le 30/12/2011, à 19:30

AozRoon

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

Merci pour ces deux réponses qui fonctionnent très bien :-)

Mais... je serai encore plus heureux si le script acceptait "*.avi" comme attribut.

Vous sauriez comment faire ? Merci !

Dernière modification par AozRoon (Le 30/12/2011, à 19:31)

Hors ligne

#5 Le 30/12/2011, à 19:58

Dell-ubuntu

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

Voilà comment je procède :
J'ouvre la console et je me rend dans le dossier contenant la vidéo à convertir avec la commande "cd '/home/utilisateur/Videos'
Elle sera donc ici et non pas dans home/utilisateur/

Ensuite, je glisse le .sh que je t'ai copié plus haut, dans la console, puis je glisse aussi, à la suite, la vidéo à ré-encoder et je presse Entrée au clavier.

Pas besoin d'attribut.

Dernière modification par Dell-ubuntu (Le 30/12/2011, à 19:58)

#6 Le 30/12/2011, à 22:00

AozRoon

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

Je pense que tu n'as pas compris que ce que j'aimerai faire c'est convertir toutes les vidéos se trouvant dans un répertoire avec un seul appel au script. Par exemple, si le script s'appelle "convertionVersBaladeur.sh" ce serait de taper :

convertionVersBaladeur.sh *.avi

et d'avoir toutes les vidéos se trouvant dans le répertoire courant converties...

Ca doit par exemple pouvoir se faire avec un "find ... exec convertionVersBaladeur.sh"

Dernière modification par AozRoon (Le 30/12/2011, à 22:03)

Hors ligne

#7 Le 30/12/2011, à 22:12

Postmortem

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

Salut,
Tu peux boucler sur l'ensemble des fichiers avi d'un répertoire comme ceci :

#!/bin/bash
REP=$1
for fic in "$REP"/*.avi
do
commande_pour_encoder "$fic" vers "${fic%.*}_baladeur.avi"
done

Pense à bien entourer la variable fic avec des doubles quotes pour éviter les problèmes avec les fichiers contenant des espaces.
Le script sera à lancer avec le répertoire en paramètre.

Dernière modification par Postmortem (Le 30/12/2011, à 22:13)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#8 Le 30/12/2011, à 22:25

pingouinux

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

Bonsoir Postmortem,
Je pense qu'il est prudent de mettre :

REP="$1"

Ajouté : Finalement, cette remarque n'est pas justifiée (voir messages #9 et #10).

Dernière modification par pingouinux (Le 31/12/2011, à 08:15)

Hors ligne

#9 Le 30/12/2011, à 23:26

Postmortem

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

Salut pingouinux !
Normalement, y-a pas de découpage après les expansions lorsque l'on est dans le cas de l'affectation d'une variable... Mais tu me mets le doute du coup !
Et je peux pas tester là.


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#10 Le 30/12/2011, à 23:53

pingouinux

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

Au temps pour moi, tu as raison. Voici le test :

$ cat y.sh
#! /bin/bash

REP1=$1
REP2="$1"

echo =$REP1=$REP2=

$ ./y.sh "deux mots"
=deux mots=deux mots=

Hors ligne

#11 Le 31/12/2011, à 17:38

Postmortem

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

Ben alors pingouinux, il est temps que la fin de l'année arrive, normalement, tu ne te trompes pas !! tongue
Bon réveillon !


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#12 Le 31/12/2011, à 17:57

pingouinux

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

Ça m'arrive comme aux autres, mais j'essaye de le faire en cachette...
Bon réveillon aussi, et bonne année !

Hors ligne

#13 Le 31/12/2011, à 21:18

AozRoon

Re : Ajouter un suffix à un nom de fichier passé en paramètre d'un script..

Merci à vous, ça c'est du service rapide et de qualité !

Bonne fin d'année à tous big_smile

Hors ligne