Time-lapse videó készítés
Nem olyan régen, elkezdtem a kertemben lévő növényekről félórás gyakorisággal fényképeket készíteni. Ezzel mára eljutottam odáig, hogy van közel 3000 darab fényképem a növekedésükről, amiket fel kellene dolgozni és videót csinálni belőlük.
És itt jön az első probléma: a természet "galádsága", hogy általában nem ugyanakkor kel fel és nyugszik le a nap, vagyis pusztán az egyes képek készítésének időpontjára alapozva nem lehetséges eldönteni, használható-e a kép vagy sem egy nappali videóhoz. Na és persze ha ezt sikerült megoldani, videóvá is kellene varázsolni a képeket.
A problémát a következő, talán nem túl elegáns és nem is túl gyors, ugyanakkor meglehetősen gyorsan összerakott kis scripttel oldottam meg, mely a képek világossága alapján sorol nappali vagy éjszakai kép kategóriába.
#!/bin/bash for f in $(ls *.jpg); do echo $f c=$(/usr/bin/convert $f -colorspace hsb -resize 1x1 txt:-) echo $c brightness=$(echo $c | cut -d ',' -f7 | cut -d ')' -f 1) echo $brightness if [ $brightness -gt 60 ]; then echo nappal; cp $f nappal/ else echo este; cp $f este/ fi done
A szétválogatást követően, már csak egy videóvá kell egyesítenünk a képeket.
Itt gondoltam visszatérek Windowsra és gyorsan katt-katt jelleggel megoldom MakeAVI-val a videó összerakását, viszont végül mégis maradtam a Linux terminálomnál. Ennyi fájl esetében már kényelmesebb így.
Első lépésként létrehoztam egy szövegfájlt, benne az összes képfájl nevével, hogy biztosan megfelelő sorrendben kerüljenek a videóba a képek. Ez végtelenül triviális módon, a fájlok dátumai alapján történt, de történhetne ugye akárhogy máshogy is.
ls -rt *.jpg > list
Ezt követően az mencoder toolt használva összeraktam a videót, amire legyen itt két opció:
- tömörítéssel:
mencoder -ovc x264 -mf fps=10:type=jpg 'mf://@list' -o timelapse.avi
- tömörítés nélkül:
mencoder -ovc copy -mf fps=10:type=jpg 'mf://@list' -o timelapse.avi
Megjegyzés: talán némileg gyorsabb módja lett volna a leválogatásnak, ha az egyes képek világossága helyett egy napfelkelte-napnyugta táblázatot kerítek valahonnan, de bárminemű optimalizálással, szépítéssel már majd csak akkor játszom, ha túl türelmetlen leszek kivárni ennek a scriptnek futását :)