uno script per sovrapporre dati gps su un video

Se avete un video di una uscita in bici o qualsiasi altra attività che avete anche tracciato con un computer da bicicletta o un gps o un’applicazione di fitness che produce un file tcx   usando questo script  avrete il video originale con in sovraimpressione la telemetria ( velocità, cadenza, altezza, battiti cardiaci, etc ) contenuta nel file tcx.

fotogramma con dati gps

La versione attuale a riga di comando è molto spartana, produce un file video senza audio ( il concetto è che poi comunque verrà usato come input in un programma di video-editing ), comunque il risultato non è male.

Il funzionamento è abbastanza semplice:in ingresso abbiamo il file video, il file tcx con la sessione e una stringa di sincronizzazione dati tcx->video.

La stringa è nel formato: <data iso>@<tempo> che in pratica significa che nel video al tempo specificato in <tempo> sono le ore specificate in <data iso>.

Il file di ingresso viene dunque scomposto nei singoli fotogrammi che lo compongono, per ogni fotogramma viene chiamata una funzione php con il corrispondente record del file tcx ( trackpoint ). Dato che ci sono più fotogrammi che trackpoint – solitamente i trackpoint sono ogni secondo e di fotogrammi ce ne sono 25/30 al secondo –  alla funzione verranno passati eventualmente dei valori interpolati relativi a velocità, cadenza, battiti cardiaci e altezza, per avere maggiore fluidità nella strumentazione virtuale.

La funzione che può essere personalizzata semplicemente combina il fotogramma con il trackpoint e restituisce in uscita un file svg.

Il file svg verrà renderizzato per produrre il rispettivo fotogramma di uscita.

Terminata l’operazione, tutti i fotogrammi renderizzati con la telemetria verranno usati da ffmpeg per produrre la traccia video.

Consiglio  di installare l’ultima versione di ffmpeg, possibilmente compilandola da sorgenti seguendo esempio questa guida.

 

Per quanto riguarda lo script, non c’è bisogno di nessuna compilazione dato che è in php, trovate i sorgenti su github

Esempi di utilizzo:

./annotator.php  --template=elevation -i  P1030915-stabilized.mp4 -g "2014-07-07T05:01:21Z@00:00:03" -t sessione.tcx --ffmpeg-outfile-options="-vcodec libx264 -b:v 8000k -profile:v baseline -level 3.1" -o P1030915-annotated.mp4

./annotator.php --help  per avere la lista delle opzioni

Qualche video fatto con l’annotator:

ciclabile Saxa Rubra, via Flaminia