Table des matières:

Comment faire une vidéo en accéléré : 7 étapes
Comment faire une vidéo en accéléré : 7 étapes

Vidéo: Comment faire une vidéo en accéléré : 7 étapes

Vidéo: Comment faire une vidéo en accéléré : 7 étapes
Vidéo: Comment réaliser une vidéo en accéléré sur iPhone 2024, Novembre
Anonim
Image
Image

Dans ce Instructable, je vais détailler les étapes que j'utilise pour faire une vidéo en accéléré. Le système et le matériel que j'utilise pour obtenir les images sont un ordinateur Linux et une caméra IP basée sur le réseau. Un script s'exécute sur l'ordinateur Linux et toutes les x secondes interroge la caméra IP, saisit une image, la redimensionne, l'horodateur et la date et l'enregistre sur le disque dur de l'ordinateur. Pour créer la vidéo à partir des images, je vais couvrir deux applications gratuites différentes sur un PC Windows et envisager d'utiliser Linux en option.

Lorsque vous obtenez des images, vous devez déterminer le temps entre chaque image ou le nombre d'images par heure ou par jour dont vous aurez besoin pour créer une vidéo qui a l'air bien et qui n'est ni trop longue ni trop courte.

Dans le cas de ma vidéo hors glace. J'ai pris une image toutes les 20 secondes juste avant le lever du soleil le premier jour et je suis allé jusqu'au coucher du soleil le lendemain. J'ai supprimé la plupart des images nocturnes avant de les traiter dans la vidéo, mais j'ai décidé de garder un "montée de lune"

Cela me laisse environ 4 430 images. Si je produis la vidéo en utilisant 25 images par seconde, la durée sera:

4, 430 / 25 = 177,2 secondes. 177,2 secondes équivaut à près de 3 minutes.

Si vous vouliez capturer quelque chose comme une maison en construction, alors toutes les 3 à 5 minutes serait un bon point de départ.

Selon la fréquence et la durée de capture des images, j'en utilise une pour deux méthodes différentes.

Étape 1: Images d'une caméra IP

Images d'une caméra IP
Images d'une caméra IP

La plupart des caméras IP utilisées dans la vidéosurveillance ou pour les webcams animées vous permettent de visualiser une image fixe au format-j.webp

"https:///snap.jpg"

Pour une caméra Planet:

"https:///image.cgi?résolution=1920x1080"

Vous devrez rechercher sur Google l'URL à utiliser pour votre marque d'appareil photo.

Les images Ubiquiti et Planet que je récupère ont une taille de 1920x1080 (par défaut pour chaque caméra car il s'agit de caméras 1080). Avec cette taille, vous vous retrouvez avec une énorme quantité de données et un énorme fichier vidéo. J'aime redimensionner l'image au fur et à mesure que je la récupère et l'écris sur le disque et je montrerai cette étape dans mon script. J'utilise convert qui fait partie des outils ImageMagick.

Étape 2: Capture d'images - Méthode 1

Capture d'images - Méthode 1
Capture d'images - Méthode 1
Capture d'images - Méthode 1
Capture d'images - Méthode 1

J'utilise cette méthode pour capturer des événements plus courts comme le gel. Vous pouvez utiliser cette méthode pour capturer quelque chose comme un emménagement et la configuration d'un événement - quelque chose qui prend quelques heures ou 1 ou 2 jours et où vous pouvez supprimer manuellement toutes les images indésirables comme la nuit avant de les transformer en vidéo

Sous Linux, un script pour ma caméra Ubiquiti ressemble à ceci:

#!/bin/bash

# aller dans le bon dossier

cd /home/steve/iceoff

# Ubiquiti - appareil photo ubnt

URL="https://192.168.2.114/snap.jpg"

# où écrire les images

ubnt_dir=/home/steve/iceoff/ubnt

# délai entre les images

délai=20

# la boucle

alors que c'est vrai

# utiliser l'heure/la date pour tamponner le nom du fichier - cela doit être dans la section boucle

maintenant=$(/bin/date '+%Y%m%d%H%M%S')

# récupère l'image et écris-la comme ubnt.jpg

/usr/bin/wget -q -O "$rép_ubnt/ubnt.jpg" -t 1 $URL

# redimensionnez l'image ubnt-j.webp

convert -geometry 1024x "$ubnt_dir/ubnt.jpg" "$ubnt_dir/${now}.jpg"

# dormir pendant le temps de retard puis obtenir une autre image

/bin/sleep "$delay"

terminé

Ce que fait le script:

définir une URL variable vers l'emplacement de l'image sur le réseau/la caméra

définissez la variable ubnt_dir à l'endroit où nous voulons enregistrer les images (vous devrez créer le répertoire avant d'exécuter le script)

définissez le délai variable sur le nombre de secondes entre les images - cela facilite la modification du temps entre les images, modifiez simplement cette variable et réexécutez le script

démarrer une boucle avec while true do - ces boucles devraient aller jusqu'à ce que vous arrêtiez le script avec un ctrl-c

définir la variable maintenant comme l'année, le mois, le jour, l'heure, la seconde

