Bonjour,

Voilà un script qui se charge d'assembler une série d'image en une vidéo
#! /bin/bash

    #########################################################
    # Script qui transforme une serie de photos en video    #
    # Sans aucune garantie de l'auteur            #
    #########################################################

# Dépendance zenity, mencoder

#Dialogue choix du type de fichier
ext=`zenity --entry --title="Type d'extention" --text="Ce script se charge d'assembler 
\
toutes les photos d'un même dossier en une vidéo AVI
\\
\

Choisissez le type d'extention des photos
\
\
Exemple: .jpg .bmp etc...
\
Attention à la casse .jpg est different de .JPG" --width="400" --height="450"`
if [ $? -ne 0 ]; then
    zenity --error --title="Script terminé" --text="Annulation"
    exit 1
fi

echo "les images sont de type $ext" >>log_output.txt

#Nombre d'images/seconde
ips=`zenity --entry --title="Image/seconde" --text="
\
\
\
\
Les images sont de type  $ext 
\
\

Choisissez le nombre d'images par seconde" --width="400" --height="450"`
if [ $? -ne 0 ]; then
    zenity --error --title="Script terminé" --text="Annulation"
    exit 1
fi

echo "$ips images par seconde" >>log_output.txt

#Definition du bitrate
btr=`zenity --scale --width="400" --height="450" --title="Bitrate" --text="Les images sont de type  $ext 
\
\

La vidéo aura $ips images/seconde 
\
\

<b>Definissez le Bitrate de la Video</b> 
\
\

<i>si vous ne savez pas laisser cette valeur</i>" --value="1024" --min-value="1000" --max-value="1800"`
if [ $? -ne 0 ]; then
    zenity --error --title="Script terminé" --text="Annulation"
    exit 1
fi

echo "Le bitrate a été défini à $btr" >>log_output.txt


#Selection du dossier source
zenity --info --title="Images à assembler" --text="Les images sont de type  $ext 
\
\

La vidéo aura $ips images/seconde 
\
\

\
\
\
\
Le bitrate a été défini à $btr
\
\
\
\ 
\
Veuillez maitenant sélectionner
\
     le dossier contenant les photos." --width="400" --height="450"
INPUT_DIRECTORY=`zenity --file-selection --directory --title="Fichier"`
if [ $? -ne 0 ]; then
    zenity --error --title="Script terminé" --text="Annulation"
    exit 1
fi

#Choix nom de fichier et destination
zenity --info --title="Sortie" --text="Les images sont de type  $ext 
\
\

La vidéo aura $ips images/seconde 
\
\

\
\
\
\
Le bitrate a été défini à $btr
\
\
\
\ 
\
\
\
\
\
Dossier sélectionner:  $INPUT_DIRECTORY
\
\
\
\
\\
<b> Choisissez maintenant le nom de la video à créer.</b>
\
 l'extention (.avi) sera ajouter automatiquement" --width="400" --height="450"
output=`zenity --file-selection --save --file-filter=.avi --confirm-overwrite --title="Enregistrer la cible sous"`
if [ $? -ne 0 ]; then
    zenity --error --title="Script terminé" --text="Annulation"
    exit 1

fi
 
zenity --info --title="Images à assembler" --text="Les images sont de type  $ext 
\
\

La vidéo aura $ips images/seconde 
\
\

\
\
\
\
Le bitrate a été défini à $btr
\
\
\
\ 
\
Dossier sélectionner:  $INPUT_DIRECTORY
\
\
\
\
\\
Fichier de sortie   $output.avi" --width="400" --height="450"
if [ $? -ne 0 ]; then
    zenity --error --title="Script terminé" --text="Annulation"
    exit 1

fi

cd $INPUT_DIRECTORY

#Lancement de la commande et affichage de la barre de progression
mencoder mf://*$ext -mf fps=$ips -ovc xvid -xvidencopts bitrate=$btr -o $output.avi |  zenity --progress --title="Progression" --text="Création du Fichier en cours..." 


exit 0
Bonjour,


Superbe pour ton script ! Simple et facile d'utilisation ! 😃

Je n'arrive jamais à trouver les bons codecs et les bons bitrates, il tombe à point nommé pour moi ! :cool:

Il ne manquerais plus qu'il puisse déterminer par lui même le nombre d'images par secondes d'après un durée déterminée et la quantité d'images contenues dans le dossier sélectionné 😉 !
Il serait aussi parfait s'il pouvait prendre en compte les images des sous-dossiers.


En tout cas très bon boulot 😃 !
Merci Jywa,
Il ne manquerais plus qu'il puisse déterminer par lui même le nombre d'images par secondes d'après un durée déterminée et la quantité d'images contenues dans le dossier sélectionné !
Ça ne devrait pas être trop compliqué, je regarderais quand j'aurais un moment
Il serait aussi parfait s'il pouvait prendre en compte les images des sous-dossiers
là j'ai chercher mais je n'ai pas trouvé de mode récursif pour mencoder
olazon a écritlà j'ai chercher mais je n'ai pas trouvé de mode récursif pour mencoder
Peut être qu'une copie des fichiers dans le répertoire /tmp/photos pourrait palier ce problème.
max63 a écrit
olazon a écritlà j'ai chercher mais je n'ai pas trouvé de mode récursif pour mencoder
Peut être qu'une copie des fichiers dans le répertoire /tmp/photos pourrait palier ce problème.
Bien vu max!
9 mois plus tard
Merci beaucoup Olazon pour ce script qui me permettra désormais de présenter mes images prises en rafales facilement !!!
4 ans plus tard
Bonjour à tous,

