Innholdsfortegnelse:

Hvordan lage en time -lapse -video: 7 trinn
Hvordan lage en time -lapse -video: 7 trinn

Video: Hvordan lage en time -lapse -video: 7 trinn

Video: Hvordan lage en time -lapse -video: 7 trinn
Video: Hvordan lage billige og enkle baguetter. 2024, November
Anonim
Image
Image

I denne instruksjonsboken vil jeg detaljere trinnene jeg bruker for å lage en time -lapse -video. Systemet og maskinvaren jeg bruker for å skaffe bildene er en Linux -datamaskin og et nettverksbasert IP -kamera. Et skript kjøres på Linux-datamaskinen, og hvert x sekund avstemmer IP-kameraet, tar et bilde, endrer det på nytt, klokkeslett og dato stempler det og lagrer det på datamaskinens harddisk. For å lage videoen fra bildene vil jeg dekke to forskjellige freeware -applikasjoner på en Windows -PC og se på bruk av Linux som et alternativ.

Når du får bilder må du finne ut tiden mellom hvert bilde, eller hvor mange bilder per time eller dag du trenger for å lage en video som ser bra ut og ikke er for lang eller kort.

I tilfelle av min isoff -video. Jeg tok et bilde hvert 20. sekund fra like før soloppgang den første dagen og gikk helt til solnedgang dagen etter. Jeg fjernet de fleste nattbildene før jeg behandlet dem til videoen, men bestemte meg for å holde en "månestigning"

Dette etterlater meg med rundt 4, 430 bilder. Hvis jeg produserer videoen med 25 bilder per sekund, vil lengden være:

4, 430 /25 = 177,2 sekunder lang. 177,2 sekunder er nesten 3 minutter.

Hvis du ønsket å fange noe som et hus som bygges, ville hvert 3. til 5. minutt være et godt sted å starte.

Avhengig av hvor ofte og hvor lenge jeg trenger å ta bilder, bruker jeg én for to forskjellige metoder.

Trinn 1: Bilder fra et IP -kamera

Bilder fra et IP -kamera
Bilder fra et IP -kamera

De fleste IP -kameraer som brukes enten i videoovervåkning eller for webkameraer i full bevegelse, lar deg se et still-j.webp

"https:///snap.jpg"

For et Planet -kamera:

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

Du må google url -en for å bruke kameraet ditt.

Både Ubiquiti og Planet -bildene jeg tar er 1920x1080 i størrelse (standard for hvert kamera ettersom de er 1080 kameraer). Med denne størrelsen ender du opp med en enorm mengde data og en enorm videofil. Jeg liker å endre størrelsen på bildet mens jeg tar det og skriver det til disk, og jeg vil vise dette trinnet i skriptet mitt. Jeg bruker convert som er en del av ImageMagick -verktøyene.

Trinn 2: Ta bilder - metode 1

Ta bilder - metode 1
Ta bilder - metode 1
Ta bilder - metode 1
Ta bilder - metode 1

Jeg bruker denne metoden for å fange kortere hendelser som is-off. Du kan bruke denne metoden til å fange opp noe som et inn og oppsett av en hendelse - noe som tar noen timer eller 1 eller 2 dager, og hvor du kan fjerne uønskede bilder som nattetid manuelt før du behandler det til en video

Under Linux ser et skript for Ubiquiti -kameraet mitt slik ut:

#!/bin/bash

# gå til riktig mappe

cd/home/steve/iceoff

# Ubiquiti - ubnt kamera

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

# hvor du skal skrive bilder

ubnt_dir =/home/steve/iceoff/ubnt

# forsinkelse mellom bildene

forsinkelse = 20

# løkken

mens det er sant

# bruk klokkeslett/dato for å stemple filnavn - dette må være i loop -delen

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

# få bildet og skriv det som ubnt.jpg

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

# endre størrelsen på ubnt.jpg-bildet og skriv det til disken ved å bruke dato/klokkeslettformat for filnavn

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

# sove for forsinkelsen, så få et nytt bilde

/bin/sleep "$ delay"

gjort

Hva skriptet gjør:

angi en variabel URL til hvor bildet er på nettverket/kameraet

sett variabelen ubnt_dir til der vi vil lagre bilder (du må opprette katalogen før du kjører skriptet)

sett variabelforsinkelsen til hvor mange sekunder mellom bildene - dette gjør det enkelt å endre tiden mellom bildene, bare endre denne variabelen og kjør skriptet på nytt

start en løkke med mens true do - denne løkkene skal gå til du stopper skriptet med en ctrl -c

sett variabelen nå som år, måned, dag, time, sekund

