Transformer une séquence d’image de webcam en film

Transformer une séquence d'image en film

Il m'arrive souvent de prendre des images de webcam régulièrement et de faire des films en vitesse accélérée.

J'utilise un script shell pour aller chercher les images d'une webcam et les stocker dans un dossier avec un nom qui correspond à la date et l'heure de prise de vue.

Voici le script que j'utilise:

#!/bin/bash
#Capture une image de la vue dedevant chez moi toute les 3 s
while true; do
    curl http://axis-00408c77db21.local/axis-cgi/jpg/image.cgi?resolution=640x480 -o `/bin/date +"%y%m%d%H%M%S"`.jpg
    sleep 3
done

ça me permet d'appeller ma webcam qui se signale en local par le protocole bonjour.

Puis, après avoir fait tourner mon script pendant quelques semaines, il m'arrive souvent d'avoir des milliers ou plutôt des centaines de milliers de fichiers qu'il faut traiter.

Pour faire le film sur mac à partir des images, j'ai tester plusieurs logiciel:

  • Quicktime player pro version 7 a une fonction d'importation de séquence d'image.
  • iStopMotion
  • mencoder

Mencoder pour mac osx peut être télécharché ici:

http://prdownloads.sourceforge.net/mplayerosx/ffmpegXbinaries20060307.zip

mencoder est un outils en ligne de commande, mais c'est le plus robuste que j'ai trouvé pour gérer les centaines de milliers de fichiers et en plus il est gratuit.

Si mencoder est placé dans le dossier /Applications du mac, pour faire le film, il faut aller dans le dossier qui contient les images et lancer la commande suivante:

/Applications/mencoder "mf://*.jpg" -mf fps=50 -ovc x264 -o output264.avi

Un film sera créé au format h.264 dans le dossier avec le nom: output264.avi

Il existe plusieurs codec utilisable par défaut.

La commande:

mencoder -ovc help

permet de voir les codec disponibles:

Available codecs:
copy     - frame copy, without re-encoding. Doesn't work with filters.
frameno  - special audio-only file for 3-pass encoding, see DOCS.
raw      - uncompressed video. Use fourcc option to set format explicitly.
nuv      - nuppel video
lavc     - libavcodec codecs - best quality!
libdv    - DV encoding with libdv v0.9.5
xvid     - XviD encoding
x264     - H.264 encoding

Mise à jour en 2017 en utilisant ffmpeg

De 2010 à 2017.. les choses ont changées... mais pas les besoins.

timelapse avec ffmpeg

Inspiration:

Procédure:

  • créer un dossier
  • RESIZED_PHOTO_DIRECTORY
  • dans les dossier des photos

Depuis le dossier lancer la commande:

for FILE in `ls *.JPG`; do \

  mogrify -resize 1280x720^ -gravity center -crop 1280x720+0+0 +repage -write RESIZED_PHOTO_DIRECTORY/$FILE $FILE; \

done

Créer la vidéo:

ffmpeg -start_number 1 -i _DSF%04d.JPG -c:v libx264 -pix_fmt yuv420p video.mp4

ou....

ffmpeg -r 24 -pattern_type glob -i '*.JPG' -i DSC_%04d.JPG -s hd1080 -vcodec libx264 timelapse.mp4

Du coup j'utilise:

ffmpeg -r 24 -pattern_type glob -i '*.JPG' -vcodec libx264 timelapse.mp4

Je me fait insulter car la manière de passer en paramètre le codec est deprecated et que j'ai pas préciser la taille des pixel... il prend pas défaut yuv.. comme dans l'exemple...

mais ça marche sans soucis et c'est beau !

alternative pour gérer le resize..

convert input.jpg -resize '1920x1080^' -gravity center -crop '1920x1080+0+0' output.jpg

Exemple de timelapse avec ffmpeg

Voici un exemple de timelapse que j'ai fait:

documentation sur Nintendo et les sons des vieux jeux vidéos

Infos à propos de Nintendo et sons de vieux jeux vidéos

Sources intéressantes..

Musiques et sons:

sons de Mario Bros selon les archives sons que l'on trouve par ici:

Le site d'archives de sons de jeux vidéos http://www.zophar.net/music.html

La musique es au format spc ou nsf. Il faut lire ces fichiers avec un lecteur de fichier spc ou nsf pour mac on peut trouver ça par ici:  http://mac.wareseeker.com/Games/game-music-box-0.5.2b3.zip/322800

