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 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 ! big_smile

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é wink !
Il serait aussi parfait s'il pouvait prendre en compte les images des sous-dossiers.


En tout cas très bon boulot big_smile !

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

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.


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

max63 a écrit :
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

wink


...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 big_smile


==> 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. roll
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). yikes
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.
sad


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 résolu, 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à wink


...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 :

olazon a écrit :

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 wink .



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 smile

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