Sommario:

Come Realizzare un Video Time Lapse: 7 Passaggi
Come Realizzare un Video Time Lapse: 7 Passaggi

Video: Come Realizzare un Video Time Lapse: 7 Passaggi

Video: Come Realizzare un Video Time Lapse: 7 Passaggi
Video: TIME LAPSE: il TUTORIAL completo in italiano! [reload] 2024, Dicembre
Anonim
Image
Image

In questo Instructable descriverò in dettaglio i passaggi che utilizzo per realizzare un video time lapse. Il sistema e l'hardware che utilizzo per ottenere le immagini sono un computer Linux e una telecamera IP basata su rete. Uno script viene eseguito sul computer Linux e ogni x secondi esegue il polling della telecamera IP, acquisisce un'immagine, la ridimensiona, la stampa con data e ora e la salva sul disco rigido del computer. Per creare il video dalle immagini tratterò due diverse applicazioni freeware su un PC Windows e esaminerò l'utilizzo di Linux come opzione.

Quando si ottengono immagini, è necessario calcolare l'intervallo di tempo tra ciascuna immagine o quante immagini all'ora o al giorno saranno necessarie per creare un video che abbia un bell'aspetto e non sia troppo lungo o corto.

Nel caso del mio video ice off. Ho catturato un'immagine ogni 20 secondi da poco prima dell'alba il primo giorno e sono andata fino al tramonto il giorno successivo. Ho rimosso la maggior parte delle immagini notturne prima di trasformarle nel video, ma ho deciso di mantenere un "sorgere della luna"

Questo mi lascia con circa 4.430 immagini. Se produco il video utilizzando 25 fotogrammi al secondo, la lunghezza sarà:

4, 430 / 25 = 177,2 secondi di durata. 177,2 secondi sono quasi 3 minuti.

Se volessi catturare qualcosa come una casa in costruzione, ogni 3-5 minuti sarebbe un buon punto di partenza.

A seconda di quanto spesso e per quanto tempo ho bisogno di acquisire immagini, ne uso uno per due metodi diversi.

Passaggio 1: immagini da una telecamera IP

Immagini da una telecamera IP
Immagini da una telecamera IP

La maggior parte delle telecamere IP utilizzate nella videosorveglianza o nelle webcam full motion ti consente di visualizzare un'immagine-j.webp

"https:///snap.jpg"

Per una fotocamera Planet:

"https:///image.cgi?resolution=1920x1080"

Dovrai cercare su Google l'URL da utilizzare per la tua marca di fotocamera.

Entrambe le immagini di Ubiquiti e Planet che ottengo hanno una dimensione di 1920x1080 (impostazione predefinita per ogni telecamera in quanto sono telecamere 1080). Con queste dimensioni ti ritroverai con un'enorme quantità di dati e un enorme file video. Mi piace ridimensionare l'immagine mentre la prendo e la scrivo su disco e mostrerò questo passaggio nel mio script. Uso convert che fa parte degli strumenti di ImageMagick.

Passaggio 2: acquisizione di immagini - Metodo 1

Acquisizione di immagini - Metodo 1
Acquisizione di immagini - Metodo 1
Acquisizione di immagini - Metodo 1
Acquisizione di immagini - Metodo 1

Uso questo metodo per catturare eventi più brevi come l'ice-off. Puoi usare questo metodo per catturare qualcosa come un movimento e la configurazione di un evento - qualcosa che richiede alcune ore o 1 o 2 giorni e dove puoi rimuovere manualmente qualsiasi immagine indesiderata come la notte prima di trasformarla in un video

Sotto Linux, uno script per la mia fotocamera Ubiquiti ha questo aspetto:

#!/bin/bash

# vai alla cartella corretta

cd /home/steve/iceoff

# Ubiquiti - fotocamera ubnt

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

# dove scrivere le immagini

ubnt_dir=/home/steve/iceoff/ubnt

# ritardo tra le immagini

ritardo=20

# il cappio

mentre vero fare

# usa l'ora/la data per timbrare il nome del file - questo deve essere nella sezione del ciclo

ora=$(/bin/data '+%Y%m%d%H%M%S')

# prendi l'immagine e scrivila come ubnt.jpg

/usr/bin/wget -q -O "$ubnt_dir/ubnt.jpg" -t 1 $URL

# ridimensiona l'immagine ubnt-j.webp

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

# dormi per il tempo di ritardo, quindi ottieni un'altra immagine

/bin/sleep "$ritardo"

fatto

Cosa fa lo script:

imposta un URL variabile in cui si trova l'immagine sulla rete/telecamera

imposta la variabile ubnt_dir dove vogliamo salvare le immagini (dovrai creare la directory prima di eseguire lo script)

imposta il ritardo variabile su quanti secondi tra le immagini - questo rende facile cambiare il tempo tra le immagini, basta cambiare questa variabile e rieseguire lo script

avvia un ciclo con while true do - questo ciclo dovrebbe continuare finché non interrompi lo script con ctrl-c

imposta la variabile ora come anno, mese, giorno, ora, secondo

Il 16 febbraio 2019 a 8 minuti e 29 secondi dopo le 13:00 sembrerebbe 20190216130829

usa wget per prendere un'immagine dall'URL e scrivila come ubnt-j.webp

converti l'immagine ubnt-j.webp

dormi per il numero di secondi nella variabile di ritardo

torna indietro e inizia nel mentre vero fai il passo

Per eseguire questo script accedo al mio account ed eseguo dal terminale, quindi è utile per catturare qualcosa come il ghiaccio di un lago: è fatto in un giorno o due e ho bisogno di un'immagine ogni 20 secondi.

Passaggio 3: acquisizione di immagini - Metodo 2

Acquisizione di immagini - Metodo 2
Acquisizione di immagini - Metodo 2

Per time lapse più lunghi come la costruzione di un edificio o un progetto time lapse di un anno, utilizzo un modo diverso di catturare le immagini. Per questo uso cron.

Cron è un'utilità che esegue un comando una volta ogni x minuti, ore, giorni o mesi. Quindi puoi personalizzare quando il comando viene eseguito per minuto, ora, giorno, giorno del mese, ecc. Un utente in un sistema Linux può avere il proprio cron job ed è conservato nel proprio file crontab.

Per un lasso di tempo che dura mesi in cui ottengo un'immagine ogni X minuti, utilizzo un lavoro cron e uno script leggermente diverso in quanto non richiede un ciclo (mentre true do e done) poiché cron chiamerà lo script ogni Numero X minuti.

Non solo puoi usarlo per eseguire lo script ogni X minuti, ma puoi limitarlo per l'esecuzione in determinate ore in modo da non dover rimuovere molte immagini notturne. Quando la stagione e le ore diurne cambiano, cambio il mio cron job per rifletterlo.

Per creare un cron job accedi al tuo server Linux ed esegui: crontab -e Questo avvierà una modifica del tuo crontab. Il mio file crontab ha una riga come questa:

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

Il */5 significa che viene eseguito ogni 5 minuti

Il 4-23 significa eseguirlo dalle 4:00 alle 23:00 (questo cambia con la stagione per me)

Il primo * significa eseguirlo tutti i giorni del mese

Il secondo * significa eseguirlo ogni mese dell'anno

Il terzo * significa eseguirlo tutti i giorni della settimana

/home/steve/timelapse/get.ubnt è il nome dello script che viene eseguito

/dev/null 2>&1 significa mettere l'output standard su null e qualsiasi errore su null - se non lo hai, riceverai un'e-mail ogni volta che viene eseguito il cron job.

Il mio script /usr/steve/timelapse/get.ubnt ha questo aspetto:

#!/bin/bash

cd /home/steve/timelapse

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

ora=$(/bin/data '+%Y%m%d%H%M%S')

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

convert -geometry 1024x ubnt-j.webp" />

Cosa fa questo script:

passa a /home/steve/timelapse

imposta un URL variabile in cui si trova l'immagine sulla rete/telecamera

imposta la variabile ora su anno, mese, giorno, ora, minuto, secondo (così possiamo inserire data/ora sull'immagine-j.webp

ottieni l'immagine dall'URL e scrivila su ubnt.jpg

ridimensiona l'immagine a 1024 pixel di larghezza mantenendo il rapporto corretto e scrivi il file come data/ora.

Come con il metodo/script precedente, questo renderà i nomi dei file sequenziali e ci consentirà di creare il video con i fotogrammi nella sequenza corretta. Dopo alcuni giorni di immagini, le copierò in una cartella sul mio PC Windows per creare il file video. Normalmente uso ftp per ottenere i file sul PC Windows poiché si trovano sulla stessa rete e il login/password essendo testo in chiaro non è visibile su Internet.

Passaggio 4: copia le immagini su un PC Windows

Per copiare le immagini dal sistema Linux su un PC Windows per l'elaborazione in un video, utilizzo FTP.

Il programma Windows che uso per questo è FileZilla Client. Puoi usare qualsiasi client ftp che preferisci, anche la versione da riga di comando in Windows.

Se sai cosa stai facendo, puoi anche usare Samba o NFS e far apparire i file Linux come una cartella in Windows.

Passaggio 5: creazione del video - Photolapse 3

Creazione del video - Photolapse 3
Creazione del video - Photolapse 3
Creazione del video - Photolapse 3
Creazione del video - Photolapse 3
Creazione del video - Photolapse 3
Creazione del video - Photolapse 3

Ora che abbiamo le immagini, dobbiamo unirle insieme per creare un file video.

Ci sono molti programmi che puoi usare per farlo e potresti voler sperimentare con programmi diversi.

Tuttavia, per un numero relativamente piccolo di immagini come quelle che catturo durante uno o due giorni di assenza di ghiaccio, utilizzo il programma Windows Photolapse 3 - che purtroppo non viene più aggiornato e non riesco più a trovare il sito Web originale. Tuttavia è disponibile da un certo numero di siti di "download". Una rapida ricerca su Google dovrebbe andar bene.

La cosa bella di questo programma è che è un singolo binario, quindi non c'è installazione. Basta scaricare il binario ed eseguirlo. Lo svantaggio è che non elaborerà un numero enorme di file. Per enorme intendo probabilmente 20 mila o più, ma per qualcosa come il mio video ice off con circa 5.000 immagini va bene.

Si avvia il programma, nella casella in alto a sinistra si esegue il drill-down o si trova dove sono archiviate le immagini, quindi si inserisce il numero di framer al secondo (un numero inferiore farà apparire il video al rallentatore). Quindi fare clic sul pulsante "Carica file dalla cartella corrente"

Photolapse caricherà e visualizzerà in anteprima ogni fotogramma e avrai un'idea di come sarà il video.

Al termine dell'elaborazione dell'intera cartella, fare clic sul pulsante "Crea filmato", modificare il nome del file se lo si desidera, quindi fare clic su "Salva".

Successivamente è necessario scegliere un metodo di compressione per il video o lasciarlo non compresso. Io uso "Microsoft Video 1". Non resta che fare clic su "OK"

Anche se dovrai ripetere tutti i passaggi per scegliere un metodo di compressione o un codec diverso, vale la pena provare impostazioni diverse qui se hai bisogno di comprimere il video.

Le immagini che ho usato per le acquisizioni dello schermo in questo passaggio erano alcune delle immagini originali di Ice Off. Ho usato 1191 immagini di 1024x576 pixel. Hanno occupato circa 110 MB di spazio su disco. Il video compresso aveva una dimensione di 235 MB e quello non compresso era di 1,96 GB

Passaggio 6: creazione del video - VirtualDub

Creazione del video - VirtualDub
Creazione del video - VirtualDub
Creazione del video - VirtualDub
Creazione del video - VirtualDub
Creazione del video - VirtualDub
Creazione del video - VirtualDub

L'altro programma che ho usato è VirtualDub

Scarica qui i file zip. Esiste una versione a 32 e 64 bit

Decomprimi i file nella loro cartella.

Una delle cose che dovrai fare con le tue immagini è rinumerarle in sequenza. L'uso dei nomi dei file di data/ora come i miei script creati non funzionerà con VirtualDub. Ci sono un paio di modi per rinumerare i file:

Per prima cosa, fai un backup dei tuoi file, poi un altro backup. Quindi utilizzando la seconda copia:

Aprire la cartella con le immagini, cambiare la visualizzazione in "dettagli", evidenziare il primo file nell'elenco, premere ctrl-a per selezionare tutti i file, fare clic con il tasto destro e selezionare "rinomina". Cambia il nome del file in 1, quindi premi invio.

Questo elaborerà l'elenco dei file e aggiungerà (1).jpg, quindi (2)-j.webp

Il secondo modo è usare un programma chiamato Irfanview. Ha una modalità batch in cui è possibile rinominare i file in sequenza come 1.jpg, 2.jpg, 3-j.webp

Una volta rinominati i file, avvia VirtualDub, fai clic su "file" quindi su "apri file video". Seleziona il primo-j.webp

Fai clic su "Video" quindi su "Frame Rate" cambialo in 30 (o qualsiasi frame rate tu voglia provare)

Fai clic su "Video" quindi su "Compressione" - come con Photolapse 3 ho usato "Microsoft video 1"

Per avviare l'elaborazione delle immagini, fai clic su "File" e poi su "Salva come AVI". Assegna un nome al file, quindi fai clic su "Salva"

Questo avvierà l'elaborazione e mostrerà quanto tempo ci vorrà.

Sebbene ci siano più passaggi nell'uso di VirtualDub, elaborerà più file rispetto a photolapse 3.

Ho realizzato un timelapse con oltre 88.000 immagini utilizzando VirtualDub.

Passaggio 7: conclusione

Per visualizzare i video timelapse puoi utilizzare un programma come VLC o il lettore multimediale di Windows.

Ci sono molti, molti modi per catturare immagini e creare un time-lapse.

Se disponi di una fotocamera Canon, per alcuni modelli è disponibile un firmware CHDK di terze parti che ti consentirà di utilizzare la fotocamera in modalità intervallometro e di scattare una foto ogni x secondi.

Sperimenta un sacco! Spero che tu abbia trovato interessante questo Instructable e se fai un timelapse assicurati di lasciare un link ad esso nei commenti.

Consigliato: