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 07/08/2013, à 04:38

alfirdaous

[RESOLU]Petit script bash

Bonjour,

C'est quoi le premier pas de realiser un petit script avec des variables, par exemple cette commande:

ffmpeg -i [NOM_FICHIER] -strict experimental -vf "drawtext=fontfile='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf':text='www.alfirdaous.com':x=[X]:y=[Y]:fontsize=[TAILLE]:fontcolor=[COULEUR]" -vcodec libx264 -preset medium -crf 24 -acodec copy font_FreeSans.mp4

Alors je cherche a mettre un petit script qui demande les informations entre [], autrement dit:

Veuillez entrere un nom du fichier:
ICI ON MET LE NOM apres on passe a la 2eme, ainsi de suite.

Merci

Dernière modification par alfirdaous (Le 12/08/2013, à 07:46)

Hors ligne

#2 Le 07/08/2013, à 05:28

pingouinux

Re : [RESOLU]Petit script bash

Bonjour,
Voir help read

#!/bin/bash

read -p "Veuillez entrer le nom du fichier : " NOM_FICHIER
read -p "Veuillez entrer X : " X
read -p "Veuillez entrer Y : " Y
read -p "Veuillez entrer la TAILLE : " TAILLE
read -p "Veuillez entrer la COULEUR : " COULEUR

ffmpeg -i "$NOM_FICHIER" -strict experimental -vf "drawtext=fontfile='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf':text='www.alfirdaous.com':x=$X:y=$Y:fontsize=$TAILLE:fontcolor=$COULEUR" -vcodec libx264 -preset medium -crf 24 -acodec copy font_FreeSans.mp4

Hors ligne

#3 Le 07/08/2013, à 15:07

nesthib

Re : [RESOLU]Petit script bash

Ou plus simplement, utilise les arguments du script :

#!/bin/bash
ffmpeg -i "$1" -strict experimental -vf "drawtext=fontfile='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf':text='www.alfirdaous.com':x=$2:y=$3:fontsize=$4:fontcolor=$5" -vcodec libx264 -preset medium -crf 24 -acodec copy font_FreeSans.mp4

à lancer de la sorte :

./nom_du_script.sh "nom du fichier" 123 456 12 #123456

pour avoir :

ffmpeg -i "nom du fichier" -strict experimental -vf "drawtext=fontfile='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf':text='www.alfirdaous.com':x=123:y=456:fontsize=12:fontcolor=#123456" -vcodec libx264 -preset medium -crf 24 -acodec copy font_FreeSans.mp4

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#4 Le 07/08/2013, à 15:24

Watael

Re : [RESOLU]Petit script bash

salut,

on peut aussi utiliser des variables environnementales:

$ cat ./myScript
#!/bin/bash

echo "$premiR - $deuxiM - $troisiM"
$
$ premiR="bla bla" deuxiM="une chose" troisiM="puis une autre" ./myScript
bla bla - une chose - puis une autre

Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#5 Le 11/08/2013, à 05:12

alfirdaous

Re : [RESOLU]Petit script bash

merci a vous, chacun a sa propre methode, je choisissais la plus simple smile

EDIT:

Un petit changement, pour le traitement de plusieurs fichiers, on utilise xargs:

#!/bin/bash

read -p "Starting from : " Start
read -p "Ending by : " End
read -p "Timing : " Timing
read -p "Input file name : " Input
read -p "Input file Ext : " InExt
read -p "Output file name : " Output
read -p "Output file Ext : " OutExt

printf "%s\n" {"$Start".."$End"} | xargs -i ffmpeg -itsoffset -"$Timing" -i "$Input"{}."$InExt" -vcodec mjpeg -vframes 1 -an -f rawvideo -s 640x480 "$Output"_{}."$OutExt"

Resultat:

font_FreeSans{1..3}.mp4: No such file or directory

Dernière modification par alfirdaous (Le 11/08/2013, à 05:37)

Hors ligne

#6 Le 11/08/2013, à 06:28

pingouinux

Re : [RESOLU]Petit script bash

Bonjour,
Et comme ceci ?

seq "$Start" "$End" | xargs -i ffmpeg ………

Hors ligne

#7 Le 12/08/2013, à 01:56

alfirdaous

Re : [RESOLU]Petit script bash

merci pingouinux, c'est quoi la diffrence entre seq et printf?

Hors ligne

#8 Le 12/08/2013, à 02:12

Watael

Re : [RESOLU]Petit script bash

salut,

le problème ne vient pas de printf :
le Développement des accolades est effectué avant Développement des variables. sad
Or, celui-ci n'ayant pas pas d'entiers sur lesquels se baser, il n'est pas effectué, et est affiché littéralement, puis, les variables sont développées.

Dernière modification par Watael (Le 12/08/2013, à 02:13)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#9 Le 12/08/2013, à 07:20

pingouinux

Re : [RESOLU]Petit script bash

alfirdaous #7 a écrit :

c'est quoi la diffrence entre seq et printf?

man seq printf

Hors ligne

#10 Le 12/08/2013, à 07:46

alfirdaous

Re : [RESOLU]Petit script bash

merci pingoulnux

Hors ligne