Le 16 février 2019 à 8 minutes et 29 secondes après 13h ressemblerait à 20190216130829

utilisez wget pour récupérer une image à partir de l'URL et écrivez-la comme ubnt-j.webp

convertissez l'image ubnt-j.webp

sleep pour le nombre de secondes dans la variable de délai

revenir en arrière et commencer à l'étape tandis que true do step

Pour exécuter ce script, je me connecte à mon compte et l'exécute depuis le terminal - c'est donc bon pour capturer quelque chose comme la banquise d'un lac - c'est fait en un jour ou deux et j'ai besoin d'une image toutes les 20 secondes.

Étape 3: Capture d'images - Méthode 2

Capture d'images - Méthode 2
Capture d'images - Méthode 2

Pour des laps de temps plus longs comme la construction d'un bâtiment ou un projet d'un an, j'utilise une façon différente de capturer des images. Pour cela, j'utilise cron.

Cron est un utilitaire qui exécute une commande toutes les x minutes, heures, jours ou mois. Ainsi, vous pouvez personnaliser le moment où la commande s'exécute par minute, heure, jour, jour du mois, etc. Un utilisateur d'un système Linux peut avoir sa propre tâche cron et celle-ci est conservée dans son fichier crontab.

Pour un laps de temps qui dure des mois où j'obtiens une image toutes les X minutes, j'utilise un travail cron et un script légèrement différent en ce sens qu'il ne nécessite pas de boucle (le tout est vrai et fait) puisque cron appellera le script tous les X minutes nombre.

Non seulement vous pouvez l'utiliser pour exécuter le script toutes les X minutes, mais vous pouvez également le restreindre à certaines heures afin de ne pas avoir à supprimer beaucoup d'images de nuit. Au fur et à mesure que la saison et les heures de clarté changent, je modifie mon travail cron pour le refléter.

Pour créer une tâche cron, connectez-vous à votre serveur Linux et exécutez: crontab -e Cela lancera une modification de votre crontab. Mon fichier crontab a une ligne comme celle-ci:

*/5 4-23 * * * /home/steve/timelapse/get.ubnt >/dev/null 2>&1

Le */5 signifie exécuter toutes les 5 minutes

Le 4-23 signifie le faire fonctionner de 4h à 23h (ça change avec la saison pour moi)

Le premier * signifie l'exécuter tous les jours du mois

Le deuxième * signifie l'exécuter tous les mois de l'année

Le troisième * signifie l'exécuter tous les jours de la semaine

/home/steve/timelapse/get.ubnt est le nom du script qui s'exécute

/dev/null 2>&1 signifie mettre la sortie standard à null et toutes les erreurs à null - si vous ne l'avez pas, vous recevrez un e-mail à chaque fois que la tâche cron s'exécute.

Mon script /usr/steve/timelapse/get.ubnt ressemble à ceci:

#!/bin/bash

cd /home/steve/timelapse

URL="https://192.168.2.114/snap.jpg"

maintenant=$(/bin/date '+%Y%m%d%H%M%S')

/usr/bin/wget -q -O ubnt-j.webp

convertir -géométrie 1024x ubnt-j.webp" />

Ce que fait ce script:

changer pour /home/steve/timelapse

définir une URL variable vers l'emplacement de l'image sur le réseau/la caméra

