timelapse

18.09.2005., nedjelja

Budući Time Lapse projekti (6/6)

O dosadašnjim nastavcima je opisano kako snimiti najjednostavniji Time Lapse video. Upoznavši tu osnovnu tehniku, možemo maštu pustiti s lanca. No, pod time ne podrazumjevam smo odabir scene za snimanje, već i modifikaciju same tehnike snimanja.

Stop motion animacija
Ova tehnika animacije je prvi put svjetlo dana ugledala davne 1902. u filmu Put na mjesec (Le voyage dans la lune), Georgesa Méliesa. Tehnika funkcionira tako da se kamerom uslika jedna sličica (frame). Nakon toga se predmet koji se želi animirati animira malo pomakne. Zatim se slika slijedeća sličica i postupak se nastavlja.
Možda jedan od najpoznatijih crtića na našim prostorima "A je to!" je sniman tom tehnikom.

Bez PCa
Ponekad bi poželjeli svoju opremu smjestiti negdje u prirodu. To na žalost nije moguće, ako je fotoaparat kablom vezan za PC.

Većina digitalnih fotoaparata ne posjeduje mogućnost automatskog snimanja Time Lapse fotografije. Osim tog ograničenja, problem predstavlja i kratak vijek trajanja baterija. Potrebno je dakle riješiti problem okidanja fotoaparata u ravnomjernim vremenskim razmacima, te osigurati mu vanjski izvor napajanja.

Lemilicu u ruke!
Problem napajanja je relativno lako riješiti. Na tržištu postoje manji olovni 12V akumulatori kapaciteta 7Ah, pristupačne cijene. Potrebno je samo prilagoditi i stabilizirati napon kako bi bio prikladan za napajanje foto-aparata.

Rješavanje problem okidanja fotoaparata u jednakim vremenskim razmacima je nešto složeniji. Jedno od mogućih rješenja je upotreba mikrokontrolera. Za one koji se prvi put susreću sa ovim terminom, radi se o jednostavnim računalima smještenim u jednom čipu.

Fotoaparat koji posjedujem (FujuFilm Q1) se prilično lako da rastaviti, pa spajanje žica okidača sa mikrokontrolerom ne bi trebo biti problem. Kod skupljih i složenijih fotoaparata okidanje bi se moglo napraviti npr. IR putem.

Mikrokontroler
Dobar izbor bi bio mikrokontroler iz Atmelove serije AT89. Njegove prednosti su što za njegovo programiranje nije potreban skupi programator, već je to moguće obaviti preko paralelnog porta PCa. Druga velika prednost je postojanje C-kompajlera, tako da se ne mora gubiti vrijeme na savladavanje njegovog asemblera (strojnog jezika).

Program za miktokontroler bi mogao biti tako koncipiran da koristi interni counter-timer sklop. Svaki put kada bi timer digao interupt, program bi trebao okinuti fotoaparat. Kako ne bi za svaku prgodu morali reprogramirati chip, zgodno bi bilo dodati mogućnost podešavanja periode okidanja putem vanjskog DIP-switch jumpera.

Nije sve u vremenu
Samo ime ove tehnike snimanja sugerira da se radi o igranju s vremenom. No, zašto se ograničavati? Uopće, zašto bi morali okidač kamere vezati za vrijeme? Na primjer, mogli bi ga vezati za prostor.

Nije vam jasno na što ciljam? Sjetite se specijalnih efekata iz filma Matrix. U nekoliko scena borbe vrijeme bude zamrznuto dok se kamera šeće oko glavnog glumca. Ti efekti su snimani korištenjem velikog broja kamera tako da su ih pordali jednu do druge. Kamere istovremeno snime jednu sličicu, a animacija se postiže slaganjem tih sličica u sekvencu. Tako se dobiva efekat zamrznutog vremena a pomične kamere. Ovaj oblik snimnja bi mogli nazvati npr. Space Lapse.

Kako mi, za razliku od prebogatih Hollywoodskih studija, ne raspolažemo velikim brojem kamera, morat ćemo smisliti nešto drugo. Problem koji moramo riješiti je vezanje okidač kamere za prostor.

Na dva kotača
Vozeći se svakog dana na posao, na biciklu provodim dosta vremena. Stoga je logično da mi je slijedeća ideja prva pala na pamet: vezati okidač kamere na okretanje kotača. Većina nas biciklista posjeduje brzinomjer. Brzinomjer mjeri brzinu okretanja kotača tako što mjeri koliko je vremena potrebno da on napravi puni krug. Na žbicama kotača se nalazi mali magnetić. Kako se kotač okreće, svaki puni krug taj magnetić prođe pokraj senzora (reed sklopka) smještenog na vilici.