Voici les sons typiques de Mario Bros que tout le monde reconnaitra tout de suite.

  • Thème de mario => archive NES => Super Mario Bros => piste 1 (le must !)
  • Thème de mario sombres tunnels => archive NES => Super Mario Bros => piste 2
  • Thème de mario rapide stress peur=> archive NES => Super Mario Bros => piste 4 et 16 plus rapide
  • Thème de mario rapide invincible=> archive NES => Super Mario Bros => piste 5 et 17 encore plus rapide
  • Musique fin de niveau => archive NES => Super Mario Bros => piste 6
  • game over => archive NES => Super Mario Bros => piste 8
  • Thème de mario 2 => archive NES => Super Mario Bros 2 => piste 6 (moins bien)
  • Pièce de monnaie => archive NES => Super Mario Bros 2 => piste 27
  • Pièce de monnaie => archive NES => Mario Bros => piste 11
  • Descente dans le tube => archive NES => Super Mario Bros 2 => piste 31
  • Descente dans le tube => archive NES => Mario Bros => piste 11 (moins bien)
  • décompatage infini du nb de points => archive NES => Mario Bros => piste 5
  • champignons qui fait grandir => archive NES => Super Mario Bros 2 => piste 32
  • champignons qui fait grandir => archive NES => Mario Bros => piste 10 (moins bien)
  • saut loin => archive NES => Mario Bros => piste 13
  • saut près => archive NES => Mario Bros => piste 14

Les sons de tetris:

  • thème tetris => archive gameboy => Tetris => piste 2
  • bruitage tetris rotation => archive NES => Tetris => piste 16
  • bruitage tetris déplacement => archive NES => Tetris => piste 14
  • bruitage tetris pose de pièce => archive NES => Tetris => piste 18
  • bruitage tetris pose rapide => archive NES => Tetris => piste 22
  • bruitage tetris suppresion de ligne => archive NES => Tetris => piste 21
  • bruitage tetris carambolage => archive NES => Tetris => piste 24 puis 25

(les différents bruitages du jeux sont encore à vérifier.. je ne suis pas certain de tout !)

La musique de tétris la plus connue est celle qui était conçue pour la game boy.

Dans l'archive NES "tengen tetris" il y à aussi des sons plus modernes et donc plus riches. (la rotation par ex.)

Il y aussi l'archive NES "Pac Mania" avec tous ses sons mythiques.

Sur youtube

 

Fichier:Mario-mushroom.svg

Mots-clés IPTC dans une photo

Mots-clés IPTC dans les photos

Une manière intéressante d'organiser ses photos est d'utiliser les mots-clés IPTC présents dans les métadonnées des photos.

Personnellement, j'attribue toujours à mes photos des mots-clés IPTC. Ainsi quand je fais une recherche sur mon mac spotlight est capable de me retrouver les photos.

Quelques mots-clés que j'utilise fréquement:

  • Portrait => pour les photos que l'on utiliserait pour présenter quelqu'un
  • couple => pour les photos que l'on utiliserait pour présenter quelqu'un, mais quand il y a 2 personnes.
  • Group => pour les bonnes photos de groupes. A partir de 3 personne
  • Landscape => les photos de paysage que je mettrai en fond d'écran
  • panorama => les photos panoramique
  • HDR => les photos HDR
  • sourire => les beaux sourire
  • rire => les gens qui rient aux éclat
  • grimace => les gens qui fond des grimaces
  • profile => les gens de profile
  • lunette => les lunettes ou gens à lunettes
  • chapeau => les chapeau ou gens à chapeau. (ou bonnet et casque que j'ajoute en plus)
  • château
  • lever de soleil
  • coucher de soleil
  • montagne
  • lac
  • lune
  • orage
  • arc-en-ciel
  • rivière
  • herbe
  • fleur
  • silhouette
  • reflet
  • arbre
  • neige
  • lumière => quand il y a une lumière particulière
  • affiche => pour ma collection d'affiche politique
  • fontaine
  • gargouille
  • statue
  • tour
  • feu

.... et beaucoup d'autres qui viennent sur le moment..

Mots-clés IPTC et php

Quand je fais une galerie de photo sur le web. Je vais piocher les mots-clés IPTC dans les métadonnées pour afficher des infos sur la photos ou même directement pour créer des albums.

Voici quelques fonctions php que j'utilise pour aller chercher les mots-clés IPTC dans les métadonnées d'une photo.

 

/* Retourne un tableau contenant les mots-clé IPTC contenu dans le fichier de la photos
*
* @return: array() un tableau de string contenant les mots-clé IPTC de la photos
* @param: $imagePath => le chemin d'accès sur le serveur de la photo. (ou une url)
*/
function getIptcKeywordsFromFile($imagePath){

$size = getimagesize ($imagePath, $info);
if(is_array($info)) {
if (isset($info["APP13"])) {
$iptc = iptcparse($info["APP13"]);
if (isset($iptc['2#025'])) {
return $iptc['2#025'];
}else{
return '';
}
}else{
return '';
}         
}
}

/* Retourne l'auteur de la photo selon le champ IPTC credit
*
* @return: la valeur du champ iptc credit
* @param: $imagePath => le chemin d'accès sur le serveur de la photo. (ou une url)
*/
function getIptcCreditFromFile($imagePath){

$size = getimagesize ($imagePath, $info);
if(is_array($info)) {   
$iptc = iptcparse($info["APP13"]);
return $iptc['2#110'][0];            
}
}

Navigation au sein des articles

1 2 3 18 19 20 21 22 23 24 25 26 27
Remonter