Webcam et Station Météo
à Fort-mahon plage

Partagez !

Création de timelaps automatiques

Voici ci-dessous la méthode utilisée afin de générer les vidéos quotidiennes résumant en quelques secondes la journée de la veille (http://fortmahon.webcam/hier.php) :

1 – Récupération et stockage temporaire d’images fixes

Pour commencer, dans l’interface d’administration de la caméra, il faut définir un « récipient » destiné à recevoir les images…

Pour cela, il faut se rendre sur la page « admin->events->recipient » et remplir les champs suivants :

Dans notre cas, le récipient qui va recevoir les images sera une machine que nous appelons à juste titre « nuc » puisqu’il s’agit d’un Intel NUC hébergé au Club Informatique ! Reste ensuite à définir l’adresse IP ou le nom d’hôte du serveur de destination dans le champ « Network Address » et le chemin du répertoire destiné à stocker les images.

Reste ensuite à définir les paramètres d’authentification. Cette dernière utilise le protocole SSH et nécessite les identifiant d’un compte utilisateur ainsi que le hash MD5 de la clé publique du serveur. Cette dernière s’obtient de la façon suivante :

1
2
ssh-keygen -E md5 -lf/etc/ssh/ssh_host_rsa_key.pub
4096 MD5:aa:bb:cc:dd:ee:ff:00:11:22:33:44:55:66:77:88:99 user@host (RSA)

La valeur a renseigner dans le champ « Public key MD5 » sera alors aabbccddeeff00112233445566778899.

Tester la connexion en cliquant sur le bouton « Test ». Si tout se passe bien, il faut maintenant définir les événements et les actions sur la page « admin->events->Action_rules »

Par exemple pour envoyer une image à intervalle régulier de l’esplanade sur le nuc, il faut définir la condition « Trigger->PTZ->Preset_Reached->Esplanade » et définir l’action « Type->Send_image->stream->JPG->Recipient->nuc »

Une fois ces actions effectuées, à chaque fois que la caméra atteindra le point d’intérêt enregistré Esplanade, une image sera envoyé sur le nuc. Dans notre cas, nous avons défini trois événements: esplanade, plage et digue sud.

2 – Traitement des images et création de la vidéo

Pour créer la video, nous copions les fichiers dans un répertoire temporaire en les classant par date et en ajoutant un numéro d’incrément au nom de fichier afin que les images soit traitées dans le bon ordre. Nous utilisons ensuite ffmpeg pour générer les vidéos :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
mkdir /home/xav/fmp/timelaps/$(date '+%d-%b-%Y')

#esplanade
cd /home/xav/fmp/shots
counter=1

#copie pour traitement et suppression des images reçues
ls -1tr esplanade*.jpg | while read filename; do cp $filename /home/xav/fmp/timelaps/$(date '+%d-%b-%Y')/$(printf %05d $counter)_$filename; ((counter++)); done
rm -f esplanade*

#creation de la vidéo
cd /home/xav/fmp/timelaps/$(date '+%d-%b-%Y')
ffmpeg -r 20 -pattern_type glob -i '*.jpg' -c:v copy output.avi
ffmpeg -i output.avi -c:v libx264 -preset slow -crf 15 output-final.mp4

Le même procédé est utilisé pour le timelaps de la digue sud.

3 – Upload des timelaps sur Youtube pour la diffusion et suppression des vidéos sur le Nuc.

Pour l’upload des vidéos sur Youtube, nous utilisons une librairie Python disponible ici : https://github.com/tokland/youtube-upload

Son utilisation est simple :

1
youtube-upload --client-secrets=secrets.json --title="Timelaps Plage FortMahon.Webcam $(date '+%d-%b-%Y')" --privacy="unlisted" /home/xav/fmp/timelaps/$(date '+%d-%b-%Y')/$(date '+%d-%b-%Y').mp4

Le script envoie la vidéo sur Youtube et répond son adresse de visionnage sur Youtube. Par ailleurs, l’option –privacy= »unlisted » permet d’empêcher à l’utilisateur de lister les vidéos ou de les trouver par l’intermédiaire du moteur de recherche. Les vidéos des jours précédents sont automatiquement supprimées.


Il y a actuellement 5 visiteurs connectés