Nouvelle vidéo d’Harry Durgin qui illustre l’utilisation d’un script bash pour créer un timelapse à partir d’images provenant d’une webcam sur internet.

Dans un premier temps il cherche une webcam sur internet. Ensuite il configure le minuteur pour télécharger une image toutes les 5 minutes et les archiver. Chaque images téléchargées subissent une édition basique via darktable-cli (l’interface en ligne de commande). Une fois qu’il y a assez d’images, on peut créer une vidéo de timelapse. Bon visionnage !

Les fichiers utilisées:

timelapse-deflicker.pl (by Vangelis Tasoulas) maunaloa.xmp

Le script get_images.zsh

 1#!/bin/zsh
 2
 3url='http://www.esrl.noaa.gov/gmd/webdata/mlo/webcam/northcam.jpg'
 4xmp='maunaloa/maunaloa.xmp'
 5dir='maunaloa'
 6
 7TZ='HST' date |read time
 8TZ='HST' date +%s |read seconds
 9
10# DOWNLOAD WEBCAM IMAGE
11wget -T6 --random-wait -O /tmp/image.jpg "$url"
12
13# PROCESS WITH DARKTABLE
14rm /tmp/image_dt*
15/opt/darktable/bin/darktable-cli /tmp/image.jpg "$xmp" --width 1920 --height 1080 --upscale true /tmp/image_dt.jpg
16
17# ARCHIVE WITH DATE STAMP
18convert /tmp/image_dt.jpg -pointsize 36 -fill "#FFFFFF" -draw "text 1400,1050 '$time'" ~/$dir/$seconds.jpg

Le script make_movie.zsh

 1#!/bin/zsh
 2
 3num_images=2000
 4slow=8
 5frame_window=16
 6source_dir='/home/harry/int/maunaloa'
 7mkdir final &> /dev/null
 8cat /dev/null >frames
 9
10# COPY FILES
11ls "$source_dir" |tail -n $num_images |while read file; do
12  cp "$source_dir/$file" ./
13done
14
15# DEFLICKER
16/home/harry/bin/timelapse-deflicker.pl -w 15 -p 2
17
18# BUILD FRAME LIST
19ls Deflickered |while read file; do
20  seq 1 $slow |while read i; do
21    echo Deflickered/$file >>frames
22  done
23done
24
25wc -l frames |cut -d' ' -f1 |read num_frames
26typeset -Z6 c
27
28# CREATE FRAMES
29seq 1 $num_frames |while read c; do
30  convert `head -n $frame_window frames` -average final/$c.jpg
31  sed -i '1d' frames
32  echo -ne "e[0Kr$c / $num_frames"
33done
34
35# MAKE MOVIE
36avconv -f image2 -r 30 -i final/%06d.jpg -aspect 16:9 -b:v 15000k -y video.avi &> /dev/null