Erinevus lehekülje "RegistratorViewer" redaktsioonide vahel

Allikas: Tipikate Rattamatkaklubi teabebaas
Jump to navigation Jump to search
141. rida: 141. rida:
 
done 9< <( find "$WORKING_DIR" -type f -iname "*.$EXTENSION" -print0 )
 
done 9< <( find "$WORKING_DIR" -type f -iname "*.$EXTENSION" -print0 )
 
</pre>
 
</pre>
 +
 +
=== Filtreerimine geograafilise piirkonna järgi ===
 +
==== Sissejuhatus ====
 +
On ilmnenud, et ''RegistratorViewer'' jookseb ''Out of Memory'' vea otsa peale seda, kui laadida korraga üle kahe ööpäeva jagu videot. Tegelikult ei ole teada, kas vea põhjustab rajapunktide arv, videofailide maht, videofailide arv või tõesti video pikkus, aga 2018. aastal Tipikate Rattamatka korralduses enam kogu materjali korraga laadida ei saanud. Tõenäoliselt on asi selles, et ''RegistratorViewer'' on 32-bitine rakendus, mille kasutatav mälumaht on piiratud. [https://stackoverflow.com/questions/639540/how-much-memory-can-a-32-bit-process-access-on-a-64-bit-operating-system Ühe internetis leiduva lingi alusel] võib see piirang olla 2 GB, 3 GB või 4 GB. Tundus, et ''RegistratorViewer'' ehitab omale failide laadimise käigus indeksi, mille maht just neid limiite ületama võib asuda.
 +
 +
Kuna matka korralduse lõppfaasis ei ole enam oluline videopilt kogu läbi kammitud piirkonnast, võiks lahenduseks olla failide sorteerimine selle järgi, kas ta kuulub meid päriselt huvitavasse piirkonda või mitte. Abiks on taaskord [[GPSBabel]] koos ''bash'' skriptidega.
 +
 +
==== Polügoni defineerimine ====
 +
Alustuseks tuleb defineerida meid huvitav piirkond. Seda on kõige lihtsam teha nii, et joonistada Garmin BaseCamp'is ''Direct Routing'' režiimis polügoni piirjoon, eksportida see GPX faili (allpool olev näide eeldab faili nimeks polygon.gpx) ning seejärel teisendada GPSBabel abil ARC formaati:
 +
 +
gpsbabel -i gpx -f polygon.gpx -o arc -F polygon.arc
 +
 +
ARC formaat on lihtne tekstiline tabel, kus on kirjas polügoni nurgad. Selleks, et edasised sammud sujuks, tasub nüüd tekstiredaktoriga üle kontrollida, et ''polygon.arc'' failis tõepoolest on esimene ja viimane rida täpselt identsed. Kui ei ole, tuleks see käsitsi ära muuta.
  
 
[[Category:Videokaardistamine]]
 
[[Category:Videokaardistamine]]

Redaktsioon: 12. juuli 2018, kell 22:53

Sissejuhatus

Tegemist on autokaamerate pildi ja rajalogide vaatamiseks mõeldud Windows tarkvaraga, mis oma omadustelt sobib hästi ka meie videokaardistamisel kogutud andmete vaatamiseks. 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.

Kiire algus

Sissejuhatus

Räägime esmalt selle rakenduse kasutamisest tavakasutaja võtmes - ehk siis juhul kui kaamerast pärit failid sobivad ideaalselt ja otse importimiseks või kui keegi teine on need failid avamiseks juba ette valmistanud.

Esmalt tuleks omale hankida fail RegistratorViewer.exe. Kuna arendaja ise seda enam jagada ei saa, siis levitavad seda teised entusiastid ning Googeldamise tulemusena võib leida mitmeid linke, näiteks see. Tipikate Rattamatkaklubi tegemistes jagame enamasti koos videofailidega ka nimetatud EXE faili, seega eraldi alla laadimine pole neil juhtudel vajalik.

Käivitamine

Peale EXE faili käivitamist avaneb allpool toodud vaade. Tasub panna tähele järgmisi asjaolusid:

  • Rakendus toetab mitmeid online taustakaarte, kuid mitmes osas on API ka vananenud. Seega ei pruugi nii mõnigi kaart taustana toimida.
  • Ka kaartide puhul, mis õnnestub käima saada, võib RegistratorViewer peale käivitamist veateateid visata.
  • Jaanusel on suurim kogemus taustakaardi Open Outdoors Map osas, mille saab valida paremas ülemises ääres oleva nupu abil.
  • Konkreetse kaardi puhul antakse enam-vähem alati rakenduse käivitamisel kolmel korral järjest veateadet "Got metadataThe request was forbidden. Your credentials may be denied or suspended." ning mõnel juhul lisaks 1-3 korda ka mingit "Script error" viga. Samas kui nende vigadega nõustuda, siis läheb edukalt käima.
  • Internet teab rääkida, et mingi Windows registry häkiga on võimalik vigadest lahti saada - see on seni veel järgi uurimata.
  • Ka üldisemalt tasub taustainfona teada, et RegistratorViewer ei ole küll installitav pakett, vaid lihtsalt käivitatav EXE, kuid oma seadistused kirjutab siiski Windowsi registrisse. Seega ei pruugi EXE ühelt arvutilt teisele kopeerides kohe täpselt samamoodi käituda.

Vk regviewer start.jpg

Videofailide avamine

Kui rakendus on käima saanud, siis võib MP4 või MOV failid avada File -> Open menüü abil. Tasub taustainfona teada, et RegistratorViewer oskab rajalogi lugeda välja kas juhul kui MOV failis on see logi juba sisse integreeritud või vastab igale MOV/MP4 failile ka samanimeline rajalogi fail (GPX, NMEA, ...).

Rakendusel läheb nüüd veidi aega, et sisend ära menetleda. Mida rohkem faile, seda kauem aega läheb. Samuti tasub teada, et eraldi rajalogi failide korral (GPX, NMEA, ...) on avamine tunduvalt kiirem kui MOV faili integreeritud rajalogi korral. Veel tasub teada, et kui MOV faili on rajalogi integreeritud, siis kasutatakse seda ning välist faili ei kasutata.

RegistratorViewer püüab importimisel failid kokku grupeerida - eeldusel, et ajalised augud rajalogides ei ole liiga pikad. Kõige lihtsamal juhul, kui kogu video talletati ühes jutis või kui eelneval andmetöötlusel on rajalogi punktid ajaliselt üksteise järgi nihutatud, tekibki peale importi rakenduse alla paremasse aknasse ainult üks rida:

Vk regviewer oneseg.jpg

Videofailide grupeerimine

Kui avatud videoklipid ei paikne ajaliselt kõik päris järjest, siis tekib peale avamist rakenduse paremasse alumisse aknasse mitu rida:

Vk regviewer multiseg.jpg

RegistratorViewer näitab kaardil ainult seda rajalogi, millele vastav rida (grupp) on siit aknast valitud. Samuti võtab iga rea valimine veidi aega - RegistratorViewer soovib selle peale alati taaskord midagi menetleda. Kuna meie soov on, et kõik olemasolevad rajad kuvataks korraga kaardile ning meil oleks võimalik kaardil suvalisel hetkel suvalist rajapunkti klikkida, siis peame kõik grupid, mida RegistratorViewer ise kokku ei grupeerinud, nüüd käsitsi kokku grupeerima.

Selleks tuleb valida paremas alumises aknas kõik read ning seejärel parema hiireklõpsuga Group with...:

Vk regviewer groupwith1.jpg

Avanenud aknas tasub veenduda, et kõigi ridade ees on "linnuke" olemas (vaikimisi on linnuke kõigi ridade ees, mis eelnevalt valitud sai). Seejärel alt äärest Group nupp:

Vk regviewer groupwith2.jpg

Video vaatamiseks ettevalmistamine

Sõltumata sellest, kas alla paremasse aknasse tekkis kohe peale failide avamist ainult üks rida või jõuti üherealise tulemuseni manuaalse grupeerimise teel, tuleks nüüd sel real klikkida, tehes selle aktiivseks. Tasub mainimist, et reeglina võtab see aega - taaskord vähemate failide korral vähem, rohkemate korral rohkem:

Vk regviewer select.jpg

Nüüd võib vajutada video all oleval Play nupul. Tasub mainida, et ka see võib veidi aega võtta.

Vk regviewer play.jpg

Video ja rajalogi vaatamine

Kui eelnevad sammud tehtud ning sisendfailide formaat rakendusele sobib, peaks siit alates elu lill olema - kõik peaks toimuma mõistlikkuse piires kiiresti ning seda isegi juhul, kui korraga on avatud rohkem kui ööpäeva jagu videosid. Samas kui korraga avatakse erinevatest kaameratest pärit materjali, siis on RegistratorViewer üsna pirtsakas - teatud juhtudel võib osadel videodel heli ära kaduda, teatud juhtudel ühelt klipilt teisele üleminek aeglane olla. Sellest, kuidas neid probleeme ennetada ning failid korrektselt ette valmistada, on räägitud käesoleva artikli allpool olevates peatükkides.

Kasutajal on võimalik kerida videot nii ajalises mõttes kui ka klikkida kaardil oleval rajal. Kui on soov klikkida kaardil kaugemal oleval kohal, võib mugavaks osutuda video enne pausi peale panna. Tasub siiski mainida, et "STOP" nuppu ei tasu vajutada - sel juhul läheb video uuesti käivitamisel taaskord rohkem aega. Seni, kuni kasutaja saab hakkama aga "PLAY" / "PAUSE" nuppudega, on kõik hästi.

Videopildi ja rajalogi seostamine

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 Hero 5 Black 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 video enda parameetrid (EXIF infos olev Create Date, faili viimati muudetud ajatempel, ...) RegistratorViewer-it ei huvita. Eeldatakse, et GPX faili tegevus toimus samal ajal kui filmiti video, samas ei ole päris täpselt seni aru saada, millist ajatemplit järgitakse. Pigem tundub aga, et kindlasti on oluline ära sünkroniseerida GPX faili viimane ajatempel - see peaks vastama video viimasele sekundile. Selline loogika tekitab veidi probleeme Prestigio autokaamerast pärit failidega (juhul kui MOV failist on rajalogi eemaldatud ja kasutatakse eraldi GPX faili) - kui kaameral toide ära kaob, siis kaob kohe ka GPS signaal ning seetõttu ei vasta eksporditud GPX faili viimase rea ajatempel video tegelikule lõpule. Et asi toimima saada, on vajalik sinna lõppu need koordinaadid juurde feikida või mujalt kopeerida.

Ühe eraldi tähelepanekuna tasub mainida, et autokaamerast eksporditud GPX failide kasutamisel saab kaardil klikkida kuskil 7-10 sekundi tagant, vahepealsetesse kohtadesse ei ole võimalik kaardil klikkimise teel videot kerida. Kui kasutada originaal MOV faile, siis toimub kerimine 1-2 sekundilise sammuga, samuti toimub see selliselt 2016. aasta NMEA failidega. Garmin ja GoPro seikluskaamerate puhul on olukord vahepealne, ehk siis 3-6 sekundit sammuga, kuid seal saab määravaks ka liikumise kiirus - roheline nool on kaardil lihtsalt piisavalt suur, et aeglase liikumise korral peabki noolest välja klikkimiseks ka ajaliselt rohkem edasi liikuma kui 1-2 sekundit. Teema vajab uurimist!

Andmete töötlemine

Sissejuhatus

Käesolev peatükk käsitleb teemasid, kuidas andmeid selliselt töödelda, et RegistratorViewer neist ilusti aru saaks ja hästi toimiks.

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.

NB! Mõnel juhul, kui autokaamera MOV failid tuleb niikuinii ümber kodeerida, et RegistratorViewer neid koos muude kaamerate materjaliga näidata oskaks, siis ei ole käesolev eemaldamine eraldi vajalik. Igasugusel ümber kodeerimisel läheb rajalogi nii või teisiti videofailist kaduma!

Failide ümbernimetamine

On selgunud, et kui RegistratorViewer faile avades neid ise kokku grupeerib, siis mõjutavad seda kokkuvõttes kolm asja:

  • GPX ajatemplid.
  • Rajalogi alguse ja lõpu koordinaadid.
  • Failide nimed.

Kui on soov, et RegistratorViewer kõik avatavad failid ise automaatselt kokku grupeeriks, siis peavad need vastama järgmistele tingimustele:

  • Kõige olulisem on ajaline järgnevus GPX failides - et kaks GPX faili ei kattuks ajaliselt üksteisega, teisalt ei tohiks nende vahele jääda ka liiga suuri auke. Tegelikult suudetakse ainult seda kriteeriumit täites suurem osa faile ka automaatselt kokku grupeerida ning seda isegi juhul kui faili nimed ei jookse tähestikulises järjekorras.
  • Erandiks on siinkohal juhtum, kus ühe video lõpust saavad koordinaatide järgi alguse kaks või rohkem videot. Näiteks võib selline asi juhtuda, kui liigutakse autoga mingisse punkti, võetakse käsikaamera ja filmitakse ümbrust, seejärel pannakse see kinni ning autokaameraga filmimine jätkub. Sellisel juhul algavad nii käsikaamera video kui autoga edasi sõitmisel talletatav video samas punktist (ehk auto juurest) ning on selgunud, et RegistratorViewer ei pruugi sel juhul teha järeldust mitte ajatemplite järgnevuse alusel, vaid võib videod valesse järjekorda panna ja grupid seetõttu laiali lammutada. Lahenduseks on failide ümber nimetamine tähestikulises järjekorras. Seda võib teha näiteks GPX faili esimese ajatempli järgi.

Selleks sobib järgmine skript:

#!/bin/bash

# Expects video files and corresponding GPX files in working_dir.
# Renames all the video files and GPX files according to the first
# timestamp in the GPX file.

EXTENSION="gpx"
WORKING_DIR=working_dir

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 ',' ' '`
    CREATEDATE=`date --utc --date="$DATESTRFIRST" +"%Y%m%d_%H%M%S"`
    BASENAME="$(basename "$REPLY" .$EXTENSION)"
    mv "$REPLY" "$WORKING_DIR/$CREATEDATE.$EXTENSION"

    VIDEOEXT="MOV"
    VIDEOFILE="$WORKING_DIR/$BASENAME.$VIDEOEXT"
    if [ ! -f "$VIDEOFILE" ]; then
        VIDEOEXT="MP4"
        VIDEOFILE="$WORKING_DIR/$BASENAME.$VIDEOEXT"
    fi

    mv "$VIDEOFILE" "$WORKING_DIR/$CREATEDATE.$VIDEOEXT"
done 9< <( find "$WORKING_DIR" -type f -iname "*.$EXTENSION" -print0 )

Filtreerimine geograafilise piirkonna järgi

Sissejuhatus

On ilmnenud, et RegistratorViewer jookseb Out of Memory vea otsa peale seda, kui laadida korraga üle kahe ööpäeva jagu videot. Tegelikult ei ole teada, kas vea põhjustab rajapunktide arv, videofailide maht, videofailide arv või tõesti video pikkus, aga 2018. aastal Tipikate Rattamatka korralduses enam kogu materjali korraga laadida ei saanud. Tõenäoliselt on asi selles, et RegistratorViewer on 32-bitine rakendus, mille kasutatav mälumaht on piiratud. Ühe internetis leiduva lingi alusel võib see piirang olla 2 GB, 3 GB või 4 GB. Tundus, et RegistratorViewer ehitab omale failide laadimise käigus indeksi, mille maht just neid limiite ületama võib asuda.

Kuna matka korralduse lõppfaasis ei ole enam oluline videopilt kogu läbi kammitud piirkonnast, võiks lahenduseks olla failide sorteerimine selle järgi, kas ta kuulub meid päriselt huvitavasse piirkonda või mitte. Abiks on taaskord GPSBabel koos bash skriptidega.

Polügoni defineerimine

Alustuseks tuleb defineerida meid huvitav piirkond. Seda on kõige lihtsam teha nii, et joonistada Garmin BaseCamp'is Direct Routing režiimis polügoni piirjoon, eksportida see GPX faili (allpool olev näide eeldab faili nimeks polygon.gpx) ning seejärel teisendada GPSBabel abil ARC formaati:

gpsbabel -i gpx -f polygon.gpx -o arc -F polygon.arc

ARC formaat on lihtne tekstiline tabel, kus on kirjas polügoni nurgad. Selleks, et edasised sammud sujuks, tasub nüüd tekstiredaktoriga üle kontrollida, et polygon.arc failis tõepoolest on esimene ja viimane rida täpselt identsed. Kui ei ole, tuleks see käsitsi ära muuta.