Ako ovaj mehanizam vežemo za okidač kamere, dobit ćemo ono što nam treba. Sklop bi mogli obogatiti mikrokontrolerom opisanom u prethodnom poglavlju. M-kontroler bi mogao upravljati kamerom tako da broji okrete kotača, te npr. pri svakom 10. okretu slika jednu sliku. Tako bi mogli kontrolirati rezoluciju/učestalost snimanja.

Koraci i motori
Apsolviravši epizodu sa biciklom krećemo dalji u istom pravcu. Okidanje kamere ćemo i ovaj put vezati za prostor. Novost je što ćemo položaj kamere čvrsto vezati za vrijeme. Mikrokontroler kojim već suvereno vladamo će nam pomoći u ovom zadatku.

Za sam posao pomicanja kamere će nam trebati koračajni ili step motori. Iako je ovo možda prvi put da se susrećete s ovim terminom, možete biti sigurni da ste se s njima već davno susreli. Tako ih možete sresti u svom računalu (disketni i CD pogon), printeru.
Ono što koračajne motore razlikuje od drugih električnih motora je mogućnost preciznog određivanja položaja. Kada običan električni motor spojite na struju, on će se veselo zavrtjeti. Stepperi se ne vrte, već koračaju. Iz njih osim dvije standardnih žica koje služe za napajanje, viri još nekoliko upravljačkih žica. Putem njih upravljačka elektornika naređuje motoru da napravi slijedeći korak. Mislim da ste dobili grubu sliku o tome što je to koračajni motor. Više informacija možete naći na Wikipediji.

Povežimo sada sve tri komponente zajedno: kameru, mikrokontroler i koračajni motor. Kameru montiramo na okretni stalak, koji je zupčanikom vezan za koračajni motor. Mikrokontroler spojimo na koračajni motor i okidač kamere.

Moramo napisati i novi program za m-kontroler. Program bi u redovitim vremenskim razmacima za nekoliko stupnjeva okrenuo kameru i slikao jednu sliku.

Ovim načinom snimanja bi mogli dobiti zanimljive efekte. Mogli bi objektivom pratiti sunce od zore do sumraka.

Saznajte više o...
- Stop motion fotografiji
- Mikrokontrolerima
- Stabilizaciji napona
- Koračajnim motorima

Programiranje mikrokontrolera
- Elektronička brava - dobar primjer upotrebe mikrokontrolera
- BASCOM Demo download - Basic compiler
- Small Device C Compiler - besplatan C compiler
- AVR Studio - Atmelovo razvojno okružje
- AVR Freaks - dobar izvor informacija
- Priručnik za Atmel AT98 (PDF)
- Kontroliranje koračajnog motora putem atmel AT89

Linkovi
- Stabilizatori napona temeljeni na 890x
- PC program za koračajne motore
- Á je to - službena stranica

17.09.2005., subota

Objavljivanje videa na webu (5/6)

Slijedeći logični korak kod izrade videa bi bio publikacija. Kao najpogodniji medij za tu svrhu se nudi internet. U ovom ću postu ću opisati kako za 0Kn (ne računajući lovu koju iskrcate svom ISPu) možete svoju kreaciju podijeliti sa ostatkom svijeta.

Ukratko
Još jedne upute u eHow stilu:
1. pripremiti video za web (smanjiti, komprimirati)
2. registrirati se na nekom od sajtova za besplatni video hosting (OurMedia)
3. uploadati video

Priprema videa
Većina korisniak interneta još uvijek spaja 56k modemima ili sporije. Tu činjenicu svakako treba uzeti u obzir, ako je to "ciljano tržišt" vašeg videa. Na što ciljam? Na megabajte, odnosno minute potrebne za download. Prosječni surfer, frustriran sporošću konekcije, nema previše strpljenja čekati pola ili više sati samo da bi pogledao tamo neki video (10MB 56k modemom će vam trebati sat vremena).

Video koji ste kreirali vjerojatno ima nekoliko MB, stoga ga prije objavljivanja treba pripremiti. Osnovne tehnike su: smanjivanje veličine videa (npr. na rezoluciju 320x240), povečavanje stupnja kompresije, kodiranje streaming kodekom. Primjenom svake od ovih tehnika smanjujete kvalitetu rezultirajućeg videa, no to je cijena koju morate platiti!

Smanjivanje veličine
U ovu svhu ćemo ponovo upotrijebiti VirtualDub. Preciznije, njegov "2:1 reduction" filter. Originalni video ćemo smanjiti sa 640x480 na 320x240. Nemojte se žuriti, pa video odmah kodirati. Sa video možemo napraviti još šošta, prije no što ga spremimo.

Povečavanje stupnja kompresije
Stupanje kompresije je obrnuto proporcionalan sa kvalitetom rezultirajućeg videa: što jaču kompresiju opalite, to će video lošije izgledati. Sami najbolje možete procijeniti koliko ste kvalitete spremni žrtvovati.

Kao primjer ću navesti povećavanje kompresije XviDu. Stupanj kompresije se podešava horizontalnim kliznikom. Postoje dvije skale za određivanje kvalitete: kvantizacijska i bitrate. Bitrate je ono što nama treba. Skale biramo tipkom "Target bitrate" / "Target quantinizer" (tipka mijenja ime). Dakle odaberite "Target bitrate". Što je kliznik bliži desnim kraju, datoteka će biti manja, a kvaliteta niža. Pomicanjem kliznika u desno kvaliteta raste, ali i veličina datoteke.

Ne treba previše matematike da izračunate koliki bitrate trebate za 56k modem. Naravno, nemojte odabrati 56kbits, jer je to samo nazivna brzina modema. Upotrebljiva brzina je manja. 36kbps nije loš izbor.

Sada je sve spremno da kodirate datoteku! (File->Save as AVI)
Ali čekajte! Jeste li dodali svoj logo/potpis/copyright?

Streaming video
Neki video formati omogućuju da video snimka krene prije no što je cjela datoteka stigla na vaše računalo. Kako dijelovi videa pristižu, player ih prikazuje. To se zove streaming. Ako je konekcija dovoljno brzia da video sadržaj stiže barem jednakom brzinom kojom se isti prikazuje, prikazani video bi trebao teći glatko. Kod sporijih konekcija brzina downloada ne može pratiti tempo prikazivanja, pa video zna zastajkivati.

Možda vam je sad jasnije zašto sam u prethodnom poglavlju naveo bitrate od 36kbps kao dobar izbor za 56k modeme.

Kodek je taj koji određuje može li se video streamati ili ne. Da bi streaming bio moguć, kodek mora biti u skladu sa nekim od slijedećih standarda: H.261, H.263, MPEG-4 itd.

XviD koji smo do sada koristili podržava standarde H.263 i MPEG-4, što dodatno potvrđuje naš izbor.

Streming ili ne
Sigurno ste se iznenadili kad ste vidjeli kako loše izgleda rezultat komprimiranja na 36kbps. No to je teška odluka koju treba donjeti...
osobno nisam spreman platiti takvu cijenu. Zato svoje uradke uredno komprimiram pri defaultnom 700kbps. Takav video možda neće moći stream-ati preko modema, ali će barem biti gledljiv.

Osim toga, modem tome niti ne služi da bi se preko njega gledao video. Za tu svrhu je puno primjereniji DSL, koji svakim danom uzima sve veći dio tržišta.

Ourmedia
Ponosni vlasnici bloga su se sigurno već susreli sa web sajtovima kao što je
ImageShack, ZippyImages ili IMGSpot. Za one koji ne znaju, radi se web sajtovima na kojima besplatno možete spremiti svoje fotografije. Blogeri ih koriste za smještaj fotografija koje objavljuju u svojim tekstovima (ja npr. koristim ImageShack).

Postoje sajtovi koji pružaju besplatan smještaj za video sadržaje. Jedan od njih na koji sam slučajno naletio je OurMedia. OurMedia registriranim korisnicima omogućuje smještanje neograničenog broja video snimaka. Začudo, te video snimke je moguće embed-ati na vlastite web stranice, da se nigdje niti ne vidi da su smješteni na njihovom poslužitelju.

Prilikom objave videa na OurMediji, svoj rad možete zaštiti odabravši neku od nekoliko ponuđenih licenci pod kojima se video objavljuje (Creative Commons, GNU Public licence, Public domain i sl.). Objavljeni video se pojavljuje u njihovoj tražilici (moguć unos ključnih riječi).

Postupak registracije je pomalo složen, jer osim registracije na samim stranicama OurMedije, zahtjeva i registraciju na Internet Arcive-a. Tek nakon što obavite obje registracije, te u postavkama na stranicama OurMedije unesete zaporku koju vam je izdao Internet Archive, moći ćete postavljati svoje uratke. Tu zaporku postavljate na slijedeći način: my page -> edit -> rubrika naslovljena "Your archive.org account password:"

Jedno upozorenje za bloggere: na stranicama OurMedije se u meniju s lijeve strane nalazi opcija "post to my blog". To nema nikakve veze sa vašim blogom. Svaki registrirani korisnik dobiva nešto slično blogu i ta opcija se odnosi na to.

Sajtovi za smještaj multimedije
Slijedeći sajtovi pružaju neki vid besplatnog smještaja multimedije:
- OurMedia
- Mefeedia
- Common Bits
- Video Blog Directory

Saznajte više o...
- Video Blogu
- OurMediji
- Index kodeka sa opisima
- Streming-u

U slijedećem nastavku...
- budući time lapse projekti

16.09.2005., petak

Završna obrada Time Lapse videa (4/6)

Završna obrada podrazumijeva rađenje manjih korekcija svjetline i boje na videu, eventualno dodavanje logotipa, te rekomprimiranje videa.

Ukratko
Postupak završne obrade bi mogao ići slijedećim koracima:
1. otvoriti ubrzani video
2. odabrati Full processing mode
3. postavljanje filtera
4. odabir i podešavanje kodeka
5. spremiti video (File->Save as AVI)

Sve jasno? Nije? Čitajte dalje...

Filteri
Osnovna namjena VirtualDuba nije digitalna obrada slike, već rezuckanje videa, igre sa zvukom i framerateom, te najvažnije: kodiranje (komprimiranje). Međutim, neke modifikacije na slici jesu moguće putem filtera (Video->Filters).

Ova opcija nije zasjenjena (onemogućena) jedino kod Full processing mode. Razlog tome je što filteri mijenjaju slikovni zapis, te je potrebno u cjelosti ponovo komprimirati video.

Kliknuvši na ovu opciju program će vam prikazati prozor sa praznim popis filtera koji će biti primjenjivani prilikom obrade učitanog videa. Filtere dodajete tipkom Add. Prilikom obrade, filteri će biti primjenjivani na video redoslijedom kojim ste ih dodavali. Taj se redoslijed može mijenjati tipkama Move Up / Move Down.



Primijenjeni filteri
Video sam snimao jeftinom web kamerom, pa da bi snimljeni video materijal nečemu sličio, morao sam napraviti određene korekcije. Tako sam kao prvi dodao filter Levels. Ručno sam podesio slidere.



Cijeli video je imao lagano zelenkasti ton, što sam korigirao HSV filterom, podesivši Hue.



Poslijednji filter koji sam upotrijebio je bio filter Logo. No prije no što sam ga mogao početi koristiti, morao sam kreirati datoteku sa logotipom. Kreirao sam malu BMP datoteku sa bijelim tekstom na crnoj pozadini.
U filteru Logo moguće je učitati i grayscale datoteku sa maskom koja definira koji su dijelovi loga providni, a koji nisu. Dijelovi maske koji su bijeli označavaju u potpunosti neprozirna područja loga, dok su crna područja u potpunosti prozirna.

Kao filter sam upotrijebio istu datoteku koja je ujedno i logo (ima crnu pozadinu = providno). Logo sam pozicionirao dolje lijevo (BL = Bottom left).



Full processing mode
Kao što sam u prethodnom poglavlju spomenuo, da bi uopće mogli koristiti filtere, VirtualDub se mora nalaziti u Full processing mode. U ovom će načinu rada obrada videa potrajati znatno duže no u Direct stream copy, koji je korišten kod ubrzavanja videa. No, ako ste pažljivo čitali tekst o ubrzavanju, to vam je vjerojatno jasno.

Dodatna razlika od Direct stream copy se što je kod ovog načina rada potrebno odabrati kompresor (kodek), koji će videozapis komprimirati prije no što bude zapisan u datoteku. O tome više u poglavlju koje slijedi.

Kodek - odabir i podešavanje
Moj prvi izbor je bio kodek XviD. XviD je nastao kao odgovor grupe programera na zatvaranje izvodnog koda DivX-a. Naime, u početku je DivX bio open source software. Nejgovi tvorci su nakon nekog vremena odlučili taj kod zatvoriti za javnost.

Neću ulaziti u analizu koji je od dva kodeka bolji, jer i onako već ima previše stranica na tu temu (XviD vs DivX). Zadovoljan sam sa poslom koji XviD obavlja i neka to ostane na tome.

Postavke XviD kodeka mogu izgledati zastrašujuće na prvi pogled. Testiranjem sam došao do toga da se sve te postavke mogu slobodno ostaviti na pretpostavljenim vrijednostima (default). Naime, njihovim mijenjanjem nisam uspio doći do znatnih poboljšanja/pogoršanja u kvaliteti/veličini rezultirajućeg videa. Ali ako baš volite cijepati dlake, evo vam LINK.

Ako ste zaboravili, kodek se odabire kroz opciju Video->Compression

U slijedećim nastavcima...
- kako objaviti video na webu
- budući time lapse projekti

15.09.2005., četvrtak