16. februar 2019 kl. 8 minutter og 29 sekunder etter kl. 13.00 ser ut som 20190216130829

bruk wget til å ta et bilde fra URL -en og skrive det som ubnt-j.webp

konverter bildet ubnt-j.webp

sove i antall sekunder i forsinkelsesvariabelen

gå tilbake og begynn på det sanne trinnet

For å kjøre dette skriptet logger jeg på kontoen min og kjører det fra terminalen - så dette er bra for å fange noe som isen på en innsjø - det er gjort på en dag eller to, og jeg trenger et bilde hvert 20. sekund.

Trinn 3: Ta bilder - metode 2

Ta bilder - metode 2
Ta bilder - metode 2

For lengre tidsforløp som bygging av en bygning eller et år langtidsforløpsprosjekt, bruker jeg en annen måte å ta bilder på. Til dette bruker jeg cron.

Cron er et verktøy som kjører en kommando hver x minutt, time, dag eller måned. Så du kan skreddersy når kommandoen kjøres etter minutt, time, dag, måned i måneden osv. En bruker i et Linux -system kan ha sin egen cron -jobb, og den lagres i crontab -filen.

For et tidsforløp som går i flere måneder hvor jeg får et bilde hvert X. minutt, bruker jeg en cron -jobb og et litt annet skript ved at det ikke krever en sløyfe (mens true og gjør det) siden cron vil ringe scriptet hver X nummer minutter.

Ikke bare kan du bruke det til å kjøre skriptet hvert X. minutt, men du kan begrense det til å kjøre mellom bestemte timer, slik at du ikke trenger å fjerne mange nattbilder. Etter hvert som sesongen og dagslyset endres, endrer jeg jobben min for å gjenspeile den.

For å opprette en cron -jobb -pålogging til Linux -serveren og kjøre: crontab -e Dette starter en redigering av crontab. Crontab -filen min har en linje som denne:

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

*/5 betyr løp hvert 5. minutt

4-23 betyr å kjøre den fra 04.00 til 23.00 (dette endrer seg med sesongen for meg)

Den første * betyr at du kjører den hver dag i måneden

Den andre * betyr å kjøre den hver måned i året

Den tredje * betyr å kjøre den hver dag i uken

/home/steve/timelapse/get.ubnt er skriptnavnet som kjører

/dev/null 2> & 1 betyr å sette standard output til null og eventuelle feil til null - hvis du ikke har dette, vil du få e -post hver gang cron -jobben kjøres.

Skriptet mitt /usr/steve/timelapse/get.ubnt ser slik ut:

#!/bin/bash

cd/home/steve/timelapse

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

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

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

konvertere -geometri 1024x ubnt-j.webp" />

Hva dette skriptet gjør:

bytt til/home/steve/timelapse

angi en variabel URL til hvor bildet er på nettverket/kameraet

