dimanche 11 septembre 2011

Création d'un timelapse

Depuis tout petit, j'ai toujours été intéressé par les étoiles et notamment les superbes images nous faisant découvrir les galaxies, les étoiles mortes, les nébuleuses etc. Paradoxalement, je ne m'étais jamais trop posé la question de faire ces observations par moi même puisque bien d'autre avant moi l'avait fait et - de mon point de vue - l'avait très bien fait.

Mais voilà, par un bel été il y a quelques années, ma mère m'a fait découvrir les anneaux de Saturne directement à l'aide de son petit télescope. C'est à ce moment que j'ai réalisé qu'il serait intéressant de contempler par moi même certain phénomène. Pour toute ces raisons (et pour d'autre comme par exemple la naissance de mon petit dernier), je me suis intéressé dans l'achat d'un appareil photo réflex et les techniques de photographie de type timelapse.

Ah, j'oubliais de vous préciser un truc : je n'utilise que des logiciels libre et ma machine principale héberge un Linux depuis des années. Pour ces raisons, j'essaye de faire partager ma petite expérience sur le sujet avec d'autre. Par la suite, nous utiliserons les logiciels suivant :
  • gphoto : il nous aidera à faire nos prises de vue à espace régulier. Je recommande néanmoins l'utilisation d'un intervalomètre pour éviter de se traîner un portable pendant une séance de photo ;
  • convert : outil de convertion d'image en ligne de commande ;
  • mencoder : outil de création de fichier vidéo.

Prendre des photos à intervalle régulier

Première chose, il faut utiliser un trépied afin que le cadre de vos photos reste identique de bout en bout. Il faut également désactiver l'autofocus de l'appareil ainsi que le stabilisateur d'image si vous en avez un. Fixer maintenant un élément qui vous intéresse et commencez à prendre vos photos à intervalle régulier. Pour se faire vous pouvez soit passer par un intervalomètre soit par le logiciel gphoto. En effet, ce dernier vous permet de prendre des photos directement à l'aide d'un ordinateur. Ci-dessous un exemple de ligne de commande :
gphoto2  --auto-detect --capture-image-and-download -I 1
Ci-dessous une petite explication des options présentes :
  • L'option --auto-detect à pour rôle d'inviter gphoto à utiliser le premier appareil détecté ;
  • L'option --capture-image-and-download invite gphoto à prendre une photo et à la télécharger automatiquement sur le PC ;
  • Enfin, l'option -I 1 indique le temps de pause entre chaque photo.
A la fin de votre séance de photo, vous devriez obtenir quelques centaines d'image que nous allons mettre maintenant bout à bout dans une vidéo.

Création de la vidéo

Nous allons procéder en deux étapes :
  • Retailler les photos ;
  • Assembler les photos dans une vidéo.
Pour la première étape nous allons utiliser l'outil convert de imagemagick. Nous allons également utiliser un petit bout de shell pour lancer cette convertion en boucle :
yannig@portable:~/Images/2011-09/timelapse/resize$ for i in ../*.JPG
do
  echo $i
  convert -resize 1440 $i $(basename $i)
done
L'option -resize 1440 indique à l'outil convert la taille désiré pour le fichier de résultat. Par défaut, la retaille se fait en préservant l'aspect de la photo.

NB : Pour éviter de tout mélanger, j'ai mis le résultat de la conversion dans un sous-répertoire resize.

Passons maintenant à la création de la vidéo à l'aide de mencoder (à lancer dans le répertoire contenant les fichiers retaillés) :
mencoder "mf://*.JPG" -mf fps=15:type=jpg -ovc x264 -x264encopts bitrate=3000 -o video-resultat.flv
Encore une fois, étudions ensemble les options de mencoder :
  • "mf://*.JPG" : donne le patron des fichiers à prendre en compte pour créer la vidéo ;
  • -mf fps=15:type=jpg : donne des informations sur la cadence désirée pour la vidéo ;
  • ovc x264 -x264encopts bitrate=3000 : information sur les paramètres d'encodage de la vidéo ;
  • -o video-resultat.flv : explicite le nom du fichier résultat.

Vidéo de résultat

Ci-dessous un petit exemple de ce que peu donner une vidéo réalisé avec ces outils :



Pour informations, cette vidéo à été réalisé avec 382 photos. Ces dernières ont été assemblées à une cadence de 25 images par secondes. Chaque image a été prise en mode automatique sur un Canon EOS 550D avec un intervalle de 10 secondes entre chaque prise de vue.

En espérant que tout ceci vous inspire !

5 commentaires:

  1. Perso pour mes video de stop motion (ce qui ressemble bcp à du timelaps) j'utilise http://stopmotion.bjoernen.com/ qui a le mérite de mettre une interface graphique (spécifique) au-dessus de mencoder.

    RépondreSupprimer
  2. hello

    d'apres ma version de gphoto,
    je crois plutot que la commande gphoto
    c'est gphoto2 --auto-detect --capture-image-and-download -I 1


    soit "I" et non "T"

    RépondreSupprimer
  3. @JJL : Effectivement, l'interface dont tu parles à l'air plutôt sympa mais on ne se refait pas comme ça : j'ai toujours été un grand fan de la ligne de commande ;)

    @maximG : Oui, tu as effectivement raison, il s'agit bien d'un i majuscule. Je modifie la coquille de ce pas.

    RépondreSupprimer
  4. Juste merci pour cet article qui m'a motivé à réaliser le mien... c'est un premier essai... http://www.youtube.com/watch?v=2Q7rxzYSvbQ
    J'ai donc utilisé gphoto2 pour piloter mon nikon D80. Ensuite mencoder pour la création vidéo. Et Pitivi pour assembler la bande sonore et le "générique de fin"... une fois la technique maîtrisée, je pimenterai avec du tilt-shift... ;p

    RépondreSupprimer
  5. @Tom : Je suis heureux d'apprendre que cet article t'ai servi :) De mon côté, pour faire des montages son / vidéo, j'utilise kdenlive qui est un outils très abordable pour un néophyte de mon genre.

    RépondreSupprimer