Ubrzavanje Time Lapse videa (3/6)

U prethodnom postu sam objasnio kako snimiti sirovi Time Lapse video. Tako snimljena datoteka sama po sebi nije previše korisna. Kako bi se dobio ekeft očekivan od ovog tipa videa, snimku je potrebno ubrzati.

Ukratko
Postupak je slijedeći:
1. otvoriti snimljeni video
2. podesiti frame rate i decrement (Video->Frame rate)
3. odabrati Direct stream copy
4. spremiti video (File->Save as AVI)

Sve jasno? Nije? Čitajte dalje...

Princip ubrzavanja
Kao što sam u prethodnom postu naveo, ubrzanje videa se temelji na: povećanju framerate-a i izbacivanju frameova.

Originalni video je snimljen pri malom frameratu (0.5 fps), što znači da se novi frame pojavljuje svake dvije sekunde. Još je od vremena braća Lumiere poznato da je potrebno barem 25 fps da bi ljudsko oko dobilo privid animirane slike. Dakle, rezultirajući video mora imati 25fps.

Tip: Prije no što se bacite u čitanje ovog, možda i preopširnog poglavlja, skočite na poglavlje naslovljeno "Framerate za nestrpljive". Tamo se nalazi skraćena verzija ove mudrosti, koju možete odmah i primijeniti.

U VirtualDub-u se ubrzavanje radi u dva koraka: u prvom se se povećava framerate, a u drugom izbacuju frameovi. Imajući na umu ciljanih 25fps, množimo tu vrijednost sa faktorom 6 i dobivamo 150fps. Dakle, u prvom koraku podižemo framerate na 150fps, nakon čega uzimamo samo svaku 6. sličicu, te dobivamo 25fps - ono što nam treba!

Sigurno se pitate zašto koristim faktor 6. Objašnjenje se nalazi u prethodnom postu: kod snimanja je kodek (Indeo) podešen tako da svaki 6. frame bude keyframe. No, ne mora se koristiti samo faktor 6, već i svi njegovi prosti faktori (brojevi s kojima je djeljiv: 2, 3), te svi njegovi višekratnici (12, 18...). Ako se koriste njegovi prosti faktori, ubrzanje će biti manje, a ako kod višekratnika veće.

Sad sam se malo raspisao, ali računica je jednostavna.
Fps (adjustment_fps) i faktor (decrimate) dijeljenja računate na slijedeći način:

1. Početni podaci

ciljani_fps = 25 fps
ciljana_duljina = oko 3 min = 180 sec

original_fps = 0.5 fps
original_duljina = 13h * 60min * 60sec = 46.800 sec
original_br_frameova = 46.800 sec * 0.5 fps = 23.400

2. Međuračun

među_duljina = original_br_frameova / ciljani_fps = 936 sec = 15,6 min
među_decrimate = među_duljina / ciljana_duljina = 5,2

3. Završni račun

decrimate zaokružujemo na najbliži prosti faktor ili višekratnik
broja 6 (učestalost keyframeova - vidi postavke kodeka kod capture)
-> decrimate = 6

adjustment_fps = ciljani_fps * decrimate = 150 fps

Maksimalni fps koji možete postaviti u VirtualDubu je 180. Ukoliko bi željeli video dodatno ubrzati, postupak ubrzavanja možete ponoviti (koristite Video->Direct stream copy).

Framerate za nestrpljive
Nadam se da vas nisam prestrašio sa ovim računom! No, da se ne davite s prva dva koraka, dovoljno je da napravite računicu iz 3. koraka: nasumično odaberete decrement (paziti na učestalost keyframe-ova), pa iz toga izračunate adjustment_fps. Ako je rezultirajući video prebrz, smanjite decrement, pa ponovite postupak. Evo vam nekoliko primjera podešavanja: 25fps/1, 50fps/2, 75fps/3, 150fps/6

Ako kod podstavki snimanja videa umjesto 6 upišete neku drugu vrijednost učestalost keyframe-a, cijeli ovaj račun se mijenja. Na primjer, ako postavite da kodek radi keyframe svakih 4 frame-ova, tada bi mogli odabrati jedno od slijedećih podešavanja: 25fps/1, 50fps/2, 100fps/4

Ovim postavkama se u VirtualDub-u pristupa putem opcije Video->Frame Rate, a postavke izgledaju ovako:



Događaj s ključnim trenutcima
Kod snimanja nekog događaja, može se pojaviti potreba da neki ključne trenutci budu snimljeni detaljnije. Iz takve snimke se rade dva rezultirajuća videa: video cijelog događaja sa većim ubrzanjem vremena, te video ključnog dijela sa manjim ubrzanjem vremena.