Dommage, un script qui était prometteur, mais qui ne fonctionne pas chez moi. Quelqu'un l'utilise ?

ps : oui, je sais, c'est un sacré déterrage de post 😃
Salut soupaloignon,

J'ai fait l'essai. Chez moi il fonctionne encore, mais je ne suis pas arrivé à un résultat visualisable. :rolleyes:
Soit le fps est élevé et il affiche autant de photos que la valeur du fps à la seconde, soit en le mettant à 1, il n'affiche plus que la première photo (avec VLC). :o
Je n'ai pas compris, parce-que en ouvrant le film avec avidemux, il y a bien toutes les photos dedans et lui les affiche bien toutes...
Il doit falloir régler différemment les paramètres de la commande mencoder pour obtenir un résultat valable.
🙁
Hello erresse

J'allais poster un nouveau message, quand j'ai vu le tien.

Quelques retours :
Le script ne fonctionne pas quand le chemin des fichiers comporte des espaces dans les dossiers
Il ne tient pas compte des orientation excif, et les photos en portrait se retrouvent en paysage
Le fichier avi reste bloqué sur la 1ere image avec VLC, mais ça fonctionne bien avec Totem
Pour faire un diaporama qui reste lisible, il faut que les images s'affichent plus de 1 secondes. le script prend en charge la valeur "0,5" par exemple (séparateur virgule). Ce qui donnera un affichage de 2 secondes par image.

Cela reste un script sympa pour un petit diaporama rapide
3 ans plus tard
Redéterrage !!

Chez moi ça fonctionne toujours (sous debian 8)
par contre il faut que les images est un même profil de couleur et soient au même format,
je l'utilise pour monter mes time laps et ça marche assez bien...

Pour faire des diaporamas je vous propose un script nautilus
il utilise feh et yad,
yad n'étant pas dans les dépots officiel il y a un ppa je vous laisse chercher...
sinon en remplaçant "yad" par "zenity" à la ligne 8 du script ça devrait fonctionner

#!/bin/bash

## script by OlazOn
## olazon@no-log.org
#
## Dépend de feh, yad
#
time=`yad --entry --width 180 --height=180 --title "Diaporama" --text="Délai entre chaque vue \\
	\

\

	<i>(Durée en secondes)</i>"`
if [ $? -ne 0 ]; then
    exit 1
fi
feh -D $time ./

exit 0
Nommer le "Diaporama" enregistrer le dans ~/.local/share/nautilus/scripts et rendre exécutable

Utilisation
Aller dans le dossier ou son vos photos, clic droit sur une photo> Scripts>Diaporama
sélectionner le délai et valider.

Bien sur là pas de fichier vidéo juste l'affichage du diaporama
Je repasse d'ici 2 ans voir si vous êtes toujours là 😉
¡ Holà !

Concernant le script d'Olazon ci-dessus :
olazon a écritsinon en remplaçant "yad" par "zenity" à la ligne 8 du script ça devrait fonctionner
... ça fonctionne.

Si aux arguments de yad on ajoute :
--center
la fenêtre "Diaporama" s'ouvrira au centre de l'écran (zenity se passe de cette option car le centrage se fait par défaut),

et si en arguments de feh on met :
feh -FZqrD $time ./
le diaporama se lancera en fullscreen, ira lire dans les sous-dossiers de façon récursive et ajustera automatiquement la taille des photos à celle de l'écran 😉 .



Sous Xfce avec Thunar :

Editer => Configurer les actions personnalisées => Ajouter (signe +).
On le nomme comme on veut (euh, par exemple, Diaporama) et dans "Commande" on indique le chemin du script.

Puis dans "Conditions d'apparition" on ne coche que "Répertoires" et "Fichiers Images".

À plus.
Merci pour ces précisions le-peyo 🙂

Du coup j'ai peaufiné le script,
j'ai mis l'option "récursif" en case à cocher
et on peut régler le délai à 2/100 de seconde
inutile pour un diaporama mais pratique pour prévisualiser une animation (ex: à 0.04s on est à 25 images par seconde)

Par contre cette version ne fonctionnera pas avec zenity !
#!/bin/bash

## script by OlazOn
## olazon@no-log.org
#
## Dépend de feh, yad
#
retour=`yad --form --center --width 250 --height=180 --title "Diaporama" --field=Durée:NUM 0.5!0..1000!0.1!2 --field=Récursif:CHK --text="Délai entre chaque vue \\
	\

\

	<i>(Durée en secondes)</i>"`
if [ $? -ne 0 ]; then
	exit 1
fi
time=`echo "$retour" | sed -e 's/[^0-9,]//g' | sed -e "s/,/./g"`

mod=`echo $retour | sed -e 's/[^A-Z]//g'`

if [ $mod == TRUE ]; then
	rec=r
fi

feh -FZq"$rec"D $time ./

exit 0