Časosběrné video a CHDK

Time-lapseKaždý z nás určitě viděl video zrychleně zachycující východ slunce, růst rostliny, výstavbu budovy nebo pohyb osob na náměstí. Na první pohled by se mohlo zdát, že jde o zrychlené přehrání videozáznamu. Ve skutečnosti se jedná o sérii fotografií, které jsou pořizovány s rozestupem několika sekund a dohromady vytvoří tzv. časosběrné video (time-lapse video). Co ale potřebujeme, co musíme eliminovat a na co se zaměřit?

Časosběrné video si představme jako sérii několika tisíc fotografií, které jsou zaznamenány v přesně definovaných intervalech, např. 5 sekund. Tento interval si můžeme zvolit sami a ve výsledném videu přímo ovlivňuje rychlost přehrávání záznamu. Toto video by mělo obsahovat kupříkladu „běžných“ 25 snímků za sekundu (snímkovací kmitočet), tedy 1 500 za minutu (= 25 * 60), a neuvěřitelných 90 000 za hodinu (= 25 * 3 600).

Proč nenatočit video, které zrychlíme? Na tuto otázku nalezneme několik odpovědí, např:

  1. Fotografie mohou mít vysokou kvalitu (a rozlišení), které při natáčení videa na fotoaparátu nedosáhneme;
  2. na skupiny po sobě jsoucích snímků ve videu jsou aplikovány vektorové kompresní algoritmy, kdežto u fotografií tomu tak není – v jejich případě je jeden snímek nezávislý na druhém;
  3. jednotlivé fotografie můžeme dále zpracovávat v běžných grafických programech, případně ex post v PC aplikovat nejrůznější filtry, a používat dávkové zpracování v kvalitě, které u videa nejsme schopni dosáhnout;
  4. atd…

Na první pohled by se mohlo zdát, že nafotit sérii fotografií nemůže být příliš složitým úkonem. Pokud ale do ruky vezmeme náš oblíbený fotoaparát, můžeme ihned narazit na několik technických problémů:

  1. Fotoaparát neumožňuje automatické pořízení prakticky nekonečné série snímků;
  2. paměťová karta pojme pouze několik set fotografií;
  3. kapacita baterií umožňuje pořízení řádově stovek snímků.

Asi nás logicky napadne, že mačkat spoušť fotoaparátu každých cca 5 sekund nevydržíme příliš dlouho. Proto je nutné, aby náš fotoaparát tuto funkci převzal. Obvykle máme na výběr čtyři možnosti:

  1. Přímou podporu v originálním firmware fotoaparátu;
  2. použití „vzdáleného“ ovládání pomocí kabelu a časového spínače;
  3. ovládání z PC;
  4. použití specializovaného software přímo ve fotoaparátu (např. CHDK).

Tento článek se bude zabývat právě čtvrtou možností, tedy CHDK (Canon Hack Development Kit) a sestavením výsledného videa v GNU/Linux.

Požadavky

Jak jsem uvedl na začátku, kromě potřeby podpory fotografovat prakticky nekonečnou sérii snímků musí být dostupné relativně velké datové úložiště (SD karta) a vhodný napájecí zdroj (baterie, externí zdroj).

Kapacita datového úložiště

Kapacita SD karty je jedním ze stěžejních předpokladů snímkování pro časosběrné video. Záleží na formátu ukládaných fotografií (JPEG/RAW), kvalitě (komprese) fotografií, rozlišení a obecně rozprostření barevných složek jednotlivých pixelů fotografie (některé kompozice zabírají méně místa, některé více).

V dnešní době ale není s dostupností paměťových médií s většími kapacitami žádný problém.

Dostatečná kapacita napájecího zdroje

Abychom byli schopni nafotit velký počet záběrů, musíme mít splněnu i další z podmínek, kterou je dostatečná kapacita napájecího zdroje. Pokud jsme schopni s naším fotoaparátem nafotit pouze několik set snímků, nebude pro účely časosběrného videa tím pravým.

Můžeme si však pomoci externím zdrojem, ale také dalším nastavením fotoaparátu, jako např. vypnutím displaye v průběhu fotografování. Takto ušetřená energie může prodloužit čas fotografování až několikanásobně.

Nastavení fotoaparátu

Vlastní fotografování s sebou přináší řadu problémů, které musíme eliminovat. Jedním z nich je změna světelných podmínek během fotografování. Použitím vhodných fotografických režimů a skriptů můžeme docílit výborných výsledků. Kvalitní materiál pro časosběrné video např. východu slunce vyžaduje nemalé zkušenosti.

Pokud se nám nepovede udržet rozumně stabilní expozici, bude výsledné video „rozechvělé“ a bude blikat. Pokud to můžeme ovlivnit, snažíme se zachovat podobné světelné podmínky během celého fotografování.

Obecně můžeme shrnout základní pravidla fotografování materiálu pro časosběrné video:

  • Pevně nastavit stativ a případně zajistit závažím;
  • nastavit manuální režim;
  • nastavit ISO, clonu (souvisí s hloubkou ostrosti) a čas;
  • nastavit širokoúhlý formát (W);
  • nastavit vhodné vyvážení bílé;
  • nastavit hloubku ostrosti na nekonečno / max. clonové číslo (zejména při fotografování krajiny a vzdálených objektů);
  • vypnout stabilizaci obrazu a automatické zaostřování;
  • před fotografováním vypnout display.

Nastavení jednotlivých parametrů fotografování lze často také v jednotlivých skriptech (v CHDK).

Využití CHDK

A protože by měla být v článku alespoň nějaká zmínka o CHDK, vypíšu několik skriptů, které slouží k automatizaci procesu focení.

interval.lua

Skript je běžnou součástí software CHDK, nicméně umožňuje nastavení pouze intervalu fotografování. Veškeré další parametry musíme nastavit ručně v klasickém rozhraní fotoaparátu. Neobsahuje automatické dorovnání expozice, ISO a dalších.

Meteor Intervalometer with Dark Frame Management

Skript slouží pro fotografování noční oblohy s vyššími expozičními časy. Musíme si ale dávat pozor na maximální expoziční čas. Příliš dlouhá doba vede k rozmazání/“putování“ jednotlivých hvězd (Star Trails – viz např. Pravidlo 500) a výrazným tepelným šumem, který generuje optický snímač (CCD, CMOS).

Výhodou je podpora Dark Frame Managementu, tedy fotografování černých snímků, které slouží pro pozdější programové odstranění tepelného šumu.

Skript lze použít jak pro pozdější „naskládání“ snímků na sebe pro získání výraznějších fotografií hvězd a jejich pohybů (rozmazané čáry putujících hvězd na jediném výsledném snímku), tak pro časosběrné video.

Raw Meter Intervalometer

Můj oblíbený skript pro focení východů a západů slunce a obecně situací, kde se nám mění světelné podmínky.

Fixed Exposure Intervalometer

Skript určený zejména pro fotografování kosmických objektů pevnou expozicí. Má podobné použití jako Meteor Intervalometer with Dark Frame Management.

Ultimate Intervalometer

Skript je opravdu  „ultimátním“ všeumělem, ale díky možnostem nastavení se může jevit poměrně složitým na ovládání.

Fotografování

Vlastní fotografování je ve své podstatě jednoduchou záležitostí. Pokud máme paměťovou kartu s velkou kapacitou (kupříkladu 32 GB) a vhodný zdroj napětí, můžeme se pustit do několik hodin trvajícího procesu.

Vybereme místo, přišroubujeme fotoaparát na stativ, nastavíme parametry fotografování/skriptu, stiskneme spoušť a můžeme odejít.

Většina skriptů automaticky ukončí fotografování a vypne fotoaparát v případě, že dojde volné místo na paměťové kartě, případně je kapacita baterie příliš nízká. Pokud tedy při kontrole stanoviště vidíme zasunutý objektiv (u kompaktů – můj případ s Canon PowerShot A710 IS), máme hotovo…