Kao primjer mogu navesti svoje snimanje cijelog dana. Osim cijelog dana, neke ključne događaje (dolazak katamarana - redovna linija) sam želio snimiti detaljnije.
Želio bih tih 13 sati svesti na 3 minute. Ako bih kod ubrzavanja samo povećao framerate na 25fps, video bih morao snimati sa 0.1 fps (faktor_ubrzanja = 13h * 3600sec / (3min * 60sec) = 260; 25fps / 260 = oko 0,1 fps). Ključni trenutak koji želim zasebno prikazati je dolazak i odlazak katamarana, koji traje oko 15 minuta. Pokušajmo sada izračunati koliko dugo bi trajala ta sekvenca rezultirajućeg videa: u 15 minuta kamera snimi 90 sličica (15min * 60sec * 0.1 fps). Ubrzavši taj video na 25fps (90/25fps), dobili bi manje od 4 sekunde videa - očito premalo!

Iz tog je razloga video sniman sa 0.5 fps. Time postižemo da rezultirajuća sekvenca dolaska katamarana traje 20sec.

Sad se pojavljuje drugi problem: rezultirajući video cijelog dana je predugačak! 13 sati takvog videa rezultirao je u 23.400 sličica. Ubrzavši ga na 25fps, 13sati videa se svelo na 15 minuta, a to je previše. Želja nam je cijeli dan svesti na 3 minute. Rješenje je u preskakanju frameova, koje je opisano prije.

Uzevši tek svaki 6. frame, dobivamo dodatno ubrzanje s faktorom 6. Rezultirajući video cijelog dana je dugačak 2,5 minuta, što je prihvatljivo.

Izdvajanje ključnih trenutaka
Video snimke ključnih trenutaka izdvajamo iz originalnog videa tako da obrišemo iz videa sve što prethodi keyframe-u kojim taj trenutak počinje, te sve što slijedi nakon keyframe-a na kojem je trenutak završio.

Postupak je slijedeći:
1. pozicioniramo se na početak originalnog videa
2. postavimo oznaku početka selekcije
3. pronađemo mjesto na kojem se nalazi ključni trenutak koji želimo izdvojiti
4. pozicioniramo kursor na keyframe na kojem ključni trenutak počinje
5. postavimo oznaku kraja selekcije
6. obrišemo označeni dio videa (Edit->Delete ili Del tipka)

Birsanje onog što slijedi nakon ključnog trenutka:
1. pozicioniramo kursor na keyframe na kojem trenutak završava
2. postavimo oznaku početka selekcije
3. pozicioniramo se na sam kraj originalnog videa
4. postavimo oznaku kraja selekcije
5. obrišemo označeni dio videa (Edit->Delete ili Del tipka)

Al' ovo ste već sigurno sami skužili!

Direct stream copy
VirtualDub ima nekoliko načina na koji video od dekompresora prosljeđuje kompresoru:
- Direct stream copy - ulazni video se zapisuje u izlaznu datoteku bez ikakve obrade
- Fast recompress - ulazni dekompresor je izravno spojen na izlazni kompresor
- Normal recompress - ulazni se video bez modifikacije prosljeđuje izlaznom kompresoru
- Full processing mode - video se prosljeđuje kompresoru tek nakon obrade

Kod Direct stream copy VirtualDub sličice iz ulaznog videa ne prosljeđuje kompresoru, već ih neizmijenjene izravno zapisuje u izlaznu datoteku. S obzirom da ne dolazi do rekompresije, ovaj način rada je najbrži (značajno!).

U opisanom postupku ubrzanja videa ne dolazi do izmjene slikovnog sadržaja. Jedina izmjena koja se radi je promjena framerate-a i izbacivanje pojedinih frame-ova. Iz tog je razloga ovaj način rada najpogodniji za posao koji želimo obaviti.

Kada smo zadovoljni stvorenim videom, rezultirajući video možemo obraditi filterima, te rekomprimirati radi uštede na diskovnom prostoru. O svemu ovome će biti višegovora u slijedećem postu.

Rezultirajući video
Na webu sam objavio nekoliko najzanimljivijih snimaka zaljeva na otoku Susku, a to su:
- zora - zanimljivi trenutak
- dolazak katamarana - zanimljivi trenutak
- cijeli dan

U slijedećim nastavcima...
- kako korigirati boju, svjetlinu, kako dodati logo
- kako objaviti video na webu
- budući time lapse projekti

14.09.2005., srijeda

Snimanje Time Lapse videa (2/6)

Oprema & Software
Od opreme ne treba previše: web kamera (Trust SpaceCam 320), produžni usb kabel i PC (Acer Aspire 1200, Intel Celeron 1.300, 512 MB RAM, 20GB HDD)



Od software-a sam koristio:
- VirtualDub
- Intel Indeo codec
- XviD codec

Ukratko
Postupak snimanja videa je slijedeći:
1. postaviti opremu (PC + kabel + web kamera)
2. podesiti framerate, lokaciju izlazne datoteke, postavke kamere
3. odabrati i podesiti kodek (Indeo)
4. pokrenuti snimanje (Capture->Capture Video)

Sve jasno? Nije? Čitajte dalje...

Postavljanje opreme
Kameru treba postaviti na mjesto na kojem je nitko neće dirati, niti će neki predmet blokirati snimani kadar. S obzirom da se često snimaju scene iz prirode, dobro dođe i produžni USB kabel.

Kod snimanja prvog time-lapse videa, želio sam snimiti kako jedan cijeli dan prolazi pored moje kuće. Dan prije snimanja web kameru sam montirao na stativ foto-aparata i postavio je na balkon, te spojio sam je na PC produžnim USB kabelom.

Podešavanje VirtualDub-a
Za hvatanje videa sam koristio VirtualDub. Sa verzijom programa v1.6 sam imao problema, pa sam se prebacio sam se na verziju v1.4. Nju sam koristio za capture, a v1.6 za kasniju obradu.

Da bi hvatali video (capture) VirtualDub treba prebaciti u capture način rada (File->Capture).

Prije početka capture-a, potrebno je napraviti određena podešavanja:
- postaviti direktorij u koji će AVI datoteka biti spremana
- podesiti postavke web-kamere
- podesiti framerate (brzinu) kojim se video hvata
- podesiti kodek koji će biti korišten

Postavljanje direktorija za AVI datoteku
Ovisno o korištenom kodeku, kod snimanja cijelog dana AVI datoteka može biti velika i preko 2GB.
Stoga je potrebno tu datoteku smjestiti na disk na kojem ima dovoljno praznog mjesta. Dodatno ograničenje kod snimanja datoteka većih od 2GB može predstavljati i FAT32 particija. Naime, za razliku od NTFSa, FAT32 ne dopušta datoteke veće od 2GB. No da bi VirtualDub radio datoteke veće od 2GB, potrebno je izvršiti dodatna podešavanja.

Direktorij u koji će biti smještena datoteka se postavlja putem opcije Capture->Preferences




Postavke web-kamere
Postavke web kamere se odnose na rezolucija, ekspozicija, hue i sl.
Podešavanju rezolucije i broj boja se pristupa putem opcije Video->Format.



Ja sam za capture koristio najveću rezoluciju koju kamera može dati, a to je 640x480.

Ekspozicija, svjetlina i hue i ostale postavke se nalaze pod opcijom Video->Source.



Ekspoziciju i svjetlinu je dobro ručno podesiti kod snimanja događaja kod kojih su svjetlosni uvijeti konstantni. S obzirom da sam planirao snimiti cijeli dan, ove dvije postavke sam ostavio na automatici. Jedino sam malo korigirao hue.

Postavljanje framerate-a
Framerate iliti broj sličica u sekundi koji postavite se izravno odražava na veličinu AVI datoteke koja će biti kreirana. Njime se u stvari određuje rezolucija kojom želite neki događaj uhvatiti. On se tipično kreće od jedne sličice u sekundi (1 fps), pa do jedne sličice svakih nekoliko minuta (1/60 = 0.017 fps).

Framerate se postavlja kroz opciju Capture->Settings



Za hvatanje dana sam koristio 0.5 fps. Pri tom mi je na rezoluciji od 640x480 program za 15 sati snimanja kreirao datoteku veću od 2 GB.
Naravno, veličina datoteke ovisi i odabranom kodeku i njegovim postavkama, te složenosti i promjenjivosti objekta koji se snima. O tome će biti više riječi kasnije...

Postavljanje kodeka
Ovo je najsloženiji i najvažniji dio podešavanja.
Prilikom odabira treba obratiti pažnju na slijedeće:
- snagu procesora
- slobodan diskovni prostor
- način na koji će video kasnije biti prekodiran

Nakon svake uhvaćene sličice, VirtualDub je proslijeđuje codecu na kodiranje. Ako je procesor preslab, kodiranje sličice može trajati duže od intervala hvatanja. To će uzrokovati da će neke frema-ovi (sličice) biti preskočene.

Diskovni prostor, ah nikad ga dosta! Stupanj odabrane kompresije se odražava na veličinu AVI datoteke, ali i na kvalitetu snimljenog videa. Zato osigurajte barem 3GB slobodnog diskovnog prostora (dovoljno za 15 sati videa kodiranog Inde-om na rezoluciju 640x480).

