Suite à un petit souci de serveur, les emails de confirmation d'inscription n'étaient plus envoyés. Si vous n'avez pas reçu votre mot de passe, utilisez l'option "Mot de passe oublié" et vous recevrez le nouveau. (February 23) x

En raison de spams récurrents, les messages des nouveaux inscrits sont modérés a priori. Ne vous inquiétez pas si vous ne voyez pas apparaitre votre message immédiatement sur le forum. (November 04, 2021) x

Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[résolu] cherche un logiciel assemblage d'images pour vidéo
#1

bonjour,

j'utilise ma camera rpi pour capturer des images
je cherche un logiciel pour les assembler et créer une video

j'ai essayé mencoder :
---------
sudo apt-get install mencoder
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Package mencoder is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
--------

?
merci
#2

Si je ne me trompe pas, mencoder n'est plus directement accessible, il faut installer libav-tools :
Code :
sudo apt-get update
sudo apt-get install mpv libav-tools
#3

bonjour,
bon ben ça change rien
------
j'ai ensuite tenté suivant ce que dit la page https://www.raspberrypi.org/forums/viewt...6&t=123442
mais je bute sur;
[email protected]:/home/xx/mplayer-export-2016-06-21# sudo apt-get install ffmpeg
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Package ffmpeg is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'ffmpeg' has no installation candidate
------
j'ai encore essayé suivant la page http://superuser.com/questions/286675/ho...-on-debian
[email protected] ~ $ sudo apt-get install deb-multimedia-keyring
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet deb-multimedia-keyring
-----
je cale
merci
#4

deb-multimedia-keyring n'est pas dans le repository normal de rasbian, il faut ajouter le repository deb http://www.deb-multimedia.org jessie main non-free dans /etc/apt/sources.list
#5

Comme dit crazy, il te faut libav-tools .
Puis a la place de ffmpeg, tu prends avconv .
En exemple, un petit truc que j'ai fait pour, a partir de photos, realiser une video .:


Code :
[== Indéfini ==]
#!/bin/bash
# timelapse.sh

# utilisation:
#./timelapse.sh 5 1000 fera une photo toutes les 5 secondes et fera 1000 photos en tout.
# nombre de photo de 0001 à 9999
# calcul du temps de prise de vues et de la video résultante
echo ça fait
echo "(($2*$1)/60) " | bc
echo minutes de prise de vue
echo et
echo "($2/25)" | bc
echo secondes de video ! appuyez sur entrée ...
read

# prise des photos en image1.jpg, image2.jpg ...avec barre de progression
for i in $(seq 1 $2)
do
   echo $i
  # cam dlink photo rangées dans  /home/pi/video/
  # curl -# "admin:[email protected]:8080/image/jpeg.cgi" > /home/pi/video/image$i.jpg
  
  # cam Edimax photo rangées dans  /home/pi/video/
     curl -# "admin:[email protected]:8081/jpg/image.jpg" > /home/pi/video/image$i.jpg
    sleep $1
done

# photos -> video en mpeg video et photo rangée dans /home/pi/video/
avconv  -f image2 -i /home/pi/video/image%d.jpg /home/pi/video/video.mpg
#effacement des photos
rm /home/pi/video/*.jpg
#6

bonjour,
j'ai essayé ce "script?"
mais je bute sur : bc commande introuvable
et je l'ai "bricolé" car je n'ai pour le moment qu'une seule caméra
ce qui m'étonne est que je ne vois pas de ligne pour commander la capture d'image
curl -# "admin:[email protected]_ip_locale_du raspi:8080/image.jpeg.cgi" > /home/pi/video/image$i.jpg
?
où trouver le manuel des commandes linux ?
je ne connais que la programmation en basic ou en html
(vu mon âge)
merci
#7

bc résolu
apt-get install bc
#8

J'ai 2 cam ip .. Dans ce script, j'ai juste une cam de validée

# cam Edimax photo rangées dans /home/pi/video/
curl -# "admin:[email protected]:8081/jpg/image.jpg" > /home/pi/video/image$i.jpg

la commande curl me permet de l'adresser en direct

ma cam est sur l'ip: 192.168.1.127
son port: 8081
le login: admin
le Mdp: 1234
le registre pour l’accès a l'image: /jpg/image.jpg
le rep pour ranger l'image rapatriée: > /home/pi/video/image$i.jpg

ce qui donne :
curl -# "admin:[email protected]:8081/jpg/image.jpg" > /home/pi/video/image$i.jpg

avec curl -# je vais chercher l'image a l'ip:port selon le login et Mdp donnés et je la range dans le rep désiré !
#9

pour une video a partir de photo que j'ai faite :

https://www.youtube.com/watch?v=Ld42pf_OANg

Je ne parle pas de la qualité des images ( focus de la cam sur la fenetre et en plus pas reglée )
#10

bonjour,
oui c'est pas mal ça

dans ton script je ne vois pas ce que sont les variables $1 et$2
-----

j'ai essayé mais "coud not find codec parameters"

# photos -> video en mpeg video et photo rangée dans /home/pi/video/
avconv -f image2 -i /$repertoire_de_stockage/$nom_de_fichier_image /home/pi/video/video.mpg


avconv version 11.7-6:11.7-1~deb8u1+rpi1, Copyright © 2000-2016 the Libav developers
built on Jun 17 2016 02:13:49 with gcc 4.9.2 (Raspbian 4.9.2-10)
[image2 @ 0x16c8200] Could not find codec parameters (Video: [0][0][0][0] / 0x0000)
//home/pi/timelapse//: could not find codec parameters
-----------
avconv -codecs
j'y trouve mpeg4 et mjpeg

------------
j'ai essayé de modifier .jpg en .jpeg et .mpg en .mpeg4 et aussi en .mjpeg
mais c'est pareil

en fait j'ai bricolé un script :
#!/bin/bash

read -p 'entrer intervalle en millisecondes: ' tl
echo "intervalle est $tl msec"

read -p 'entrer durée en millisecondes: ' t
echo "la durée totale de prise d'images est $t msec"

# calcul du nombre de photos
echo "le nombre total d'images est de"
let "nb=(($t/$tl)+1)"
echo $nb "images"

# definir le dossier de stockage
repertoire_de_stockage='/home/pi/timelapse/'
echo "le repertoire de stockage est" $repertoire_de_stockage

# definir le nom du fichier image
nom_fichier_image=image%04d.jpeg

# prendre les photos et les placer dans le repertoire choisi
/opt/vc/bin/raspistill -q 50 -o $repertoire_de_stockage/$nom_fichier_image -t $t -tl $tl

# photos -> video en mpeg video et photo rangée dans /home/pi/video/
avconv -f image2 -i /$repertoire_de_stockage/$nom_de_fichier_image /home/pi/video/video.mpeg4

echo " appuyer sur entrée pour continuer (ou faire ctrl+C) ..."
read a

------
#11

bonjour,
(suite)
aujourd'hui avconv semble marcher ?
mais j'ai ce message d'erreur
/home/pi/video/video.mpeg: No such file or directory
or le répertoire /home/pi/video existe bien
non il n'existe pas
ce qui existe est /home/pi/Video
(la casse !)
donc tout marche
#12

# utilisation:
#./timelapse.sh 5 1000 fera une photo toutes les 5 secondes et fera 1000 photos en tout

$1 et $2 sont là ... ce sont les paramètres que tu passes dans la commande ./timelapse.sh
Dans mon exemple $1=5 $2=1000
#13

bonjour,
ok pour $1 et $2
mais les images sont numérotées image1.jpg image2.jpg etc image(n).jpg
comment faire pour créer des fichiers image$i.jpg avec 4 digits ? par timelapse
merci
#14

ah ah ... je l'ai pas inventé :

For creating a video from many images:

avconv -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi
avconv -f image2 -i /home/pi/video/image%d.jpg /home/pi/video/video.mpg ma ligne de code
The syntax "foo-%03d.jpeg" specifies to use a decimal number
composed of three digits padded with zeroes to express the sequence
number. It is the same syntax supported by the C printf function,
but only formats accepting a normal integer are suitable.

si tu préfères, il prend dans l'ordre image1,2,3... puis leur donne 2 digit 0 devant 001,002,003 ... et le transforme en avi ! une seul passe ! pas mal linux hein !
#15

bonjour et merci

eh bien je n'ai pas expliqué ce que je fais
j'ai créée timelapse.sh sans les lignes de la fin : sans la ligne de commande avconv
donc timelapse ne fait que prendre des images numérotées image$i.jpg
image1.jpg image2.jpg etc

ensuite j'ai créé un script "avconv.sh"
avconv -f image2 -i /home/pi/Video/image%d.jpg /home/pi/Video/video.mpg

pour créer une video à partir des images image1.jpg image2.jpg etc
je lance mon avconv.sh et ça marche bien

avconv -f image2 -i /home/pi/Video/image%03d.jpg /home/pi/Video/video.mpg
ça marche pas
/home/pi/Video/image%03d.jpg: No such file or directory

et simplement je me demande comment faire pour que timelapse numérote les images avec 3 digits par exemple
c'est juste une question que je me pose
et je ne comprends pas pourquoi faire numéroter les images par avconv
#16

Attends, entre le moment ou j'ai fait le script, et le moment ou je l'ai posé, il y a eu des modif que je n'ai pas reportées !
Excuse moi !

# prise des photos en image0001.jpg, image0002.jpg ...avec barre de progression
# prise des photos en image1.jpg, image2.jpg ...avec barre de progression

converti les images en video a partir de l'ordre exact des digit image1, image2, image3 ..
avconv -f image2 -i /home/pi/video/image%d.jpg /home/pi/video/video.mpg
#17

bonjour,
ok c'est bon pour avconv
je n'ai pas compris aussi
echo "(($2*$1)/60) " | bc
pourquoi | bc ?
quelle différence avec
echo "(($2*$1)/60) "

par ailleurs si je prends des images avec un autre script comment les renommer en masse
image%03d.jpg ?
je cherche un script pour renommer en masse
merci
#18

bc est une calculette en ligne de commande ...
#19

aguirab a écrit :par ailleurs si je prends des images avec un autre script comment les renommer en masse
image%03d.jpg ?

merci

ca dépend ce que tu veux renommer en masse .
J'ai bien fait un script qui fait ca, mais pour des photo apn .
Il ouvre les exif de la photo, la renomme en fonction de date / h /m / s des exif
Mais je sais pas si c'est ce que tu veux !
#20

Cette discussion me semble partir dans tous les sens, on ne sait plus ce qu'aguirab réussit à faire ou pas.

Je vais essayer de reprendre les choses dans l'ordre.
Prendre des images nommées correctement
Je donne tout d'abord un exemple pour prendre des images à la demande, c'est à dire sans l'utilisation de l'option timelapse de raspistill. Ce script va juste compter le nombre de fichiers présents dans le répertoire de destination, et nommer l'image suivante (et la prendre). Lancé avec un crontab, il prendra automatiquement une nouvelle image automatiquement en fonction de ce qui est défini. Bien entendu, on ne pourra pas descendre en dessous de la minute.
Code :
# Repertoire des photos
PICDIR='/home/pi/timelapse/'
# Format des nom d'images
PICMASK='image%04d.jpeg'

#Nommage de l'image
NB=$(ls -l ${PICDIR} | wc -l)
NB=$((NB+1))

PICNAME=$(printf ${PICMASK} $NB)
/opt/vc/bin/raspistill -q 50 -o ${PICDIR}${PICNAME}

Pour des prises de timelapse à la demande, ce serait plutôt:
Code :
# Repertoire des photos
PICDIR='/home/pi/timelapse/'
# Format des nom d'images
PICMASK='image%04d.jpeg'

read -p 'Durée de prise de vue (en s): ' delay
DELAY=$((delay*1000))

read -p 'Vitesse de prise de vue: ' speed

NB=$(ls -l ${PICDIR} | wc -l)
NB=$((NB+1))

/opt/vc/bin/raspistill -q 50 -o ${PICDIR}${PICMASK} -tl $speed -t $DELAY -fs $NB
Avec ce script, tant que tu n'as pas vidé le répertoire des images, raspistill "ajoutera" des fichiers.

Renommer les fichiers
Tu as des fichiers image1.jpg, image54.jpg, image164.jpg et tu veux image001.jpg, image054.jpg, image164.jpg?
Code :
PICMASK='image%03d.jpg'
for f in image*.jpg; do
  i=$(echo $f | sed -e 's/image\(.*\)\.jpg/\1/')
  PICNAME=$(printf ${PICMASK} $i)
  mv $f $PICNAME
done
#21

bonjour,
c'est vrai j'ai perdu le fil de mes projets
je cherchais un script sous linux qui fasse comme le logiciel sous windows "RenommeFichiers"
qui permet à partir d'une liste de fichiers classés avec une numérotation arbitraire

par exemple les fichiers pris par un apn

de les renommer nom_de_fichier&numéro.xxx
en choisissant le nom_de_fichier la numérotation et l'extension xxx


je suis aussi intéressé à ouvrir les exif et les utiliser pour renommer mes photos
comme tu le proposes

en tous cas je vais me servir de tous ces scripts
je vais commencer par essayer de les comprendre et me documenter sur le langage de programmation
car j'ai uniquement pratiqué le basic
c'est vieux comme moi
merci
#22

je me suis fais un script pour renommer mes fichiers apn en fonction de leurs exif .
le fichier dsc_200.jpg se trouve renomé en 24-04-2016-19-07-19.jpg
24 avril 2016 19h07mn19s
#23

aguirab a écrit :de les renommer nom_de_fichier&numéro.xxx
en choisissant le nom_de_fichier la numérotation et l'extension xxx

C'est donc ce que fait le dernier bout de script que j'ai mis. Je vais le commenter:

Code :
# Définition du nommage générique: ici, "image" suivi de 3 chiffres (complétés par des 0) puis ".jpg"
PICMASK='image%03d.jpg'

# On démarre une boucle qui va chercher tous les fichiers nommés image*.jpg
# Cela veut dire que les images renommées sont aussi traitées dans ce cas
for f in image*.jpg; do
  # On extrait le numéro présent dans le nom du fichier
  i=$(echo $f | sed -e 's/image\(.*\)\.jpg/\1/')
  # On recrée le nom en appliquant le numéro au nommage générique
  PICNAME=$(printf ${PICMASK} $i)
  # On renomme l'image originale
  mv $f $PICNAME
done

Code :
[email protected]:~ $ ls image*
image164.jpg  image1.jpg  image37.jpg
[email protected]:~ $ sh test.sh
mv: « image164.jpg » et « image164.jpg » identifient le même fichier
[email protected]:~ $ ls image*
image001.jpg  image037.jpg  image164.jpg

Bien sûr, j'aurais pu mettre un test pour vérifier qu'on ne renommait pas un fichier qui n'en a pas besoin Smile
#24

bonjour,
je suis débordé là
je vais étudier ce script
en peu de lignes il y a beaucoup de codes à intégrer
merci et à +
#25

bonjour,
voici "mon" timelapse

ce script prend un nombre de photos déterminé
j'ai mis beaucoup de points d'arrêts au cours de l'écriture du script
je les enlèverai par la suite

Code :
#!/bin/bash
# timelapse2a.sh

# utilisation:
# timelapse2.sh 5 1000 fera une photo toutes les 5 secondes et fera 1000 photos$
# nombre de photo de 0001 à 9999
# calcul du temps de prise de vues et de la video résultante
if [ ! -d /home/pi/Video ]
then
mkdir /home/pi/Video/
fi

if pgrep raspistill > /dev/null
then
echo "raspistill déjà running"
else

read -p 'entrer intervalle en millisecondes: ' tl
fi
let "nb1=(tl/1000)"
let "nb1a=(tl-nb1*1000)"
echo "intervalle est de :" $nb1 "secondes &" $nb1a "millis"
echo "############"

read -p 'entrer nombre total des images: ' nb_images
echo "le nombre total est" "$nb_images" " images"
let "t=($nb_images*$tl)"
echo "la durée totale de prise des images est" $t "millisec"
let "nbtot_sec=$t/1000"
let "nb_mn=($nbtot_sec/60)"
let "nb_sec=($nbtot_sec-($nb_mn*60))"
echo "nbtot_sec" $nbtot_sec
echo "nb_mn" $nb_mn
echo "nb_sec" $nb_sec

if [ $nb_mn -lt 60 ]; then
let "nb_h=0"

echo "la durée de prise d'images est:" $nb_mn "mn &" $nb_sec "sec"
echo "###############################"

else
let "(nb_h=(nb_mn/60))"
let "(nb_mn=nb_mn-(nb_h*60))"
echo "la durée de prise d'images est:" $nb_h "h & "$nb_mn "mn &" $nb_sec "sec"
echo "###############################"
fi

let "t_video=($nb_images/25)"
# echo "=> la durée totale de prise des images est = " $t_video "mn"
echo "la durée de video est = " $t_video "sec"
echo "#####################################################"

echo " appuyer sur entrée pour prendre les photos (ou faire ctrl+C pour sortir)$
read a

# prise des photos en image1.jpg, image2.jpg ...avec barre de progression
echo "les photos sont dans /home/pi/Video"
echo "de image1 à image"$nb_images
for i in $(seq 1 $nb_images)
do
echo "image"$i

ensuite je renomme les photos en 4 digits (%04d)

Code :
#!/bin/bash
# renommer images timelapse2a.sh

echo "les photos sont dans /home/pi/Video"
echo "renommer les images en %04d (ou faire ctrl+C pour sortir)"
read a
cd /home/pi/Video
# Définition du nommage générique: ici, "image" suivi de 3 chiffres (complétés par des 0$
PICMASK='image%04d.jpg'

# On démarre une boucle qui va chercher tous les fichiers nommés image*.jpg
# Cela veut dire que les images renommées sont aussi traitées dans ce cas
for f in image*.jpg; do
  # On extrait le numéro présent dans le nom du fichier
  i=$(echo $f | sed -e 's/image\(.*\)\.jpg/\1/')
  # On recrée le nom en appliquant le numéro au nommage générique
  PICNAME=$(printf ${PICMASK} $i)
  # On renomme l'image originale
  mv $f $PICNAME

[ Lecture de 28 lignes ]
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)