définissez la variable maintenant sur l'année, le mois, le jour, l'heure, la minute, la seconde (afin que nous puissions horodater l'image-j.webp

récupérez l'image à partir de l'URL et écrivez-la dans ubnt.jpg

redimensionnez l'image à 1024 pixels de large en conservant le rapport correct et écrivez le fichier sous forme d'horodatage.

Comme avec la méthode/le script précédent, il rendra les noms de fichiers séquentiels et nous permettra de créer la vidéo avec les images dans le bon ordre. Après quelques jours d'images, je les copierai dans un dossier de mon PC Windows pour créer le fichier vidéo. J'utilise normalement ftp pour obtenir les fichiers sur le PC Windows car ils sont sur le même réseau et le nom d'utilisateur/mot de passe en clair n'est pas visible sur Internet.

Étape 4: Copiez les images sur un PC Windows

Pour copier les images du système Linux sur un PC Windows afin de les transformer en vidéo, j'utilise FTP.

Le programme Windows que j'utilise pour cela est FileZilla Client. Vous pouvez utiliser n'importe quel client ftp que vous préférez, même la version en ligne de commande dans Windows.

Si vous savez ce que vous faites, vous pouvez également utiliser Samba ou NFS et faire apparaître les fichiers Linux sous forme de dossier dans Windows.

Étape 5: Création de la vidéo - Photolapse 3

Création de la vidéo - Photolapse 3
Création de la vidéo - Photolapse 3
Création de la vidéo - Photolapse 3
Création de la vidéo - Photolapse 3
Création de la vidéo - Photolapse 3
Création de la vidéo - Photolapse 3

Maintenant que nous avons les images, nous devons les assembler pour créer un fichier vidéo.

Il existe de nombreux programmes que vous pouvez utiliser pour ce faire et vous voudrez peut-être expérimenter différents programmes.

Cependant, pour un nombre relativement petit d'images comme celles que j'ai capturées pendant les un ou deux jours de congé, j'utilise le programme Windows Photolapse 3 - qui n'est malheureusement plus mis à jour et je ne trouve plus le site Web d'origine. Cependant, il est disponible sur un certain nombre de sites de "téléchargement". Une recherche rapide sur Google devrait suffire.

Ce qui est/était bien avec ce programme, c'est qu'il s'agit d'un seul binaire, donc il n'y a pas d'installation. Téléchargez simplement le binaire et exécutez-le. L'inconvénient est qu'il ne traitera pas un grand nombre de fichiers. Par énorme, je veux dire probablement 20 000 ou plus, mais pour quelque chose comme ma vidéo sur glace avec environ 5 000 images, c'est très bien.

Vous démarrez le programme, dans la case en haut à gauche, explorez ou trouvez où vos images sont stockées, puis entrez le nombre d'encadreurs par seconde (un nombre plus petit fera apparaître la vidéo au ralenti). Cliquez ensuite sur le bouton "Charger les fichiers du dossier actuel"

Photolapse chargera et prévisualisera chaque image et vous aurez une idée de ce à quoi ressemblera la vidéo.

Lorsqu'il a fini de traiter l'intégralité du dossier, cliquez sur le bouton "Créer un film", modifiez le nom du fichier si vous le souhaitez, puis cliquez sur "Enregistrer".

Ensuite, vous devez choisir une méthode de compression pour la vidéo ou la laisser non compressée. J'utilise "Microsoft Video 1". Il ne reste plus qu'à cliquer sur "OK"

Bien que vous deviez répéter toutes les étapes pour choisir une méthode de compression ou un codec différent, cela vaut la peine d'essayer différents paramètres ici si vous avez besoin de compresser la vidéo.

Les images que j'ai utilisées pour les captures d'écran dans cette étape étaient certaines des images originales de la glace. J'ai utilisé 1191 images de 1024x576 pixels. Ils occupaient environ 110 Mo d'espace disque. La taille de la vidéo compressée était de 235 Mo et celle non compressée de 1,96 Go

Étape 6: Création de la vidéo - VirtualDub

Création de la vidéo - VirtualDub
Création de la vidéo - VirtualDub
Création de la vidéo - VirtualDub
Création de la vidéo - VirtualDub
Création de la vidéo - VirtualDub
Création de la vidéo - VirtualDub

L'autre programme que j'ai utilisé est VirtualDub

Téléchargez les fichiers zip ici. Il existe une version 32 bits et 64 bits

Décompressez les fichiers dans leur propre dossier.

Une des choses que vous devrez faire avec vos images est de les renuméroter séquentiellement. L'utilisation des noms de fichiers d'horodatage comme la création de mes scripts ne fonctionnera pas avec VirtualDub. Il existe plusieurs façons de renuméroter les fichiers:

Faites d'abord une sauvegarde de vos fichiers, puis une autre sauvegarde. Puis en utilisant la deuxième copie:

Ouvrez le dossier avec les images, changez la vue en "détails", mettez en surbrillance le premier fichier de la liste, appuyez sur ctrl-a pour sélectionner tous les fichiers, faites un clic droit et sélectionnez "renommer". Changez le nom du fichier en 1, puis appuyez sur Entrée.

Cela traitera la liste des fichiers et ajoutera (1).jpg, puis (2)-j.webp

La deuxième façon est d'utiliser un programme appelé Irfanview. Il dispose d'un mode batch dans lequel vous pouvez renommer les fichiers de manière séquentielle en 1.jpg, 2.jpg, 3-j.webp

Une fois les fichiers renommés, lancez VirtualDub, cliquez sur "fichier" puis "ouvrir le fichier vidéo". Sélectionnez le premier-j.webp

Cliquez sur "Vidéo", puis sur "Frame Rate", remplacez-le par 30 (ou quelle que soit la fréquence d'images que vous souhaitez essayer)

Cliquez sur "Vidéo" puis "Compression" - comme pour photolapse 3 j'ai utilisé "Microsoft video 1"

Pour lancer le traitement des images, cliquez sur "Fichier" puis sur "Enregistrer en AVI". Nommez le fichier puis cliquez sur "Enregistrer"

Cela lancera le traitement et montrera combien de temps cela prendra.

Bien qu'il y ait plus d'étapes dans l'utilisation de VirtualDub, il traitera plus de fichiers que photolapse 3.

J'ai fait un timelapse avec plus de 88 000 images en utilisant VirtualDub.

Étape 7: Conclusion

Pour afficher les vidéos en accéléré, vous pouvez utiliser un programme comme VLC ou le propre lecteur multimédia de Windows.

Il existe de nombreuses façons de capturer des images et de faire un timelapse.

Si vous avez un appareil photo Canon, il existe un firmware tiers CHDK pour certains modèles qui vous permettra d'utiliser l'appareil photo en mode intervallomètre et de prendre une photo toutes les x secondes.

Expérimentez beaucoup ! J'espère que vous avez trouvé cet Instructable intéressant et si vous faites un timelapse, assurez-vous de laisser un lien vers celui-ci dans les commentaires.

Conseillé: