30 votes

Comment réaliser une vidéo en stop motion ou en time-lapse avec une webcam ?

J'ai une webcam qui fonctionne comme un périphérique v4l2.

Quel est le moyen le plus pratique de capturer un film d'animation ou un film de fiction ? time-lapse vidéo ?

N.B.

Le stop-motion et le time-lapse sont liés mais conceptuellement différents.

Le time-lapse consiste à prendre une photo d'une scène à un intervalle donné, puis à la combiner dans une vidéo (qui semble aller très vite).

Le stop-motion consiste à contrôler la scène et à prendre une image pour chaque changement effectué, afin de créer une animation (par exemple, Wallace et Grommit).

Une application pour le time-lapse doit être capable de prendre une photo à un intervalle déterminé.

42voto

Mufaka Points 54

Capturer un million d'images.

La première étape consiste à capturer des images. Imaginons que vous souhaitiez prendre une photo toutes les 10 secondes et la sauvegarder dans un répertoire situé sur votre bureau.

mkdir ~/Desktop/cap
cd ~/Desktop/cap

Nous utilisons streamer pour faire la capture alors installons-le :

sudo apt-get install streamer

Et maintenant nous voulons capturer

streamer -o 0000.jpeg -s 300x200 -j 100 -t 2000 -r 1

-t est le nombre d'images que nous voulons capturer. -r est le nombre d'images par seconde. Donc ça devrait prendre une image par seconde. Si vous comprimez cela en une vidéo de 30 images par seconde, une minute de capture devient 2 secondes de vidéo. Vous devrez ajuster ce paramètre en fonction de la quantité de vidéo que vous souhaitez obtenir.

Cette ligne vous donnera 2000 images, il faudra une demi-heure pour enregistrer et, à 30 images par seconde, elle générera un peu plus d'une minute de vidéo.

Tout mettre en place

Je vais utiliser ffmpeg . Il existe de nombreuses manières différentes de l'assembler, notamment mencoder mais je préfère ffmpeg sur la vie. Après l'avoir installé ( sudo apt-get install ffmpeg ) juste wang out this :

ffmpeg -r 30 -i %04d.jpeg -s hd480 -vcodec libx264 -vpre hq time-lapse.mp4

Les paramètres de qualité ne sont pas comparables à ceux de ma webcam, vous pouvez donc jouer avec les options pour obtenir un meilleur encodage, mais cela devrait vous donner une belle vidéo à 30 images par seconde, compressée en x264.

Vous pouvez jouer avec le taux de rafraîchissement ( -r ) mais je ne descendrais pas en dessous de 15fps.

9voto

Bob Points 940

Pour capturer toutes les X secondes à partir d'une webcam, utilisez le mouvement.

Installer motion

sudo apt-get install motion ou sudo aptitude install motion

Configurer le mouvement pour chaque quantité X de secondes

sudo nano /etc/motion/motion.conf

Modifier les variables temps_frame_minimum y intervalle d'instantanéité au même nombre de secondes que celui pendant lequel vous souhaitez prendre la photo avec la webcam.

10 minutes = 600 secondes
20 minutes = 1200 secondes
30 minutes = 1800 secondes
1 heure = 3600 secondes
2 heures = 7200 secondes et ainsi de suite...

exécuter le mouvement avec sudo motion l'arrêter avec CTRL + C

NOTE - Configurez motion.conf pour enregistrer les fichiers dans un autre répertoire que le répertoire par défaut /tmp. Par exemple votre dossier personnel. Puisque aller dans /tmp nécessite plus de privilèges. Vous trouverez également de nombreuses options utiles dans le motion.conf pour de nombreuses autres choses que vous pourriez aimer.

7voto

Paul Beckingham Points 7460

gTimelapse ( Lien de téléchargement )

enter image description here

Une application pour capturer des images afin de générer des vidéos timelapse, construite sur les bibliothèques gPhoto2 et wxWidgets.

Instructions de compilation

Téléchargez la source depuis le site sourceforge

dans un terminal, tapez ce qui suit :

cd Downloads 
gunzip gtimelapse-0.1.tar.gz
tar -xvf gtimelapse-0.1.tar
cd gtimelapse
sudo apt-get install build-essential libgphoto2-2-dev libwxbase2.8-dev libwxgtk2.8-dev gphoto2
./configure
make
sudo make install

Pour exécuter l'application, tapez

gtimelapse &

n.b. 1

gphoto2 --list-cameras | more

n.b. 2

voir ceci blog pour d'autres informations utiles

liste tous les appareils compatibles que l'application prend en charge

n.b. 3

J'ai lu que le gphoto2 ne prenait pas en charge les webcams - je vais quand même laisser cette réponse visible, au cas où quelqu'un voudrait essayer cette réponse avec un appareil photo numérique décent au lieu d'une webcam.

2voto

Tim Points 30349

Une option rapide, sale, mais un peu plus flexible est la suivante :

ffmpeg -pattern_type glob -framerate 25 -i 'image-*.jpg' -c:v libx264 \
    -profile:v high -crf 20 -pix_fmt yuv420p output.mp4

Ici, j'ajoute -pattern_type glob en utilisant le caractère générique * et en mettant mon nom de fichier entre guillemets : 'image-*.jpg' .

L'avantage : Cette syntaxe vous permet de commencer à n'importe quel nombre et d'avoir n'importe quel modèle dans votre numérotation (je crée souvent un compte par 20, en commençant autour de 20000 par exemple).

Les inconvénients : Cette syntaxe ne permet pas de sauter les répétitions de chiffres comme le permet la syntaxe "%##d". En outre, vous ne pouvez pas avoir un schéma de numérotation sans les 0 précédents. En d'autres termes, le système de dénomination des fichiers doit être quelque chose comme 00001, 00002,...00033... (la numérotation ne peut pas être 1,2,3,...33,..., sinon le nombre '3' sera classé entre '39' et '40' par exemple).

Par ailleurs, notez également que j'ai dû mettre le nom de mon fichier d'entrée entre guillemets simples, sinon ffmpeg a essayé d'écraser tous mes fichiers d'images avec une copie de la première image (C'est toujours une bonne idée de faire une copie de sauvegarde avant de manipuler des fichiers).

Desde ce montage par un utilisateur anonyme.

1voto

Tom Brossman Points 12461

J'ai utilisé Stopmotion pour faire ça, c'est dans le centre logiciel. Vous pouvez également capturer avec Cheese, mais vous devez modifier la configuration de Cheese pour augmenter le nombre maximum d'images. J'ai trouvé plus facile d'utiliser Stopmotion pour l'ensemble du processus.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X