Aide script shell

kryonos Messages postés 2 Statut Membre -  
jee pee Messages postés 42389 Statut Modérateur -
bonjour!

alors voila ca fait quelques temps que je me prends la tete pour faire un script shell pour utiliser ffmpeg et ne trouvant pas de reponse qui me convienne avec mon ami google je me permets de faire appel a vous ! lol

en fait je souhaite faire un script shell pour convertir tous les fichiers portant une certaine extension , ex: convertir les fichiers avi d'un repertoire toto en fichier flv
ca peut paraitre bete comme ca mais je suis incapable de faire un truc qui fonctionne :/

j'avais tenté un truc comme ca , sans succes lol (ok les scripts shell c'est pas mon fort)

[code]
#!/bin/sh

for element in *.avi

ffmpeg -i $element -s 320x240 -acodec mp3 -ar 11025 -aspect 4:3 -pass 1 -b 500k -r 30 -f flv mavideo.flv

done
[/code]

pour l'exemple j'ai mis mavideos.flv comme fichier de sortie mais l'idéal serait un nom genere pour ne pas ecraser un fichier existant ( timestamp par ex )

quelqu'un aurait une idée ?

merci !
A voir également:

3 réponses

jee pee Messages postés 42389 Statut Modérateur 9 743
 
salut,

il manque le do :


for element in *.avi
do
ffmpeg -i $element ...
done

et en fichier de sortie tu peux mettre $element.flv

cdt
0
jee pee Messages postés 42389 Statut Modérateur 9 743
 
$element.flv pas terrible car = fichier.avi.flv

for element in *.avi
do
sortie=basename $element .avi
ffmpeg -i $element ... $sortie.flv
done
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

à toi d'adapter
lami20j@debian:~$ for i in *.avi;do echo ${i%%.*}_new.flv;done
a_new.flv
b_new.flv
0
kryonos Messages postés 2 Statut Membre
 
merci a tous !
le probleme est qu apparement le:

for element in *.avi
ne recherche pas tous les fichiers ayant cet extension .avi, si je fais un echo la boucle me sort juste un

" *.avi : Aucun fichier ou répertoire de ce type"

, alors que dans le dossier specifié il y a bien des fichiers de cette extension la
0
jee pee Messages postés 42389 Statut Modérateur 9 743
 
c'est que ton script ne doit pas s'executer dans le répertoire qui contient les fichier

rajoute un cd avant la boucle
0