sett variabelen nå til år, måned, dag, time, minutt, sekund (slik at vi kan klokkeslett/dato stemple det endelige-j.webp

hent bildet fra URL og skriv det ut til ubnt.jpg

endre størrelsen på bildet til 1024 piksler bredt med riktig forhold og skriv filen som et dato/klokkeslettstempel.

Som med den forrige metoden/skriptet vil han gjøre filnavnene sekvensielle og gjøre det mulig for oss å lage videoen med rammene i riktig sekvens. Etter at jeg har noen få dager med bilder, vil jeg kopiere dem til en mappe på min Windows -PC for å lage videofilen. Jeg bruker vanligvis ftp for å få filene på Windows -PCen ettersom de er på samme nettverk, og pålogging/passord som klar tekst er ikke synlig på Internett.

Trinn 4: Kopier bildene til en Windows -PC

For å kopiere bildene fra Linux -systemet til en Windows -PC for behandling til en video bruker jeg FTP.

Windows -programmet jeg bruker til dette er FileZilla Client. Du kan bruke hvilken som helst ftp -klient du foretrekker, til og med kommandolinjeversjonen i Windows.

Hvis du vet hva du gjør, kan du også bruke Samba eller NFS og få Linux -filene til å vises som en mappe i Windows.

Trinn 5: Lage videoen - Photolapse 3

Lage videoen - Photolapse 3
Lage videoen - Photolapse 3
Lage videoen - Photolapse 3
Lage videoen - Photolapse 3
Lage videoen - Photolapse 3
Lage videoen - Photolapse 3

Nå som vi har bildene, må vi sy dem sammen for å lage en videofil.

Det er mange programmer du kan bruke til å gjøre dette, og det kan være lurt å eksperimentere med forskjellige programmer.

Imidlertid bruker jeg Windows -programmet Photolapse 3 - som dessverre ikke oppdateres lenger, og jeg kan ikke lenger finne det originale nettstedet for det for et relativt lite antall bilder som jeg fanger i løpet av en eller to dager med is. Imidlertid er den tilgjengelig fra en rekke "nedlasting" -steder. Et raskt google -søk burde være greit.

Det som er/var fint med dette programmet er at det er en enkelt binær, så det er ingen installasjon. Bare last ned binæren og kjør den. Ulempen er at den ikke vil behandle et stort antall filer. Med stor mener jeg sannsynligvis 20 tusen eller mer, men for noe som min isav -video med ca 5000 bilder er det helt fint.

Du starter programmet, i øvre venstre boks, borer du ned eller finner ut hvor bildene dine er lagret, og legger deretter inn antall framers per sekund (et mindre antall får videoen til å fremstå som sakte film). Klikk deretter på knappen "Last inn filer fra gjeldende mappe"

Photolapse vil laste inn og forhåndsvise hver ramme, og du får en ide om hvordan videoen vil se ut.

Når den er ferdig med å behandle hele mappen, klikker du på "Lag film" -knappen, endrer filnavnet hvis du vil, og klikk deretter "Lagre".

Deretter må du velge en komprimeringsmetode for videoen eller la den være ukomprimert. Jeg bruker "Microsoft Video 1". Alt som gjenstår er å klikke "OK"

Selv om du må gå gjennom alle trinnene igjen for å velge en annen komprimeringsmetode eller kodek, er det verdt å prøve forskjellige innstillinger her hvis du trenger videoen komprimert.

Bildene jeg brukte til skjermfangstene i dette trinnet var noen fra de opprinnelige isavbildene. Jeg brukte 1191 bilder på 1024x576 piksler. De tok opp omtrent 110 MB diskplass. Den komprimerte videoen var 235 MB i størrelse og den ukomprimerte var 1,96 GB

Trinn 6: Lage videoen - VirtualDub

Opprette videoen - VirtualDub
Opprette videoen - VirtualDub
Opprette videoen - VirtualDub
Opprette videoen - VirtualDub
Opprette videoen - VirtualDub
Opprette videoen - VirtualDub

Det andre programmet jeg har brukt er VirtualDub

Last ned zip -filene her. Det er en 32-biters og 64-biters versjon

Pakk ut filene til sin egen mappe.

En av tingene du må gjøre med bildene dine, er å sekvensere dem på nytt. Å bruke dato-/klokkeslettstempelfilnavnene som skriptene mine vil ikke fungere med VirtualDub. Det er et par måter å omnummerere filene på:

Ta først en sikkerhetskopi av filene dine, deretter en ny sikkerhetskopi. Deretter bruker du den andre kopien:

Åpne mappen med bildene, endre visningen til "detaljer", merk den første filen på listen, trykk ctrl-a for å velge alle filene, høyreklikk og velg "gi nytt navn". Endre filnavnet til 1 og trykk deretter enter.

Dette vil behandle listen over filer og legge til (1).jpg, deretter (2)-j.webp

Den andre måten er å bruke et program som heter Irfanview. Den har en batchmodus der du kan endre navn på filene i rekkefølge som 1.jpg, 2.jpg, 3-j.webp

Når filene har fått nytt navn, starter du VirtualDub, klikker på "fil" og deretter "åpne videofil". Velg den første-j.webp

Klikk på "Video" og deretter "Frame Rate", endre dette til 30 (eller hvilken som helst bildefrekvens du vil prøve)

Klikk på "Video" og deretter "Komprimering" - som med fotolaps 3 brukte jeg "Microsoft video 1"

For å begynne å behandle bildene, klikk på "File" og deretter "Save as AVI". Gi filen navnet og klikk "Lagre"

Dette vil starte behandlingen og vise hvor lang tid det vil ta.

Selv om det er flere trinn i bruk av VirtualDub, vil den behandle flere filer enn fotolaps 3.

Jeg har gjort en timelapse med over 88 000 bilder ved hjelp av VirtualDub.

Trinn 7: Konklusjon

For å se timelapse -videoene kan du bruke et program som VLC eller Windows egen mediespiller.

Det er mange, mange måter å ta bilder og ta en timelapse.

Hvis du har et Canon -kamera, er det tredjeparts fastvare -CHDK for noen modeller som lar deg bruke kameraet i intervallometer -modus og ta et bilde hvert x sekund.

Eksperimenter mye! Håper du synes dette var interessant, og hvis du gjør en timelapse, må du legge igjen en lenke til det i kommentarene.

Anbefalt: