Time lapse con GNU/Linux e una DSLR Canon 20DA (parte seconda)

Astronomia Fotografia Informatica

Proseguiamo con questo articolo la discussione su come ho realizzato il video time lapse astronomico che trovate in questa pagina. Nella prima parte abbiamo visto i preparativi e i passaggi necessari per l'acquisizione, in questa parte parleremo delle tecniche per l'elaborazione delle immagini, per il montaggio e per la postproduzione del video, tutto rigorosamente realizzato con GNU/Linux e software libero, naturalmente!

Elaborazione e creazione del video e della "strisciata"

Per l'errore che avevo fatto nel mio script, le riprese sarebbero dovute finire dopo un tempo circa doppio (8h) di quanto mi aspettavo (4h), per cui verso le 4 meno dieci ho interrotto manualmente lo script digitando Ctrl-C sul terminale.

Adesso che abbiamo le foto, dobbiamo controllarle, eventualmente regolarle e assemblarle nel nostro video. Per riuscire senza troppi mal di testa, è fondamentale essere ordinati. Io ho creato una cartella chiamata sequenza, dentro la quale ho creato tre sotto-cartelle: light per le immagini acquisite, dark per i dark frame acquisiti ed elaborate per i frame ritoccati.

Come prima cosa controllo le foto, sfogliandole con Gwenview. Si può scorrere le immagini in sequenza premendo la barra spaziatrice, ed tornare indietro premendo backspace. Come vedete dal video, abbiamo beccato le ombre di qualche curioso, un satellite artificiale, visibile in tre fotogrammi, e una stella cadente, più luminosa di Giove, che vedete nell'immagine di apertura.


Gimp per la preparazione delle immagini in time lapse

Ho poi preso un'immagine rappresentativa, e l'ho aperta con Gimp, per vedere se c'era qualche regolazione che potesse migliorarla un po'. Ho preferito fare solo piccole modifiche, per rendere più visibili le stelle e per regolare il bilanciamento del bianco. Per far questo, ho usato lo strumento livelli, modificando il punto di bianco e il gamma. Mi sono annotato i valori di regolazione usati. Poi sono tornato alla finestra livelli, ed ho regolato il bilanciamento del bianco cliccando sul "contagocce" grigio e poi cliccando su un punto del cielo che mi aspettavo fosse di colore neutro. In questo caso, il canale principale ("valore") rimane invariato, mentre i canali dei singoli colori cambiano il loro valore di gamma. Mi sono annotato questi valori di gamma per i canali RGB.

Ad ogni immagine dovrò sottrarre il dark frame e andranno fatte le stesse regolazioni che ho appena visto.

Calcoliamo dunque il master dark frame come media dei singoli frame con il comando:

convert dark/*.JPG -average master-dark.png

Correggiamo per il dark frame e i livelli di ogni immagine con il comando:

convert master-dark.png light/immagine.jpg -compose minus -composite -level 0%,94%,1.2 -gamma 0.98,1.00,1.13  elaborate/immagine.png

I parametri usati per l'opzione level sono quelli trovati prima per i livelli in Gimp, mentre i parametri usati per l'opzione -gamma sono quelli trovati quando abbiamo regolato il bilanciamento del bianco. Come vedete, le immagini corrette vengono salvate nella cartella elaborate.

Per montare le immagini in un video useremo ffmpeg. ffmpeg richiede che i frame da montare abbiano un numero progressivo del tipo 0001.png, 0002.png, 0003.png, ... Per farlo contento dobbiamo rinominare i file elaborati, in modo che i nomi soddisfino questo modello. Lo si può fare in vari modi, anche tramite interfacce grafiche come krename (anche l'ottimo digikam include uno strumento per rinominare file), ma visto che è un'operazione che dobbiamo ripetere ogni volta, la cosa più comoda è farlo con un comando che possiamo mettere dentro uno script:


ls *.png | nl -nrz -w5 | while read newname oldname
do
   mv "$oldname" $newname.png
done

Spostiamoci infine nella cartella elaborate. il comando per creare un video 720p a 25 fps è:

ffmpeg -r 10 -i '%05d.png' -r 25 -s hd720 -vcodec mpeg4 -qscale 1 -y ../video-timelapse.mp4

Non aggiungerò troppi dettagli su questo argomento, ne ho già parlato nell'articolo Fotografia time lapse con Linux; l'unica cosa che penso sia importante ricordare è che regolando il valore del parametro che segue il primo "-r" si può controllare la velocità del video: se lo si diminuisce il video rallenta, se aumenta il video accelera. Sì, è vero, con questa conversione i fotogrammi vengono un poco deformati: forse sarebbe stato meglio ritagliarli prima in modo che il formato di ingresso avesse le stesse proporzioni di quello di uscita...

Ovviamente non comporremo questi comandi a mano ogni volta, ma li useremo in automatico inserendoli in uno script come questo:

#!/bin/bash
# data: 14/06/2010
# autore: gerlos - [email protected]
#   Prepara le immagini della sequenza per il montaggio nel video, applicando il
# dark frame e regolando i livelli di colore. Poi li mette insieme in un video.
#   Assume che le immagini originali siano nella dir "light", che i dark frame
# siano nella dir "dark", e che ci sia una dir "elaborate" per le immagini
# ritoccate.
#   Usa il formato PNG nei passi intermedi perché lossless
#   Richiede: imagemagick, ffmpeg

# fa la media dei dark dark frame
convert dark/*.JPG -average master-dark.png
# per ogni immagine nella cartella light, sottrae il master dark frame e
# corregge i livelli (questa e` la fase piu` lunga)
for i in `ls light`
do
  echo "elaboro l'immagine $i..."
  convert master-dark.png light/$i -compose minus -composite \
                      -level 0%,94%,1.2 -gamma 0.98,1.00,1.13  elaborate/$i.png
done

# ci spostiamo nella dir che contiene le immagini elaborate e le rinominiamo con
# numeri consecutivi, per ffmpeg
cd elaborate
ls *.png | nl -nrz -w5 | while read newname oldname
do
  mv "$oldname" $newname.png
done

# Uniamo le immagini per creiare una "strisciata"
# Cominciamo creando una immagine di sfondo, nera e grande quanto le altre foto
# Impostiamo l'estensione in lettere maiuscole, cosi` questo file non viene
# elencato nel prossimo ciclo e non viene usato da ffmpeg.
convert -size 1728x1152 xc:black 00000.PNG

# aggiungiamo in modalita` "illumina" ogni immagine della sequenza all'immagine
# di sfondo, inizialmente nera (illumina aggiunge un pixel della seconda
# immagine all'immagine composta solo se e` piu` luminoso di quello della prima
# immagine, così non saturiamo il fondo cielo, pur aggiungendo le stelle)
for i in `ls *.png`
  do convert 00000.PNG $i -compose lighten -composite 00000.PNG
done

#   Crea un video per DVD PAL (bassa qualita`, massima compatibilita`)
# ffmpeg -i '%05d.png' -target pal-dvd -y ../video-timelapse.mpg

#   Creiamo un video MPEG4 HD 720p (1280x720), ma a 25 Hz (non a 50 Hz) (alta
# qualita`).
#   Cambiando il valore del primo -r si rallenta (se minore del secondo) o si
# accelera (se maggiore del secondo) il video.
#   L'opzione -s hd720 imposta il formato del video (deformiamo un pochino le
# immagini, forse e` meglio fare un crop prima?).
#  L'opzione -vcodec mpeg4 imposta il codec di compressione
ffmpeg -r 10 -i '%05d.png' -r 25 -s hd720 -vcodec mpeg4 -qscale 1 \
                                                      -y ../video-timelapse.mp4
exit

I commenti generosi dovrebbero chiarire ogni dubbio. Al termine dell'esecuzione dello script (sul mio MacBook Pro ha impiegato circa un quarto d'ora) dovrei trovarmi con le immagini elaborate e il video video-timelapse.mp4 nella cartella corrente.

Nello script ho aggiunto anche un comando per generare una "strisciata", unendo tutte le immagini in un singolo fotogramma. Ecco il risultato:

Le traiettorie delle stelle sono tratteggiate perché c'è quel tempo morto di circa 30 sec tra uno scatto e l'altro; ci sono inoltre due interruzioni dovute a un problema di comunicazione che ha richiesto lo spegnimento della reflex e alla batteria scarica, che è stata sostituita.

Postproduzione

Ok, abbiamo il nostro video, abbiamo avuto la fortuna di fotografare una spettacolare meteora, e abbiamo fatto una bella strisciata. Vogliamo montare il tutto in un video con titoli, musica e tutto, da mostrare agli amici e caricare su youtube!

Per far questo ho usato kdenlive, molto utile e semplice da usare.



Postproduzione di Kdenlive

Non vi annoierò su come usarlo: è piuttosto intuitivo, sul sito ci sono numerosi video tutorial in inglese e in rete c'è anche della documentazione in italiano su wikibooks.

Prima di chiudere parliamo dell'annoso problema della colonna sonora: quando aggiungiamo musica ai nostri video, spesso lo facciamo in violazione dei diriti d'autore, che spesso (ma non sempre) proibiscono l'uso di brani musicali per scopi diversi dall'ascolto privato. Qualcuno pensa di evitare il problema inserendo brani di musica classica (visto che gli autori sono spesso morti da più di 80 anni), ma a volte viene considerata comunque una violazione del diritto d'autore, visto che esistono diritti anche sull'interpretazione o arrangiamento che può aver fatto un musicista.

Anche a me sembra un'idiozia, ma penso che le regole vanno comunque rispettate. Come fare? Esistono comunità online dove musicisti indipendenti (spesso molto in gamba) pubblicano i propri lavori con licenze libere, che permettono a me, a te e a tutti di usare la loro musica per i nostri lavori. Non che questi autori rinuncino interamente al diritto d'autore: semplicemente ci danno il permesso di usare la loro musica, fintanto che rispettiamo alcune regole, come citare l'autore originale, ad esempio.


Jamendo, aprite le orecchie Jamendo è una di queste comunità: possiamo scoprire nuovi autori e nuova musica, scaricarla gratuitamente, e riutilizzarla per i nostri lavori, purché nel rispetto delle licenze Creative Commons scelte di volta in volta dagli autori. Per esempio, il brano ambient "Lagoon", che fa da colonna sonora al mio video time lapse, è composto da David Schombert, che ci dà il permesso di usare la sua musica, purché si riconosca la sua paternità, non si modifichi il brano e non lo si usi per scopi commerciali.

Ed ecco il risultato del nostro lavoro!

Cieli Scuri a tutti!


Questo articolo ed i contenuti ad esso associati (fatta esclusione per il logo di Jamendo) sono rilasciati con licenza Creative Commons Attribuzione-Condividi allo stesso modo. Tutto il materiale dovrebbe essere disponibile anche all'indirizzo http://gerlos.altervista.org/pinguino-fotografo/video-time-lapse/time-lapse-canon-20da-2

Trackback URL for this post:

http://gerlos.altervista.org/trackback/476

commenti

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Allowed HTML tags: <a> <em> <strong> <del> <cite> <code> <img> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Linee e paragrafi vanno a capo automaticamente.
  • Insert Flickr images: [flickr-photo:id=230452326,size=s] or [flickr-photoset:id=72157594262419167,size=m].
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Maggiori informazioni sulle opzioni di formattazione.

CAPTCHA
Per provare che sei un visitatore umano, rispondi a questa domanda. È per evitare l'inserimento di messaggi spam.
Image CAPTCHA
Enter the characters shown in the image without spaces, also respect upper and lower case.