2014.07.19

Készítsünk Timelapse filmet Canon kamerával!

Kezdjük talán azzal, mi is az a "timelapse"? Ez egy olyan eljárás, amikor a filmünket jóval kisebb képrögzítési gyakorisággal vesszük fel, mint ahogy lejátsszuk, így lejátszáskor minden sokkal gyorsabban történik. Hogy ez valami elborult elme szüleménye és nem is jó semmire? Különböző műsorokat nézve a tévében nagyon gyakran találkozhatunk pedig vele, főként jelenetek közti átvezetéseknél. Gondoljunk a természetfilmekre, ahol a nap két másodperc alatt lebukik a horizonton, vagy éppen a Discovery channel autós műsorára, ahol a Gas Monkey garázst mutatják kívülről, hogy ne tűnjön olyan durvának az átmenet két mondanivaló között. Sokszor fel se tűnik, hogy ezt a technikát látjuk, hiszen annyira beleívódott már a tudatunkba, sokan mégse tudnák megmondani, hogy láttak már ilyet bárhol is.
A mostani írásom arról szól, ahogyan én készítettem pár ilyen videót ingyenes eszközök segítségével mindössze a számítógép mellett egy Canon Powershot A560 fényképezőgépet felhasználva.

Elsőként le kell szögeznem, hogy nem feltétlen kell hozzá Canon kamerának lennie, bármilyen fényképezőgép megfelel a célnak, amennyiben lehet vele időzített képeket készíteni. A Canon Powershoot fényképezőihez létezik egy CHDK nevű "készlet", aminek segítségével felokosíthatjuk a fényképezőgépünket mindenféle szkriptekkel. Többek között ennek segítségével akár RAW képeket is tudunk menteni, vagy akár USB porton keresztül távkioldani, de én most csak a sunset szkriptet használom benne, hogy időzített képeket tudjak készíteni.

A CHDK oldalon ragyogóan leírják hogyan lehet telepíteni a készletüket az adott fényképezőgépre, ezért erre én nem térek ki, viszont az elkészült felvételeket még fel is kell dolgozni, ami nem mindig egyértelmű feladat.
A film összeállításához én a VirtualDub programot használom, ami egy ingyenes videószerkesztő program, bár kissé fapados. Azonban tökéletesen alkalmas erre a célra, hiszen mindössze egy megnyitás parancsot kiadva az adott mappában lévő összes képet sorban megnyitja és összefűzi egyetlen videófolyammá! Azonban ez a feladat akkor lehet problémás, ha 2000 képnél többet szeretnénk összeállítani egyetlen felvétellé, ugyanis az én esetemben abba sikerült belefutni, hogy pontosan ennyi képet rak el mappánként a fényképezőgép, s mikor ezt a határt eléri, nyit egy új mappát soron következő számozással (canon101, canon102, canon103, ...). A VirtualDub viszont nem tud sajnos almappázni, illetve azt se lehet neki mondani, hogy a következő mappából szedje a folytatást, így kénytelen voltam egyetlen helyre összemásolni a képeket.
Igen ám, de a képek a mappán belül lehet, hogy különböző nevűek, azonban két mappán belül egyforma néven futnak (azaz ugyan az a fájlnév megtalálható a canon101 és a canon102 mappában is), így egy egyszerű másolás nem elegendő! Ilyenkor jön a jól bevált powershell, és egy egyszerű szkript, ami ha már fut, akkor miért ne vágja is meg nekünk rögtön a képeket megfelelő méretűre? Ahhoz, hogy ezt meg tudja tenni, az Image Magick lesz a segítségünkre, ami egy kiváló parancssori képfeldolgozó szoftvercsalád. Az alábbi szkriptet abban a mappában kell futtatni, ahol a canon101, ... mappáink vannak, végül a mappákon kívülre fogja létrehozni a képeket emelkedő sorszámmal.

$i=0;
foreach($dir in Get-ChildItem|sort-object){
 $kepek = get-childitem $dir -name|sort-object
 foreach($kep in $kepek){
  $j="{0:00000}" -f $i
  convert "$dir\$kep" -shave 64x228 "a$j.jpg"
  $i = $i + 1
 }
}

Az egyetlen magyarázatra szoruló rész a -shave 64x228 lehet. Az Image Magick szoftver ezzel a paranccsal végzi el a kép körbevágását, és esetmeben ennyit kell levágni az elkészült fotóimból, hogy fullHD (1080p) méretű képeket kapjak. Ha nem akarjuk feltelepíteni az Image Magick szoftvert, akkor természetesen nincs rá szükség, a VirtualDub is meg tudja vágni a képeinket mikor már összeállítottuk a videót belőlük. Másolásra viszont ekkor is szükség van, amihez a fenti szkript egyetlen sorát kell megváltoztatni:

  convert "$dir\$kep" -shave 64x228 "a$j.jpg"

Helyett a Copy-Item parancsot kell használni, azaz írjuk át a sort erre:

  Copy-Item "$dir\$kep" "a$j.jpg"

Ennyi előkészület után most már végre jöhet a mókás rész, töltsük be végre a filmünket! Mint már említettem, ehhez mindössze csak meg kell nyitnunk a képsorozat első tagját (a0000.jpg), a többit a VirtualDub automatikusan betölti, feltéve, ha a megnyitás panelen a bal alsó sarokban lévő "Automatically load linked segments" jelölőnégyzet be van kattintva.

0_

Miután megnyitottuk a képeinket, már akár menthetnénk is, de előbb még érdemes beállítani pár apróságot.

  • Video menün belül a Frame rate (ctrl+r) parancsra kattintva, állítsuk 25-re (change to fps)
  • Ha zenét akarunk alá rakni, akkor az Audio menüben töltsük be az "Audio from other file" parancsra kattintva
  • Állítsunk be videótömörítést a Video menün belül a Compression (ctrl+p) parancsra kattintva
  • Ha pedig a képek előkészítésénél csak másoltunk, akkor a vágást csináljuk meg most a Video menün belül a Filters (ctrl+f) parancsra kattintva!

Ez utóbbi nem teljesen egyértelmű, ugyanis a VirtualDub szűrők menüjében a "Cropping" gomb, amivel a képen vághatnánk mindaddig nem aktív, míg legalább egy szűrőt hozzá nem adunk a filmünkhöz. Szerencsére erre beépített szűrő van, amit "Null transform" néven kell keresni, s legkedvesebb meglepetésünkre a szűrő leírásánál is az szerepel: Nem csinál semmit, tipikuson helyfoglaló a vágás parancs számára.
No comment.

1
2

Mindezek után csak el kell mentenünk a filmünket (a konvertálás processzortól és filmhossztól függően órákig is eltarthat), és készen is vagyunk.