Videode ja rajalogide töötlus peale eelretke

Allikas: Tipikate Rattamatkaklubi teabebaas
Redaktsioon seisuga 24. juuni 2024, kell 04:02 kasutajalt Jaanus (arutelu | kaastöö) (Rajalogide töötlus)
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)
Mine navigeerimisribale Mine otsikasti

Sissejuhatus

Käesolev artikkel proovib panna kirja samm-sammulise juhendi, kuidas peale eelretkelt tagasitulekut videod ja rajalogid edasiseks kasutamiseks võimalikult "söödavaks" teha. Hetkel on artikkel esmaste mõtete tasandil.

Sammud

Failide kaameratest kätte saamine ja esmane töötlus

  • Kopeeri autokaamerast pärit failid kausta gpx_daybyday\scripts\manage_video_gpx\working_dir ja käsikaamerast gpx_daybyday\scripts\manage_video_gpx\working_dir2
  • Autokaamera puhul kasuta skripti extractgpx, et tekitada igale failile vastav GPX fail. Kui käsikaameral on GPS ja selle info pannakse MOV/MP4 faili sisse, siis kasuta sama skripti ka nende failide puhul. Garmin kaamerate puhul on sama info FIT failides, nende käsitlemisest tuleb eraldi rääkida (TODO).
  • Autokaamera failide puhul kasuta skripti prestigio_prescan, et vaadata, millised videod on tegelikult ebavajalikud seisukaadrid. Kustuta need MOV ja GPX failid manuaalselt. Eriti tasub ära kustutada need videod, millega samaaegselt võis toimuda käsikaameraga filmimine. Käsikaamera failide puhul võib selle sammu vahele jätta (või manuaalselt veenduda, kui mingit videot tõesti vaja pole).
  • Allesjäänud GPX failid tuleks:
    • Kopeerida kausta video_gpx\[kaamera]\01_direct_extract (sinna lähevad kõik sama aasta samast kaamerast pärit GPX failid).
    • Seejärel liigutada algsed GPX failid päeva kaupa kaustadesse gpx_daybyday\[date]\[kaamera] (ehk kokkuvõttes jääb neist failidest kaks koopiat). Kui käsikaamera puhul on samal ajal olemas ka nt ratta GPS info, siis võib siia kausta panna juba töödeldud GPXid (ja sel juhul võivad nimed olla juba filmimise koha järgi nimetatud).
  • Protsessi mõistmisel on oluliseks nüansiks, et kaamerafailidest otse eksporditud GPX/FIT faile me hiljem enam videofailidega ei seosta (ehk videokaardistamise tulemust vaadates ei kasuta). Protsessi jooksul tekitame hoopis igale videole vastava uue GPX faili. Selle eeliseks on, et protsessi käigus parandame ära nt asjaolud, kui videofailis ei ole koordinaat talletunud päris algusest alates (parandamine võib aset leida ka täiesti automaatselt), samuti on protsessi osaks manuaalsed parandused koos võimalusega valida, milline GPS seade konkreetsel hetkel paremat signaali andis. Parandatud joone interpoleerime selliselt, et punkt oleks olemas kogu kaardistuspäeva iga sekundi kohta. Et sellisest master-GPX failist igale videole vastav GPX välja lõigata, peame võimalikult täpselt teadma, millal video filmimine alguse sai (video pikkus pannakse hiljem otse videofaili alusel juurde).
    • Kui GPS info on videofaili sees, siis aitab video algused teada saada skript './printprestigiostarttimesall > starttimes.txt'. Kasutab tegeliku töö tegemiseks abiskripti printprestigiostarttime. Kui mingil põhjusel on mõnest videofailist GPS logi üldse puudu (Prestigio autokaameral on näiteks selline bugi, et mõnikord logi üldse ei talletu), võib nende failide korral kasutada skripti './printprestigiostarttimesall_alternative > starttimes2.txt' ja pärast starttimes.txt failid käsitsi kokku panna. Viimatinimetatud skript kasutab video EXIF infost "create" ajatemplit ja lahutab sellest 3 sekundit maha - see tundub keskmine ja rohkem levinud viide olema (reaalselt on nähtud umbes 0...7 sekundit, ehk siis see viide pole päris stabiilne). Kui selline vajadus on, võib kontrolliks ka mõlemad starttimes.txt failid samasse Excelisse tõmmata ja vaadata, kuidas korras GPS infoga failide puhul need ajatemplid kokku klapivad.
    • FIT failide puhul käib lahendus cameraevents.txt kaudu. TODO: kirjeldada protsessi.
    • Ilma GPSita kaamera puhul on võti kaamera enda kellaajas. Kuna see pole taolistel puhkudel kunagi päris täpne, siis tuleks kindlaks teha ajaline erinevus. Mõnel juhul peab täiendavalt võrdlema, milline ajatempel üldse kõige stabiilsema offsetiga on (faili created/modified time, failinimes sisalduv aeg, EXIF info, ...). On tehtud erinevaid skripte nende välja printimiseks ja Excelis võrdlemiseks. Hetkel tundub, et GoPro 3 korral sai kasutatud EXIF infot, selles osas lõigub vastavad GPX failid välja splitgpxaccordingtogoprovideo (vaja paremini ümber nimetada, sest hetkel räägib ilma GPSita GoPro 3-st).
  • Skripti gpx_daybyday_scripts\manage_video_gpx\reencode_mov_to_mp4_dir abil tuleks nüüd MOV failid ringi kodeerida (võtab aega). Kui tulevikus leida parem viewer kui RegistratorViewer, saaks sellest ehk lahti, hetkel muidu koos käsikaamera failidega ei näidata (TODO: mis probleem sellega oligi)?
  • MOV failid võib nüüd liigutada kausta original\01_autokaamera. Kõik sama aasta failid lähevad samasse kausta. Kodeerimise tulemusfaile (MP4) esialgu veel liigutada pole vaja, neile tuleks tekitada juurde GPX failid ja siis ümber nimetada. Hiljem lähevad 01_plain_videos_inside_main_area
  • Kopeeri käsikaamerast pärit failid kausta . Põhimõtteliselt tuleb nüüd teha kõik autokaamera jaoks eelpool loetletud sammud, välja arvatud seisukaadrite eemaldamine.

Rajalogide töötlus

  • Kopeeri telefonist OruxMaps GPX failid välja, võib otse BaseCamp'i importida. Kui juba ei ole, siis lõigata päeva kaupa, lähevad kausta suvine/infokogumine/eelretked_raw, nimedeks [date]_orux. Algus ja lõpp lõigata mõistlikuks, aga nad peaks katma kogu autokaameraga filmitud perioodi. Kui ei kata, on valikuks kas autokaamera esimese ja/või viimase klipi kustutamine (kui ei ole olulised) või siis Oruxi logisse algusse ja/või lõppu rajapunkti juurde feikimine. Ja kuigi kausta nimi on raw, siis mingid ilmselged GPS virvendamised (nt siseruumides) võib (vist?) juba praegu käsitsi eemaldada. Seejärel eksportida GPXina kaustadesse gpx_daybyday\date, nimeks orux.gpx.
  • GoproMax logide kohta:
    • 2022. aasta neljandal eelretkel sai gopromax GPXide kausta pandud juba töödeldud logid, mis ei vastanud otseselt ühelegi algvideole, vaid olid kombinatsioon videodes ja jalgratta GPSist. Tundus, et toimis selline lahendus küll.
    • 2024. aasta teisel eelretkel said gopromax GPX logid töödeldud nii, et esmalt lastud läbi skriptist simplifygpx (et üleliigsetest punktidest lahti saada), seejärel kustutatud BaseCamp'is ära absurdsused nagu "rada algab Aafrikast" ja seejärel töödeldud GPXid gpx_daybyday\[date]\gopromax kausta pandud. Tasub veel mainida, et paaril klipil oli kaamera GPS logi nii kehv, et neid sinna kausta ei pannud - sel juhul tekitatakse see hiljem üldise rajalogi baasilt. Samuti jäi sinna panemata ühe klipi logi, mille puhul toimus samaaegselt paralleelne filmimine autokaameraga (ja paralleelne logi autoga sõites). Selle klipi puhul sai lõppväljundisse kopeeritud siis lihtsalt kaamerast pärit (eraldi töödeldud) logi.
  • Kui kaameral GPSi ei ole (või ei ole käsikaameraga üldse filmitud), siis võib nüüd kasutada skripti gpx_daybyday\scripts\runallsteps_withoutcameragps. Kui kaameral on GPS, siis sobib nt skript runallsteps_withgopro8 / runallsteps_withgopromax (TODO: teha skript selliseks, et tuvastaks automaatselt, kas käsikaamera kaust on või mitte. Ja kui on, siis kas seal on GPX failid või FIT failid. Või parameetrina, sest kaamera nime niisama välja ei võlu?).
  • TODO: processed rajalogis on näha, et pikal sirgel teel sõites (nt Hiiumaal Kõpu-Luidja) optimeeritakse rajalogilt suurem osa punkte välja. Pärast küll interpoleerimisel tekivad iga sekundi tagant, aga kui kiirus ei ole ühtlane, siis GPS ja video ilmselt päris kokku enam ei lähe? Suur probleem ilmselt ei ole, sest sellised pikad sirged vast väga huvi ei paku, aga optimeerimise algoritmi võiks siiski mingi hetk üle vaadata. Hetkel tehtud nii, et pack_and_simplify skriptis muudetud crosstrack error filter 3 meetri pealt 10 cm peale. Andis effekti ka selles osas, et muidu käsikaameraga filtreeriti kohati liiga palju ära (GoPro 8 kaamera GPS on piisavalt hea, et väärib rohkemate punktide allesjätmist). 23.10.2021 failid on esialgse filtriga, 24.10.2021 uuega.
  • Vastava kuupäeva kausta tekib fail result.gpx, mille võib BaseCamp'i importida (kaust eelretked_processed). Nimeks võib seal panna lihtsalt kuupäeva. Nüüd võib rajalogi veel manuaalselt kohandada (mitme eri seadme üleminekukohad nt) ja siis eksportida kausta gpx_daybyday\results_after_manual_bc_process (nimega [date]_result.gpx).

