#1 Le 15/07/2010, à 17:01
- olazon
Script qui assemble une série de photos en video
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
Dernière modification par olazon (Le 04/06/2011, à 12:05)
...si l'utopie est une chimère comme le dit le dictionnaire,
alors nous voulons des chimères partout sur la terre... (Les barbarins fourchus)
Hors ligne
#2 Le 16/07/2010, à 07:27
- Jywa
Re : Script qui assemble une série de photos en video
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 !
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 !
Dernière modification par Jywa (Le 16/07/2010, à 07:33)
Hors ligne
#3 Le 16/07/2010, à 12:45
- olazon
Re : Script qui assemble une série de photos en video
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
...si l'utopie est une chimère comme le dit le dictionnaire,
alors nous voulons des chimères partout sur la terre... (Les barbarins fourchus)
Hors ligne
#4 Le 17/07/2010, à 12:27
- max63
Re : Script qui assemble une série de photos en video
là 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.
Tout sur l'actualité frakassante du libre : http://www.frakass.org
Hors ligne
#5 Le 19/07/2010, à 12:35
- olazon
Re : Script qui assemble une série de photos en video
olazon a écrit :là 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!
...si l'utopie est une chimère comme le dit le dictionnaire,
alors nous voulons des chimères partout sur la terre... (Les barbarins fourchus)
Hors ligne
#6 Le 22/04/2011, à 15:51
- tiouck
Re : Script qui assemble une série de photos en video
Merci beaucoup Olazon pour ce script qui me permettra désormais de présenter mes images prises en rafales facilement !!!
Hors ligne
#7 Le 23/04/2011, à 12:47
- olazon
Re : Script qui assemble une série de photos en video
...si l'utopie est une chimère comme le dit le dictionnaire,
alors nous voulons des chimères partout sur la terre... (Les barbarins fourchus)
Hors ligne
#8 Le 14/03/2015, à 14:59
- soupaloignon
Re : Script qui assemble une série de photos en video
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
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#9 Le 14/03/2015, à 17:19
- erresse
Re : Script qui assemble une série de photos en video
Salut soupaloignon,
J'ai fait l'essai. Chez moi il fonctionne encore, mais je ne suis pas arrivé à un résultat visualisable.
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).
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.
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#10 Le 14/03/2015, à 17:41
- soupaloignon
Re : Script qui assemble une série de photos en video
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
Dernière modification par soupaloignon (Le 14/03/2015, à 17:42)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#11 Le 29/11/2017, à 00:28
- olazon
Re : Script qui assemble une série de photos en video
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à
...si l'utopie est une chimère comme le dit le dictionnaire,
alors nous voulons des chimères partout sur la terre... (Les barbarins fourchus)
Hors ligne
#12 Le 29/11/2017, à 09:55
- le-peyo
Re : Script qui assemble une série de photos en video
¡ Holà !
Concernant le script d'Olazon ci-dessus :
sinon 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.
Dernière modification par le-peyo (Le 29/11/2017, à 10:34)
Sous Linux depuis 2009 | Xubuntu 22.04 LTS | Lenovo Thinkpad W540
Windows... ? J'connais pas...
Petits scripts vidéos bien pratiques =>
C'est le moment : OMS et Institut Pasteur !
Hors ligne
#13 Le 30/11/2017, à 06:47
- olazon
Re : Script qui assemble une série de photos en video
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
Dernière modification par olazon (Le 01/12/2017, à 01:12)
...si l'utopie est une chimère comme le dit le dictionnaire,
alors nous voulons des chimères partout sur la terre... (Les barbarins fourchus)
Hors ligne