Nakon što je video snimljen, trebat će ga ubrzati.
Ubrzanje se temelji na slijedeća dva principa:
- povećanju framerate-a
- izbacivanju frame-ova (sličica)

Kao prvi kodek koji sa upotrijebio za hvatanja videa je bio XviD. On ne opterečuje procesor previše, a datoteke koje stvara su prilično male. No, nije sve išlo baš glatko! Problemi su nastali kod ubrzavanja snimljenog videa. Prvo sam podigao framerate na 150 fps. Zatim sam iz videa uzeo tek svaku 6. sličicu, kako bih dobio standardnu brzinu od 25 fps. Na moje razočaranje rezultirajući video je bio trzav. Gledajući statistiku videa u CrystalPlayeru, primjetio sam da veliki broj frame-ova biva preskočen.
Problem je bio u tome što XviD ne stvara keyframe u redovnim intervalima, već samo onda kad zaključi da to potrebno. Prilikom ubrzavanja videa, program je uzimao frame-ove u redovnim intervalima od 6. Pri tome je preskočio poneki keyframe koji je uspio proći kroz to sito. Kod prikaziva s obzirom da nije bilo keyframe-a na kojem bi mogao temeljiti sve deltaframe-ove koji nakon tog preskočenog slijede, svi deltaframe-ovi do idućeg keyframe-a su bili preskočeni!

Kako bih ovaj problem riješio, pokušao sam isto sa Indeo kodekom. Njega se može prisiliti da svakih n-ti frame bude keyframe, za razliku od XviD-a.

Odabiru kodeka se pristupa putem opcije Video->Compression



Postavke Indea sam ostavio na pretpostavljenim vrijednostima:



Capture
Sad je sve spremno za početak snimanja. Snimanje se pokreće kroz opciju Capture->Capture Video

Snimanje se, ovisno o postavkama, prekida tipkom Escape.

Saznajte više...
- Što je to keyframe/deltaframe i kako radi
- Što je VirtualDub
- Što je to Indeo
- Što je to XviD
- Kraće upute za XviD
- Opširnije upute za XviD

U slijedećim nastavcima...
- kako ubrzati time lapse video
- kako korigirati boju, svjetlinu, kako dodati logo
- kako objaviti video na webu
- budući time lapse projekti

13.09.2005., utorak

Time Lapse fotografija/video (1/6)



Kaj je to uopče?
To je ono kad na TV vidimo ubrzano kak se npr. cvijet otvara ili mravi jedu skakavca i sl. U stvari radi se o tehnici kod koje se snimaju relativno spori događaji, koje se zatim ubrzavaju. Točnu definiciju možete naći na: Wikipedia

Kaj se s time snima?
Snimaju se događaji koji se tako sporo odvijaju da su golom oku izgledaju nepromjenjivi, nepomični. Često snimani motivi su: oblačno nebo, otvarajne cvijeta, mravi, prometno križanje i sl. No snimaju se i događaji koji traju po nekoliko dana ili čak mjeseci. Na primjer: izgradnja nove zgrade, izmjena godišnjih doba, rast zubiju u djeteta...

Kak se to snima?
U redovitim vremenskim intervalima kamera/foto aparat zabilježi po jednu sliku.
Tipično se radi o sekundama ili minutama - ovisno o brzini kojom se događaj odvija.
Za snimanje oblačnog 1 sekunda je dobar odabir intervala.

Zašto sam sve ovo napisao?
Zato kaj sam svoju web kameru od skupljača prašine uspio pretvoriti u nešto korisno. Pa da drugima koji žele pokušati nešto slično prištedim muku surfanja i otkrivanja već otkrivenog, opisat ću kako sam to napravio na ovim stranicama.

Stranice sa Time Lapse videom
Na ovim web stranicama možete naći time-laps video:
- Time Lapse Digital - odlične time lapse snimke
- Time-lapse Photography - razno
- Time Lapse Video Stock Footage Page - uglavnom nebo
- West Virginia Lightning - oluje
- Neszt Tibor - Time-Lapse movies - nebo, oblaci
- McGrath Images - oluje
- BSCH Multimedia - oluje
- O'Riley Digital Media - vožnja autom
- Fun with a QX5 digital microscope - bakterije
- TimeLapseSource - profesionalni time-lapse video

U slijedećim nastavcima...
- kako snimiti time lapse video
- kako ubrzati time lapse video
- kako korigirati boju, svjetlinu, kako dodati logo
- kako objaviti video na webu
- budući time lapse projekti

Sljedeći mjesec >>