Videofailidele GPX paariliste loomine

  • Nüüd võib käivitada gpx_daybyday\scripts\manage_video_gpx\gathersources - see loeb gpx_daybyday\results_after_manual_bc_process kaustast GPX failid ja tekitab neist interpoleeritud GPX failid kausta gpx_daybyday\scripts\manage_video_gpx\gpx_interpolated. Kui cameraevents.txt on puudu, siis annab veateadet, aga vist võib ignoreerida? TODO: skript seda haldama. Tekib ka kõigi trippide ühine interpoleeritud fail result_interpolated.gpx
  • Konverteeritud videofailide kausta võib nüüd kopeerida starttimes.txt, result_interpolated.gpx, get_video_start_from_prestigio_log ja splitgpxaccordingtoprestigiovideo (jah, kõikjal sees prestigio nimi, aga reaalselt sobib igale kaamerale, mille puhul loodi starttimes.txt). Viimasena nimetatud skript tuleks nüüd käima lasta, tekivad GPX failid.
  • Tekkinud GPX failid võib kopeerida video_gpx/[kaamera]/02_processed_real_time
  • Nüüd tuleks MP4/GPX failid ümber nimetada (et nad hiljem teistest kaameratest pärit videodega ühtsele loogilisele ajajoonele satuksid). rename_according_to_gpx teeb seda (vastavalt GPX failis olevale esimesele ajatemplile). Tulemusena tekkinud MP4 failid võib liigutada põhikausta 01_plain_videos_inside_main_area. GPX failid liigutada kausta video_gpx/80_plain_renamed_real_time_inside_main_area.
  • Kui kasutatakse reaalaja GPX templitega lahendust, võib video_gpx/80_plain_renamed_real_time_inside_main_area kaustast GPX failid ka lõpplahenduse kausta 01_plain_videos_inside_main_area liigutada ja korras.
  • Kui kasutatakse feigitud ajatemplitega lõpplahendust, siis kustutada kaustast 01_plain_videos_inside_main_area kõik senised GPX failid ära. Samuti kaustast video_gpx/90_plain_renamed_fake_time_inside_main_area. Need tuleb uuesti luua! Selleks tuleks kopeerida kõik video_gpx/80_plain_renamed_real_time_inside_main_area GPX failid põhikausta 01_plain_videos_inside_main_area, seejärel skript gpx_faketimes_splitted, seejärel originaal GPX failid siit ära kustutada, tekkinud output kausta failid siia asemele ja neist varukoopia ka kausta video_gpx/90_plain_renamed_fake_time_inside_main_area
  • Tehtud!