Sissejuhatus videokaardistamisse: erinevus redaktsioonide vahel
| 214. rida: | 214. rida: | ||
* Kuigi kirjade järgi peaks olema võimalik rajalogi peal klikkida, et videos õigesse kohta liikuda, siis reaalselt ei teinud see klikkimine mitte midagi. Võib-olla eeldab mingite muude nüanssidega GPX faili? | * Kuigi kirjade järgi peaks olema võimalik rajalogi peal klikkida, et videos õigesse kohta liikuda, siis reaalselt ei teinud see klikkimine mitte midagi. Võib-olla eeldab mingite muude nüanssidega GPX faili? | ||
* Sama nimega GPX ja MOV/MP4 failid avab ilusti, seostab ära ja kaardil täpp ka liigub vastavalt video edenemisele. | * Sama nimega GPX ja MOV/MP4 failid avab ilusti, seostab ära ja kaardil täpp ka liigub vastavalt video edenemisele. | ||
== Andmete konverteerimine == | == Andmete konverteerimine == | ||
Redaktsioon: 23. mai 2018, kell 12:55
Sissejuhatus
Tipikate Rattamatka korraldamise hulka kuuluvad eelretked matka piirkonda, mida viimastel aastatel on iga matka korraldamisel tehtud 7-10 päeva jagu. Et eelretkedel kogutud info võimalikult efektiivselt tallele panna, siis on omal kohal ka videokaardistamine, st videopildi ja GPS logi talletamine üheskoos. Selline lahendus võimaldab läbi käidud teid ja radu hiljem arvutis sarnaselt Google Street View'le vaadata.
Tipikate Rattamatkaklubi jaoks sai teema alguse 2016. aastal, mil hankisime autokaamera Prestigio 560GPS. 2017. aastal kasutasime lisaks sellele metsaradade kaardistamiseks GoPro seikluskaamerat (TODO: täpsem mudel) ning 2018. aastal testisime erinevaid Garmin seikluskaameraid.
Kaamerad
Sissejuhatus
Kaamera valikul tasub eelistada neid mudeleid, millel ka GPS endal olemas on. Nendest tasub omakorda eelistada neid mudeleid, millel:
- Rajalogi pannakse otse videofaili sisse või tekitakse igale videofailile täpselt vastav rajalogi fail (GPX, NMEA vms). Sellised valikud, kus kaamera küll talletab rajalogi, aga eraldi failides ja nende piirid ei pruugi kattuda 100% videofailide omadega, on kehvemad, sest tekitavad hilisema andmetöötluse vajaduse ning võib olla keeruline rada ja videot päris sünkrooni saada. Näiteks Prestigio GPS560 on selles mõttes hea kaamera, et rajalogi integreeritakse MOV failide sisse, aga Garmin Virb X nii hea ei ole, sest .FIT failide ajalised piirid ei kattu alati videofailide omadega.
- Rajapunktid talletatakse piisava tihedusega, näiteks kord sekundis. Ja seda isegi paigal seismise ajal. See aitab videot ja rajalogi hästi sünkroonis näidata.
Samuti võiks kaamera valikul üks oluline kriteerium olla see, et ta toetaks võimalikult suurt mälukaarti - andmemahud on selles valdkonnas väga suured.
Põhimõtteliselt on videokaardistamiseks võimalik kasutada ka ilma GPS-ita kaameraid ning talletada GPS logi eraldi seadmega (GPS, nutitelefon, ...). Kindlasti on sel juhul vajalik aga täiendav samm edasisel andmetöötlusel, et need andmed omavahel kokku panna. Mõned tähelepanekud, mida tasub jälgida, kui rajalogi talletatakse eraldi seadmel või kui kaamera küll salvestab rajalogi, aga selle failide piirid ei kattu 100% videofailide piiridega:
- Kui kaameral GPSi ei ole, siis tuleb tema kell ise võimalikult täpselt õigeks panna ning veenduda, et kaamera kirjutaks videopildi sisse ka video loomise aja. Kui GPSiga mudelitel püsib kell õige tänu GPSilt saadud infole, siis ilma GPSita mudelitel tuleb selle eest ise hoolt kanda.
- On võimalik skripti abil võtta ette sõltumatu GPS logi ja tükeldada see selliselt, et igale videofailile vastaks samanimeline GPX fail. Sellist kooslust oskab ilusti näidata näiteks registratorviewer. Küll aga on sellega seotud veel kaks uurimisülesannet:
- Tasub mingit pidi veenduda, et GPS logis oleks punkte võimalikult tihedalt, näiteks kord sekundis. Vastasel juhul jäävad videofailide üleminekukohtadele augud, mida registratorviewer ei pruugi suuta õigesti ära täita ning seeläbi ei ole video ja rajalogi päriselt sünkroonis. Kui GPS seadmest, kaamerast või telefonist endast tihedate punktidega rajalogi kätte ei saa, võib uurida ka võimalust, kuidas GPS logi skripti täiendada nii, et registratorviewer rahule jääks (punkte juurde feikida). Kui rada talletada näiteks OruxMapsiga, siis see kipub seistes või väiksel kiirusel liikudes punkte üsna harvalt talletama. Kas see on seadistatav?
- Kui on vaja rajalogi käsitsi töödelda, siis on selgunud, et mingitel juhtudel rajapunkte kustutades (näiteks Garmin BaseCamp'is) tekivad kustutatud kohtadele registratorviewer-is hallid sirged rajalõigud - need viitavad, et rajalogi pole piisavalt hea. Kuigi see väga palju ei häiri, siis tasuks mingi hetk uurida, kas rajalogist tuleks punkte kustutada mingil muul viisil või on tegemist lihtsalt olukorraga, kus punkte on registratorviewer-i jaoks liiga vähe.
Prestigio 560GPS
Tegemist on autokaameraga, mida oleme alates 2016. aastast kasutanud Tipikate Rattamatka korralduse käigus eelretkede videokaardistamiseks. Mõned olulised märksõnad:
- Kaamera toetab kuni 64 GB mälukaarte ning nii FAT32 kui exFat failisüsteeme.
- Kaameral on olemas GPS. Asukoha info talletatakse otse MOV failide sisse, st eraldi rajalogi faile ei ole. RegistratorViewer nimeline tarkvara oskab neid faile koos asukoha infoga näidata, samuti on võimalik seal GPX faile eksportida. Asukohainfo saab eksportida ka exiftool nimelise tarkvara abil.
- GPS ei asu füüsiliselt mitte kaamera enda sees, vaid hoidikus, mille abil kaamera auto esiklaasile kinnitatakse. Seega kui on soov videole ka GPS info juurde saada, peab kaamera kindlasti selles kinnituses olema ning teda tuleb selle kinnituse kaudu ka toita.
- Kaameral on väike aku ka endal sees, aga selle kestvus on minutites.
- Kaameral on mõned tarkvara bugid, mille tõttu ta mõnikord (pigem harva) hangub. Sel juhul on võimalik, et teda ei saa taaskäivitada muul viisil kui eemaldada toitejuhe ning oodata, millal ta enda aku tühjaks saab.
- Kaamera tarbib USB pordist umbes 0,5A.
- Tasub rõhutada, et oma olemuselt sobib see kaamera just auto esiklaasile, mitte näiteks metsaradade või turismitalude kaardistamiseks jalgsi või jalgrattaga. Seda nii oma ehituse poolest, mis pole ei veekindel ega muidu robustne kui ka seetõttu, et vajab tööks välist toidet ning esiklaasi kinnitust GPS toimimiseks.
- Autos kasutades tasub eelistada kindlasti lahendust, kus filmimine käivitub ja seiskub koos autoga. See tähendab toite võtmist näiteks sigaretisüütajast ning kaamera vastavat seadistamist. Kaamera kasutamine eelretkel peaks toimuma põhimõttel "paigalda ja unusta", st et ei oleks vaja manuaalselt teda käivitada ja seisata. Vastasel juhul on tulemuseks see, et mõnikord ununeb ta käima panna, teisel juhul filmitakse maha aga suur hulk seisuvideosid.
- Filmitav andmemaht seadistuse "1920x1080, 25 fps, kvaliteet super fine" korral on umbes 7,5 GB/tunnis. See tähendab, et 64 GB mälukaardile mahub veidi üle 8 tunni materjali. Üldiselt on see tavapärase eelretke korral igati piisav, et üks päev ühe mälukaardiga hakkama saada (eeldusel, et kaamera pauside ajal automaatselt seiskub ning pause päeva jooksul ikka on).
- Oleme kasutanud kaamerat režiimis, kus ta filmib 3-minutilisi klippe. Kui mälukaart täis saama hakkab ning uus klipp enam ära ei mahu, siis kirjutatakse järjest kõige vanemaid klippe üle. Kahjuks ei ole sel kaameral mingit indikatsiooni, kui täis mälukaart on või kaua veel filmida saab. Kui rääkida autokaamera eesmärgist tema kõige tavapärasemas rakenduses (ehk õnnetuste jäädvustamine), siis pole mälukaardi täituvus kasutajale oluline ning ilmselt seetõttu pole antud funktsiooni implementeerimine tootjale ka vajalik tundunud.
- Kaamerat on võimalik seadistada salvestama ka pikemaid klippe kui 3 minutit, samuti lülitada tsükliline salvestamine välja. Viimasel juhul selgus, et kaamera filmib siis 25-minutilisi klippe, kusjuures sel juhul mälukaardi täitudes filmimine peatub ning vanu faile üle ei kirjutata.
- Videokaardistamise puhul tasub kaameral lülitada välja need režiimid, kus õnnetuse (põrutuse) korral käesolev videofail teise (püsivasse) kausta talletatakse. Meie soov on talletada igal juhul kogu video ning hiljem võib olla ebamugav faile erinevatest kaustadest kokku otsida. Praktilised katsed näitasid, et august läbi sõites saab kaamera aeg-ajalt signaali, et "see on nüüd püsivat talletamist vääriv koht", selle peale liigutatakse käesolev videofail teise (püsivasse) kausta ning meie puhul tekitaks see segadust.
- 15.04.2018 ilmnes probleem SanDisk 32GB mälukaardiga. See asi vajab veel üle testimist, aga tol korral andis kaamera selle mälukaardiga vea "SD card not optimal" ja tahtis formattida. Dialoogi aknast ei saanud siiski valida ei "jah" ega ka "ei". Kui menüü kaudu ära formattida, siis esialgu toimis, aga mingi hetke pärast oli sama viga tagasi ning kokkuvõttes ühtegi videofaili ka vahepeal ei tekkinud.
GoPro
Käesolev peatükk räägib GoPro konkreetsemast mudelist (vajab täpsustamist), mida kasutas Harri 2017. aasta Tipikate Rattamatka metsaradade kaardistamiseks jalgratta peal. Kaameral on endal olemas ka sisse ehitatud GPS, kuid esialgu tundus, et meil sellest infost erilist kasu ei ole. Nimelt ei leidnud me tarkvara, mis kaamera poolt talletatud MP4 failidest asukohainfo kätte saaks ning seda kaardil näidata oskaks. Ainsa viite sellele, et asukohainfo seal failides kuidagi üldse talletatud on, andis 2017. aastal racerender tarkvara, mis oskas kuvada rajajoone video peale overlay kihina, mitte aga eraldi kaardil näidata.
Nagu selgus 2018. aasta aprillis, siis ei olnud probleem tingitud siiski sellest, et GoPro oma GPS info kuidagi eriliselt ära peitnud oleks. Asi on lihtsalt selles, et videofailidesse GPS info lisamine ei ole kuidagi standardiseeritud ning igal tootjal on selleks oma protokoll. GoPro poolt tehtud MP4 failidesse integreeritud asukohainfo õnnestus 2018. aasta aprillis saada kätte exiftool nimelise utiliidiga ning seda on täpsemalt kirjeldatud allpool.
Et GoPro-ga filmitud materjali juba 2017. aastal videokaardistamiseks kasutada saaks, sai tol korral GPS seadmega talletatud ka eraldi rajalogi ning see hiljem videopildiga kokku viidud. See oli kokkuvõttes aga ebamõistlikult suur pingitus (mida on samuti kirjeldatud allpool).
NB! Nagu selgus, siis ei toimi selle GoPro GPS autos sees ja seda vaatamata sellele, et kaamerat hoiti ühe teelõigu sõitmisel filmimiseks esiakna juures. Seega tasub autos kindlasti ka GPS seadme või nutitelefoniga lisaks rajalogi talletada!
GoPro Fusion
Tegemist on ühe perspektiivika kaameraga, mida tasuks proovida 360-kraadise video talletamiseks. Võrreldes teiste kaameratega tundub üks omapära olema, et seal on vajalik kahe U3 klassi mälukaardi olemasolu, mis tundub olema tingitud andmemahust ja kiirusest. Kas tegemist on mingi RAID0 lahendusega?
Garmin Virb X
Tegemist on ühega kolmest Garmini seikluskaamerast, millel olemas ka sisse ehitatud GPS. Tegemist on neist kõige vanema mudeliga. Sellest kaamerast on eraldi kirjutatud siin.
Garmin Virb Ultra 30
Tegemist on mõneti sarnase mudeliga Garmin Virb X-le, kuid uuema mudeliga. Mõned asjad on lisandunud, mõned edasi arendatud ja mõned ka eemaldatud. Selle kaameraga meil seni veel kogemust ei ole, kuid selle testimine on millalgi kindlasti plaanis.
Garmin Virb 360
Tegemist on kaameraga, mis võimaldab 360-kraadise pildi talletamist. Siiski on senised katsed näidanud, et pildi kvaliteet on üsna kehv, aga andmemaht see eest hiiglaslik (36 GB/ tunnis) :) Täpsemalt on sellest kaamerast kirjutatud siin.
Nutirakendused
Sissejuhatus
Üks võimalus metsaradasid kaardistada on telefonide nutirakendustega. Täpsemalt vajab testimist, milline rakendus suudaks autokaamerale sarnaselt samuti GPS infot digikujul talletada (st et ei oleks ainult pildi overlay, millega midagi peale hakata ei ole).
Ubipix
Ubipix on tasuta rakendus telefonidele, mis väidetavalt salvestab geotag'itud videot. Olemas on ka online keskkond, kuhu neid andmeid üles laadida ja tiimis analüüsida saab, aga hinna ja mahu suhe on (vähemalt rattamatkaklubi tegemiste juures) vastuvõetamatu.
CamOnRoad
2016. aastal said osad metsarajad filmitud üles Android rakendusega CamOnRoad. Ja kuigi esialgu tunnetuslikult tundus, et rakendus võiks talletada ka GPS info, siis reaalselt seda seost leida pole suutnud. Ka katse 2018. aasta mais exiftool nimelise utiliidiga andis tulemuseks tühjad GPX failid.
Rakendus talletab videfailid MP4 kujul, mingit eraldi rajalogi kuskilt välja ei paista.
Kuna videoga paralleelselt sai talletatud siiski ka OruxMaps rakendusega rajalogi, siis sai 2018. aasta mais tehtud katse neid kokku siduda. Selgus, et:
- Video alguse ajatempel talletatakse failinimesse, arvestades ajavööndi aega. Faili nimi on kujul VID_DD.MM.YYYY_HH_MM_SS.mp4.
- Faili sisse Create Date väljale kirjutatakse video lõpu aeg. Tundub, et see võib olla ka veel aeg kuni paar sekundit peale video lõppu. Lisaks kirjutatakse see aeg UTC ajana, kuid seda tõlgendatakse vööndiajana.
Eelnevast lähtudes tasub nende videode puhul lugeda ajatempel pigem faili nimest.
Selleks, et lõigata OruxMaps rajalogi vastavalt videofailidele, tuleks esmalt anda järgmine käsk:
gpsbabel -t -i gpx -f all.gpx -x nuketypes,waypoints,routes -x track,pack,start=2000 -x interpolate,time=1 -o gpx -F all_interpolated.gpx
See teeb järgmist:
- Viskab välja huvipunktid ja marsruudid, jättes alles ainult rajalogi.
- Ühendab kõik rajasegmendid üheks segmendiks kokku.
- Viskab välja rajapunktid, mille ajatempel on varasem kui aasta 2000. Selle punkti suurem mõte on visata välja ilma ajatemplita rajapunktid.
- Interpoleerib rajapunkte juurde, nii et kogu ajavahemik oleks 1-sekundise intervalliga kaetud.
Nüüd saab rajalogi tükeldada vastavalt videofailidele:
#!/bin/bash
EXTENSION="mp4"
while IFS= read -r -d '' -u 9
do
DATESTR=(${REPLY//[._]/ })
CREATEDATE=`date --date="${DATESTR[3]}-${DATESTR[2]}-${DATESTR[1]} ${DATESTR[4]}:${DATESTR[5]}:${DATESTR[6]}" +"%s"`
DURATION=`exiftool -S -s -n -trackduration "$REPLY" | cut -d'.' -f1`
STARTDATE=$(($CREATEDATE))
ENDDATE=$(($CREATEDATE + $DURATION + 1))
STARTSTR=`date -u -d @"$STARTDATE" +"%Y%m%d%H%M%S"`
ENDSTR=`date -u -d @"$ENDDATE" +"%Y%m%d%H%M%S"`
gpsbabel -t -i gpx -f all_interpolated.gpx -x track,start=$STARTSTR,stop=$ENDSTR -o gpx -F "$(basename "$REPLY" .$EXTENSION)".gpx
done 9< <( find . -type f -iname "*.$EXTENSION" -print0 )
2016. aastal said videod talletatud portrait režiimis, mis pole kindlasti kõige sobivam valik. Selgus, et füüsiliselt talletatakse pilt ikkagi landscape režiimis, lihtsalt EXIF infosse lisatakse Rotation=90. Tulemuseks on see, et osad meediapleierid näitavad videot õigesti, osad mitte. VLC Player näitab õigesti, registratorviewer aga pööratult. Kõige lihtsam viis video ümber kodeerimiseks on ffmpeg, mille uuemad (2015+) versioonid teevad pildi automaatset pööramist lausa vaikimisi. Ehk siis pilt kodeeritakse ringi vastavalt EXIF info rotation väljale ning rotation väli ise keeratakse nulli. Kõik kaustas olevad MP4 videod keerab õigeks järgmine skript:
#!/bin/bash
EXTENSION="mp4"
mkdir -f out
while IFS= read -r -d '' -u 9
do
ffmpeg -i $REPLY -c:a copy out/$REPLY
done 9< <( find . -type f -iname "*.$EXTENSION" -print0 )
Tundub, et see pole registratorviewer-i jaoks küll hädavajalik, aga videofailide sees olevad ajatemplid saab korda seada järgmise skriptiga:
#!/bin/bash
EXTENSION="mp4"
while IFS= read -r -d '' -u 9
do
DATESTR=(${REPLY//[._]/ })
DATESTR2="${DATESTR[3]}:${DATESTR[2]}:${DATESTR[1]} ${DATESTR[4]}:${DATESTR[5]}:${DATESTR[6]}"
exiftool "-CreateDate=$DATESTR2" $REPLY
done 9< <( find . -type f -iname "*.$EXTENSION" -print0 )
Nagu ülal öeldud, siis vaikimisi olid CamOnRoad poolt tehtud failides nendel väljadel video lõpu ajad (või isegi sekund-paar peale video lõppu) ning lisaks nullis video pööramine need päris ära.
Video ja kaardi vaatamine
Sissejuhatus
Tundub, et kõige olulisem ja keerukam teema, mis videokaardistamist puudutab, on PC poolne tarkvara. Erinevaid lahendusi videopildi ja GPS info kaardil kuvamise jaoks on, aga igaühel neist on omad probleemid.
RegistratorViewer
Kuigi tegemist on tarkvaraga, mida juba mõnda aega pole edasi arendatud, millel on omajagu puuduseid ning mis ei arene edasi ka tulevikus, on tegemist hetkel kõige põhilisema tarkvaraga, mida videokaardistatud materjali vaatamiseks kasutame. Selle tarkvara arendaja hukkus liiklusõnnetuses, tarkvara lähtekoodi ta teadaolevalt avaldanud ei olnud ning tõenäoliselt see kuskilt ka enam välja ei ilmu.
Selle tarkvara kohta ei ole olemas ka erilist spetsifikatsiooni, seega talletame tuvastatud asjaolud siin.
Tarkvara suudab (seni teadaolevalt) seostada videopilti ja rajalogi kahel viisil:
- MOV failidesse integreeritud rajalogi. Näiteks autokaamera Prestigio 560GPS oma. Sellega seonduvalt mõned täiendavad tähelepanekud:
- Suuremate andmemahtude korral (10 tundi videomaterjali ja rohkem) on videofailide avamine väga aeglane. Veel suuremate mahtude korral (mitukümmend tundi) jookseb rakendus kokku. Seega kuigi autokaamera MOV failide avamine selles rakenduses on iseenesest lihtne ja mugav, siis suuremate andmemahtude korral tasub eelistada varianti, kus rajalogi on talletatud eraldi failidena.
- Rakendus oskab MOV failidesse integreeritud rajalogi ka GPX formaati eksportida.
- GoPro kaamera poolt talletatud MP4 failidest RegistratorViewer rajalogi üles leida ei oska.
- Eraldi faili talletatud rajalogi. Tundub, et põhiline viis videofaili ja rajalogi faili seostamiseks on faili nimi - igale videofailile peab vastama samanimeline rajalogi fail (mis erineb ainult faili laiendi poolest). Täiendavad tähelepanekud:
- Testitud on, et RegistratorViewer leiab rajalogi üles nii NMEA kui GPX failidest. Tõenäoliselt on toetatud formaate rohkem. NMEA formaadis talletas rajalogi 2016. aastal kõige esimesel eelretkel kasutatud autokaamera (mille mudel on hetkel teadmata).
- Kui rajalogi sisaldab (rakendusele loetaval kujul) nii videofail kui ka on olemas paralleelne eraldi fail, siis kasutab RegistratorViewer videofaili integreeritud infot. Seega kui on soov suurte andmemahtude korral teha nii, et RegistratorViewer tõesti kasutaks eraldi rajafaile, siis tuleb mitte ainult rajalogi videofailist eksportida, vaid see algsest videofailist ka kustutada.
Tundub, et kui registratorviewer kasutab videofaile ja nendele vastavaid samanimelisi rajalogisid (GPX, NMEA, ...), siis on sünkroniseerimise loogika järgmine:
- Kui videofaili ajaline piir kattub GPS logis olevate ajatemplitega kasvõi osaliselt, siis seotakse info reaalselt filmitud / talletatud kellaaja järgi. Tõenäoliselt kasutab registratorviewer selleks videofaili sees olevat Create date välja, aga see tuleks veel üle testida.
- Kui videofaili ajaline piir ei kattu GPS logis olevate ajatemplitega (näiteks kui videofaili on hiljem töödeldud), siis eeldatakse ilmselt, et esimene GPS ajatempel vastab esimesele hetkele videos. Kas see ka täpsemalt võttes nii on või on mingeid erisusi, vajab veel uurimist. Samuti vajab uurimist, et milline on täpselt see väli videofailis (Create date, faili viimati muudetud kuupäev, ...), mis tuleks peale video töötlemist taastada, et registratorviewer sellest aru saaks.
Garmin Virb Edit
Sissejuhatus
Garmin Virb Edit on tarkvara, mis üldiselt mõeldud seiklusvideode monteerimiseks, sh on seal võimalused GPS ja muud liikumise infot video peale kanda. Meid huvitab ta seetõttu, et võimaldab näidata ka Google Maps taustakaardil asukohta ning paralleelselt siis ka videopilti. Video ja GPX failid saab eraldi importida ning neid seejärel ka sünkroniseerida. Küll aga on paljude videofailide importimine ja eraldi sünkroniseerimine mõneti tülikas. Samuti kui importida Full HD video, siis tahab Garmin Virb Edit sellest kohe alustuseks optimiseeritud versiooni teha, mis võtab väga kaua aega. Samuti ilmnes probleem, et kui üksteise järel on imporditud mitu videot, siis video ajajoont kerides on küll võimalik kaardil vastavat asukohta näha, aga vastupidine variant ei tööta eriti hästi. Nimelt kui kaardil punast asukoha täppi liigutada, siis näidatakse ainult kõige esimese video sisu.
Üldiselt on Garmin näidanud ennast kui ettevõtet, keda bugid tarkvaras eriti ei huvita. Seega võib 2018. aasta mai seisuga öelda, et Virb Edit on hetkel tarkvarana pigem varuvariant. Üks eelis siiski, mille nimel võib-olla selle tarkvaraga tegeleda tasub, on 360-kraadise video vaatamine kaardile kantuna. Sellega ei saa hakkama ei RegistratorViewer (ei toeta 360-kraadist videot) ega VLC Player (ei toeta asukohainfot).
- Üks mõte, mida tulevikus võib-olla proovida tasub: kas rajalogi ja GPS info seostamine säiliks mingil kujul ka peale seda, kui video Virb Edit tarkvarast eksportida? Sel juhul oleks ehk võimalik soovitud klipid üheks kokku lõigata ning rajalogi jätkuvalt sünkroniseerituks jätta.
- Väidetavalt on võimalik Virb Edit tarkvaraga panna kokku kahepoolne RAW video, mida oskab talletada Virb 360 kaamera. Võiks järgi proovida.
2017. aasta katsed
Selleks, et 2017. aastal GoPro kaameraga kogutud materjali vaadata, siis tegi Jaanus järgmist:
- HandBrake tarkvara abil said Full HD (60 kaadrit sekundis) videod konverteeritud 720x480 pikslit (30 kaadrit sekundis) videodeks.
- Avidemux tarkvara abil said kõik videod üheks pikaks kokku monteeritud. Eelnevalt sai proovitud selleks tarbeks ka Mp4Joiner tarkvara, aga seal oli video peale 7. tundi vigane (samas monteerimisel ühtegi veateadet ei antud). Ja VLC Player ei suutnud monteerimisel üldse midagi tarka toota, kippus kokku jooksma ja muidu rumalusi tegema.
- Sai tehtud GPX fail, mis sisaldab feigitud ajatempleid - nii et kogu video tegevus oleks nagu järjest toimunud.
See viimane oli siinkohal kõige keerulisem osa. Mõned tähelepanekud:
- Kui GPS ja video mõlemad käima panna, siis algust tuleb korrigeerida ainult GPX esimese punkti osas (võib teha käsitsi) - see on selleks, et sünkida käima panemise hetkede erinevus. Kui on näha, et GPS jookseb pildist ees, siis tuleb esimest GPX ajatemplit nihutada tagasi.
- Kui GPS logi on ühtne, aga videos on katkestused, siis tuleb nihutada kõiki ajatempleid tagapool olevates GPX failides. Seda saab teha näiteks GPSBabel nimelise utiliidiga. Algul tasub umbmääraselt eelmise video pikkuse järgi paika kruttida, seejärel finetuunimine. Kui on näha, et GPS on videost ees, siis tuleb finetuunimisel nihutada ajatempleid edasi.
Kui video ja GPX fail olid ette valmistatud, siis juhend video vaatamiseks oli järgmine:
- Lae alla video (10GB) ja kaasa käiv GPX fail.
- Installi endale Garmin Virb Edit ja käivita see.
- Vali "Import Clips & Photos" -> "Import Other..." -> vali alla laetud videofail.
- Dialoogi pealt valisin mina "Import Only". Ma ei tea, mida teine valik "Copy Clips" juurde annaks või ära võtaks.
- Programm teatab "Clips Successfully Imported". Sina valid "OK".
- Vali ülevalt paremast servast "Create Video". Seejärel võid nime "My Video" ära muuta või ka muutmata jätta. Vajuta nupule "Create Video".
- Üleval servas näed nüüd "Last Import" all seda 8:20:10 pikka videot. Tee sellel parem hiireklõps ja vali "Add to Video". Alternatiivselt võid selle video lihtsalt programmi alla serva "Drag and drop clips blabablaa" kasti lohistada.
- Vali vasakult menüüst "Map" ning seejärel vajuta nupul "Import G-Metrix...". Edasi vasakult menüüst "On My Computer" -> "Browse" -> ja vali eelnevalt alla laetud GPX fail.
- Nüüd alt äärest nupp "Use this Log". Kui programm sulle ise kohe kaarti ei näita, siis vali vasakust menüüst "Map".
- Vajuta video all "Play" ja asu hullama :)
Kirja said pandud ka järgmised probleemid/tähelepanekud:
- Kui kaardil õiget kohta otsid, siis aeg-ajalt võib tunduda, et programm viskab kaardi kuskile lambi kohta ära. See on tingitud sellest, et kui liigutad hiire programmi alaosasse filmiribale, siis üritab programm kaardi sinna kohta visata. Ehk siis väldi hiirega filmiribale sattumist, kui sa seda spetsiaalselt ei soovi!
- Vähemalt minul oli aeg-ajalt ka video heliga probleeme - mingi klõbin tuli juurde. Aitab, kui kaardil asukoha punast täpikest natuke liigutada ja uuesti "Play" vajutada.
- Aeg-ajalt juhtub ka seda, et video mängides ei jookse asukoha punane täpp kaardil kaasa, vaid jääb paigale. Aitab samuti, kui asukohta veidi liigutada ja Play nupuga mängida.
- Video peale kuvatakse ka kiirust, aga seda ei tasu väga uskuda. See keskmistatakse mingi aja peale ära ja siis ongi nii, et seistes nagu toimuks spidoka järgi liikumine ja sõites ei ole kiirus päris see mis tegelikult. Reaalsed sõidukiirused saavad suuremad spetsialistid otse GPX failist kätte, kus vaja.
Prestigio
Prestigio jagab ka enda tarkvara, aga see on üsna primitiivne. 560GPS kaameraga oli kaasas CD plaat ning sama tarkvara on neil ka veebis olemas, aga vähemalt 14.01.2018 seisuga oli tegemist sama vana (V1.9) versiooniga, mis CD plaadil, seega ei tundu ka seal aktiivset arendust toimuma.
Tundub, et Prestigio tarkvara kasutab taustaks Google Maps kaarti, aga vananenud API tõttu seda reaalselt näidata ei suuda. Samuti ei tundu seal olema võimalust taustakaarti muuta. Esmasel vaatlusel tundub ka, et kui kaarti ei suudeta näidata, siis ei näidata ka GPS logi üldse.
Ei ole ka aru saada, et tarkvara mingilgi moel rada terviklikult käsitleda suudaks - iga faili käsitletakse sõltumatult.
Kokkuvõttes tundub, et Prestigio tarkvara kasutamine ei anna mingit eelist võrreldes suvalise meediapleieriga.
Garmin Dash Cam Player
Teoreetiliselt on olemas video vaade ja kaardi vaade, aga rakenduse funktsionaalsus jääb arusaamatuks - ei ole seal mingit abimenüüd ega tundu ka mujal kasutusjuhendit olema.
- Tundub, et toetab ainult .MP4 ja .AVI failide avamist. Muid videokonteinereid mitte.
- Info puudub, mis kujul rajalogi kaardile saaks. Eraldi GPX vms importi välja ei paista. Ilmselt Garmini enda autokaamerast saaks. Võib proovida millalgi, kas Virb seikluskaamerate stiilis kataloogipuust leiaks midagi üles.
- Kaartidena on menüüs olemas Bing, Baidu (ainult Hiina) ja OpenStreetMap. Neist viimane kaarti ei näita, jääb tühi ekraan. Võib-olla kui rada peale joonistada, läheks suurendus ja asukoht paika.
DashCam Viewer
On olemas tasuta versioon ja tasuline versioon (25$). Esimene neist toetab kuni 5 faili avamist, teine 500. Miks tasulises versioonis ka piiratud on?
- Kuigi kirjade järgi peaks saama valida nii Google Maps kaarti kui satelliidipilti, siis reaalselt ei paista mingit kohta välja, kus satelliidipildi asemele midagi muud võiks seadistada.
- Kuigi kirjade järgi peaks olema võimalik rajalogi peal klikkida, et videos õigesse kohta liikuda, siis reaalselt ei teinud see klikkimine mitte midagi. Võib-olla eeldab mingite muude nüanssidega GPX faili?
- Sama nimega GPX ja MOV/MP4 failid avab ilusti, seostab ära ja kaardil täpp ka liigub vastavalt video edenemisele.
Andmete konverteerimine
Sissejuhatus
Käesolev peatükk käsitleb teemasid, kuidas filmitud materjali ja talletatud rajalogisid töödelda, nii et need oleksid erinevate PC peal kasutatavate tarkvarade jaoks "söödavad".
2018. aasta aprilli seisuga võib öelda, et mingit ühtset standardit, kuidas videofaili sisse GPS infot integreerida, ei ole. Iga tootja on leiutanud selleks oma viisi ning seetõttu on erinevate riist- ja tarkvarade ristkasutamine raskendatud. 2018. aasta aprilli seisuga saab siiski öelda, et viimase poole aasta jooksul on selles vallas kõvasti edasi arenenud exiftool nimeline tarkvara - tundub, et arendaja on võtnud (üheks) oma prioriteediks kõikvõimalike kaamerate formaadid toetatuks lisada.
Kuna on selgunud, et RegistratorViewer tarkvara toetab geoinfo seostamist viisil, kus igale videofailile vastab sama nimega GPX fail, siis lahendab exiftool nii mõnegi probleemi. 2018. aasta aprillis tehtud testid näitasid, et exiftool abil on võimalik GPX info exportida nii Prestigio 560GPS autokaamera videofailidest (.MOV) kui ka Harri poolt 2017. aastal metsaradade kaardistamisel kasutatud GoPro kaamera videofailidest (.MP4). Tasub mainida, et 2017. aastal tundus, et GoPro on oma GPS info väga ära peitnud või suisa ainult overlay kuvamiseks vajalikul viisil talletanud, nüüd aga on exiftool arendaja suutnud selle formaadi lahti mõistatada ja toetatuks lisada.
Kasutatavad utiliidid
Sissejuhatus
Käesolevas peatükis on toodud ära käsurea utiliiditide paigaldamine, mida allpool olevad skriptid kasutavad. Kõik katsed on tehtud Ubuntu 16.04 peal.
ExifTool
Kuna teema on exiftool jaoks uus, siis ei pruugi standardse Ubuntu apt-get'iga saadav exiftool olla piisavalt uus, et vajalikke formaate toetada. Laeme seetõttu uusima versiooni otse arendaja kodulehelt alla ning paigaldame selle manuaalselt:
tar -xzf Image-ExifTool-10.94.tar.gz cd Image-ExifTool-10.94 perl Makefile.PL make test sudo make install sudo mkdir /usr/local/share/exiftool sudo cp fmt_files/gpx.fmt /usr/local/share/exiftool/
GPSBabel
GPSBabel paigaldamine on ära toodud eraldi artiklis.
Muud utiliidid
sudo apt-get install ffmpeg sudo apt-get install csvtool
Rajalogide eksport videofailist
Toome ära skripti, mis ekspordib kõigist samas kaustas olevatest videofailidest rajalogid ning talletab need GPX formaadis. Igale videofailile vastab seejuures GPX fail, mille nimi (laiendit arvestamata) on sama, mis algsel videofailil.
EXTENSION="MP4"
while IFS= read -r -d '' -u 9
do
GPXNAME=$(basename "$REPLY" .$EXTENSION).gpx
exiftool -p /usr/local/share/exiftool/gpx.fmt -ee "$REPLY" > "_tmp_$GPXNAME"
gpsbabel -t -i gpx -f "_tmp_$GPXNAME" -x nuketypes,waypoints,routes -x track,start=2000 -o gpx -F "$GPXNAME"
rm "_tmp_$GPXNAME"
done 9< <( find . -type f -iname "*.$EXTENSION" -print0 )
Tasub mainida, et mõnel juhul on exiftool väljundiks GPX fail, kus lisaks vajalikule infole on lisaks veel mõni üksik huvipunkt (näiteks umbmäärane video alguskoht) või ilma ajatemplita rajapunkt. Kuna meie jaoks on see pigem läbu, siis eemaldame selle GPSBabel utiliidi abil. Esimene "-x" filter eemaldab huvipunktid ja marsruudid, jättes alles ainult rajalogi. Teine "-x" filter eemaldab kõik rajalogi punktid, mille ajatempel on varajasem kui aasta 2000, eemaldades seejuures ka ilma ajatemplita rajapunktid.
Rajalogide eemaldamine videofailist
Nagu ülal kirjeldatud, siis eelistab RegistratorViewer kasutada videosse integreeritud rajalogi, kui see on olemas. Kui on soov kasutada just eraldi rajalogi (et saada effekt suuremahuliste retkede kuvamisel), siis tuleb rajalogi algsest videofailist eemaldada. Selleks sobib ffmpeg nimeline tarkvara.
Kõigilt samas kaustas olevatelt MOV failidelt eemaldab GPS info näiteks järgmine skript:
EXTENSION="MOV"
mkdir -p out
while IFS= read -r -d '' -u 9
do
ffmpeg -i "$REPLY" -metadata location="" -metadata location-eng="" -acodec copy -vcodec copy "out/$REPLY"
done 9< <( find . -type f -iname "*.$EXTENSION" -print0 )
Algsed videofailid jäävad puutumatuks, väljund talletatakse alamkausta out. Failide nimed jäävad samaks.
Ülal skriptis toodud ffmpeg rakendusele ette antud parameetrid on seni täpsemalt lahti mõtestamata, see näide on pärit internetifoorumist. Seal soovitati kontrolliks kasutada ka ffprobe nimelist utiliiti, kuid meie katse näitas, et ffprobe väljund enne ja pärast rajalogi eemaldamist oli sama. Siiski õnnestus ülaltoodud skriptiga autokaamera Prestigio GPS560 MOV failidest asukohainfo eemaldada, nii et RegistratorViewer kasutas eraldi GPX faile ning toimis tänu sellele palju-palju kiiremini.
Garmini .fit failide töötlemine
Garmin talletab oma seadmetes (GPSid, kaamerad) rajalogid üldiselt .FIT formaadis. Muudes tarkvarades ei ole see aga nii levinud formaat kui GPX, seega tõusetub enamasti teema .FIT failide konverteerimise osas. Garmin BaseCamp, saab .FIT failidega ilusti hakkama, aga kui teisendusi on vaja palju teha, tuleb otsida skriptitavaid lahendusi.
GPSBabel põhimõtteliselt toetab .FIT formaati. Küll aga on see vähemalt mõnel juhul veidi problemaatiline. Näiteks Garmin Virb X kaamerast pärit FIT failidega on lugu järgmine:
- 2018. aasta mais paigaldatakse Ubuntu apt-get install gpsbabel korral versioon 1.5.2. See annab aga nende .FIT failide sisendina kasutamisel vea ning teisendust ei toimu.
- Uusim ametlik väljalase arendaja kodulehel on 1.5.4 ja see pärineb jaanuarist 2017. Selle versiooni abil on võimalik küll FIT failid GPX formaati teisendada, aga ajatemplid rikutakse ära - need on peale teisendust pärit 1989ndast aastast. Samamoodi käitub ka Jawava konverter.
- Internetifoorumitest pärit info järgi parandati nimetatud probleem GPSBabel tarkvaras ära 2017. aasta suvel, aga kuna uut ametlikku väljalaset pole vahepeal tehtud, siis tuleb soovi korral GPSBabel ise uusimast algkoodist kompileerida. Juhend selleks asub siin.
Kui GPSBabel on paigaldatud, siis kõik samas kaustas olevad .FIT failid saab .GPX formaati teisendada näiteks nii:
EXTENSION="fit"
while IFS= read -r -d '' -u 9
do
filename=$(basename "$REPLY" .$EXTENSION)
gpsbabel -i garmin_fit -f "$filename".$EXTENSION -o gpx -F "$filename".gpx
done 9< <( find . -type f -iname "*.$EXTENSION" -print0 )
Ajatemplite trükkimine
See skript trükib välja GPX failis oleva rajalogi kõige esimese ja viimase ajatempli (Unix TimeStamp formaadis):
EXTENSION="gpx"
while IFS= read -r -d '' -u 9
do
CSV=`gpsbabel -t -i gpx -f "$REPLY" -x nuketypes,waypoints,routes \
-x track,start=2000 -o unicsv -F - | csvtool namedcol Date,Time -`
DATESTRFIRST=`echo "$CSV" | awk 'NR==2' | tr ',' ' '`
DATESTRLAST=`echo "$CSV" | tail -n 1 | tr ',' ' '`
DATEFIRST=`date --utc --date="$DATESTRFIRST" +"%s"`
DATELAST=`date --utc --date="$DATESTRLAST" +"%s"`
echo $DATEFIRST $DATELAST
done 9< <( find . -type f -iname "*.$EXTENSION" -print0 )
Ja see skript trükib välja videofailis oleva välja Create Date ja video pikkuse sekundites:
EXTENSION="MP4"
while IFS= read -r -d '' -u 9
do
CREATEDATE=`exiftool -S -s -d "%s" -createdate "$REPLY"`
DURATION=`exiftool -S -s -n -trackduration "$REPLY"`
echo $CREATEDATE $DURATION
done 9< <( find . -type f -iname "*.$EXTENSION" -print0 )
GPX failide ümber nimetamine video järgi
Seda skripti sai katsetatud Garmin Virb X kaamerast pärit ja GPX formaati teisendatud rajalogide automaatseks ümber nimetamiseks vastavalt videofailide nimedele. See skript ei ole 100% toimiv, sest teatud juhtudel oli .FIT faili nimi sekundi võrra varasem kui videofailis olev Create Date väli, samuti ei toimi see skript nendel juhtudel, kus .FIT faili talletamist alustati varem kui filmimist või kui filmimise jooksul kaamera videot tükeldab. Aga ehk on milleksi siiski abi. Enne selle skripti jooksutamist tuleb siis .FIT failid .GPX formaati teisendada.
EXTENSION="MP4"
while IFS= read -r -d '' -u 9
do
FROMNAME=`exiftool -d "%Y-%m-%d-%H-%M-%S.gpx" -createdate -s -S "$REPLY"`
filename=$(basename "$REPLY" .$EXTENSION)
mv "$FROMNAME" "$filename".gpx
done 9< <( find . -type f -iname "*.$EXTENSION" -print0 )
Garmin kaamera rajalogi automaatne teisendus
See on hetkel siis kõige kaugemale arenenud skript, mille abil näiteks Garmin Virb X pärit rajalogid teha söödavaks registratorviewer-iga vaatamiseks. See ei ole siiski veel täiuslik! Skript võtab algselt kõik .FIT failid, filtreerib sealt välja ebavajaliku (huvipunktid, marsruudid, ilma ajatemplita rajapunktid), liidab kõik üheks failiks kokku ja ekspordib GPX formaati. Teise sammuna tükeldab skript GPX faili vastavalt video ajatemplitele, kasutades seejuures nii eest kui tagant 60-sekundilist ülekatet.
Selleks, et sünkroniseerimine erinevates olukordases paremini toimiks, tuleb kindlasti õppida täpsemalt tundma, kuidas registratorviewer ikkagi neid rajalogisid ja videot ajaliselt seostab, aga igati kasutatava lahenduse saab siit kätte küll. Skript arvestab kaustade struktuuriga, mis Virb X mälukaardile tekib:
#!/bin/bash
EXTENSION="MP4"
CURDIR=`pwd`
cd ../../GMetrix
ff=""
for f in *.fit
do
ff="$ff -f $f"
done
gpsbabel -i garmin_fit $ff -x nuketypes,waypoints,routes -x track,start=2000 -o gpx -F "$CURDIR/all.gpx"
cd $CURDIR
while IFS= read -r -d '' -u 9
do
CREATEDATE=`exiftool -S -s -d "%s" -createdate "$REPLY"`
DURATION=`exiftool -S -s -n -trackduration "$REPLY" | cut -d'.' -f1`
STARTDATE=$(($CREATEDATE - 60))
ENDDATE=$(($CREATEDATE + $DURATION + 60))
STARTSTR=`date -u -d @"$STARTDATE" +"%Y%m%d%H%M%S"`
ENDSTR=`date -u -d @"$ENDDATE" +"%Y%m%d%H%M%S"`
gpsbabel -t -i gpx -f all.gpx -x track,pack,start=$STARTSTR,stop=$ENDSTR -o gpx -F "$(basename "$REPLY" .$EXTENSION)".gpx
done 9< <( find . -type f -iname "*.$EXTENSION" -print0 )
rm all.gpx
Muud tähelepanekud
- On testitud, et kui MP4 videost luua näiteks HandBrake tarkvara abil vähendatud versioon, siis GPS logi seal ei säili.