Některé skripty lze nastavit tak, že při fotografování a vypnutém displayi v určitém intervalu blikne stavová LED. To je vhodné zejména pro případ, že chceme vědět, zda fotografování stále probíhá.

Při fotografování můžeme použít celou řadu filtrů, včetně přechodových a polarizačních. Musíme být ale obezřetní, jakým způsobem je použijeme, protože výsledek uvidíme až po výsledném zpracování na PC.

Zpracování na PC

Paměťová karta zaplněna a baterie vybity. Ideální čas pro zpracování pořízeného materiálu.

Dalšími kroky budou přejmenování souborů, změna velikosti fotografií, přidání libovolného textu a vytvoření vlastního videa. K tomu použiji GNU Linux a jeho příkazový řádek s několika nástroji.

Proces zpracování je rozfázován pro názornost a jednodušší pochopení.

Přejmenování souborů

Přejmenování provádíme z toho důvodu, aby na začátku názvu figurovala číselná hodnota (pořadí snímku).

Změníme velikost fotografií

Fotografování zpravidla provádíme v maximálním rozlišení fotoaparátu (pokud fotografujeme pouze za účelem vytvoření časosběrného videa, doporučuji nastavit širokoúhlý formát fotografií). V tomto kroku fotografie zmenšíme do formátu pro FullHD/1080p video. K tomu použijeme nástroj mogrify z balíku ImageMagick:

Přidáme text

Do jednotlivých obrázků můžeme přidat text, např. časové razítko. Nástroj convert opět z balíku ImageMagick:

Výsledné obrázky mohou vypadat podobně jako následující:

Vytváříme video

Posledním krokem je vytvoření vlastního videa – 25 snímků za sekundu. K tomu použijeme nástroj ffmpeg:

Video bude velice velké, protože jsme použili „bezeztrátovou“ kompresi (obrázky jsou sami o sobě komprimované). Pouze jsme pospojovali všechny obrázky do jednoho souboru bez aplikace dalších video kompresních algoritmů.

Nyní je vhodné video dále upravit např. v Kdenlive, přidat zvukovou stopu a renderovat za použití nějakého rozumného kodeku (např. HEVC).

Několik výpočtů

Počet fotografií p za minutu pro interval i:

p = i * 60

Příklad: Zvolme interval 5 sekund; za jednu minutu nafotíme 300 fotografií.

Výsledná délka trvání videa l (sekund) pro počet fotografií p při s snímcích za sekundu (snímkovací kmitočet):

l = p / s

Příklad: Pro 4000 fotografií zvolíme snímkovací kmitočet 25 snímků/s; výsledné video bude trvat 160 sekund, tedy 2 minuty a 40 sekund.

Výsledné video

Renderované video může vypadat následovně (bez zvuku):

Bylo nafoceno celkem 1 450 fotografií 7,1 Mpx (3072×2304) s intervalem 5 s; cca 2,1 MB na fotografii (celkově 3,13 GB dat); výsledné „bezeztrátové“ video HDready/720p má velikost 260 MB > po renderování kodekem H264 (MPEG-4 AVC) je výsledná velikost 12 MB.

Při fotografování nebyl použit žádný filtr. Skript standardní interval.lua s ruční změnou ISO a clonového čísla. Ano, i s takovým „materiálem“ lze vytvořit celkem ucházející časosběrné video.

Závěr

Vytváření časosběrného videa se na první pohled zdá být jednoduchou záležitostí, nicméně opravdu kvalitních výsledků lze dosáhnou pouze patřičnou pílí a zkušenostmi. Nejzáludnější na procesu je nutnost dopředu předvídat změny světelných podmínek a okolního prostředí jako celku. Výsledek totiž nevidíme okamžitě, ale až po následném zpracování na PC.

Napsat komentář