Archive for Linux

Audacity’st eksportimine opus vormingusse

Audiofailidel on päris palju erinevaid vorminguid. Levinuimad neist on wav ja mp3. Wav on pakkimata audioformaat, mis on failina küllaltki mahukas. Seetõttu kasutatakse veebis audio levitamiseks pakitud audioformaate. Tutuim neist on ehk mp3 audio. mp3 audio kasutab pakkimiseks Fraunhoferi poolt patenteeritud pakkimismeetodit. Kuigi mp3 on avatud vorming, siis tänu patendiga kaitstusele ei ole mp3 päris vaba kasutusega. Kuna mina pooldan avatud ja vabu standardeid, eelistan ma audovorminguna kasutada OGG või Opus vorminguid.

Audiofailide salvestamiseks kasutan ma programmi Audacity. Audacity salvestab faili projektina, mida on peale salvestust hiljem võimalik kadudeta töödelda. Töötlemine võimaldab parandada helikvaliteeti, eemaldada müra, tagantjärgi võimendada liiga vaikseid helilõike jne. Kui helifail on töödeldud, siis tuleb see lõpuks projektist eksportida valmis audiofailiks.

Audacity’l on sisseehitatud variandid erineva kvaliteediga ja erinevatesse vormingutesse eksportimiseks. Ühte juhist eksportimise kohta koos ekraanipiltidega saab näha siit: https://www.wikihow.com/Export-Audio-in-Audacity. Sealses juhises on pildil 4 näha rippmenüüst avanevad valikud erinevatesse vormingutesse eksportimiseks.

Minul tekkis aga huvi eksportida helifail OPUS vormingusse, mille jaoks Audacity’l sissehitatud varianti ei ole. Sellisel juhul tuleb helifail ekportida kasutades valikut (external program). Sisusliselt tähendab see, et Audacity ise ei teegi eksporti, vaid ekspordi teeb väline rakendus. Wikihow veebilehe juhises on ekraanipilt tehtud Windows arvutiga. Mina kasutan Linux’it ning minu arvuti korral on sama ekraanivaade veidi teistsugune:

Audacity rakenduses audiofaili eksportimise vormingu valiku aken Linux’iga arvutis

Kui selles vaates vajutada numbriga 1 märgitud valikule, siis avaneb vaheaken, kus saab täpselt määrata, millise rakendusega ja milliste omadustega audiofail eksportida tuleb:

Ekspordi määrangud välisele rakendusele

Toodud näites olen kasutanud rakendust “ffmpeg”, millele on lisatud mõningaid võtmeid ja faili nimeks olen valinud “salvestuse_nimi.opus”. Kasutatud käsk on

ffmpeg -i - -c:a libopus -b:a 128k "%f"

Selle käsu erinevate osade tähendus:

  1. ffmpeg – kasutatav käsurea rakendus, millega eksprt tegelikult tehakse
  2. -c:a – eksprdiks kasutatav koooder, antud juhul “libopus”, mis pakib faili “opus vormingusse
  3. -b:a kasutatav bitikiirus
  4. “%f” – faili nimeks panna see nimi, mis on üleval faili nime real

Kui Linux arvutis on paigaldatud ka audiovahendtite pakk opus-tools, saab välise rakendusena kasutada ka vahendit “opusenc”, mis võimaldab kodeerida opus vormingusse mugavamalt ja rohkemate võtmetega kui ffmpeg. Sel juhul on ekraanivaade midagi sellist:

Audio eksport Opus vormingusse programmiga Audacity

Katsetasin opusenc korral erinevate võtmetega eksportimist. Lõpuks kasutasin sellisel juhul välise rakenduse jaoks käsku

opusenc --bitrate 128 --title 'Jumalateenistus 6. oktoobril 2019' --artist 'Kärdla baptistikogudus' --genre Jumalateenistus --date 2019-10-06 --comment comment="Juhatab Tarmo Kähr, algussõna ja -palve Tarmo Kähr, sõnum Mihkel Ojasalu, jutlus Tarmo Kähr (1Kr 11, 23-32)" - "%f"

Siinkohal taas käsurea võtmete selgitused:

  1. –bitrate 128
    kasutatav bitikiirus. Sellest sõltub eksporditud helifail kvaliteet ja ka faili maht. Eesmärk on kasutada piisavalt kvaliteetset eksporti nii, et faili maht ei läheks veel veebi jaoks ülearu mahukaks. Mina valisin bitikiiruseks 128, mis on soovitatav bitikiirus faili säilitamiseks. Soovitused bitikiiruste kohta leiad siit: https://wiki.xiph.org/index.php?title=Opus_Recommended_Settings&mobileaction=toggle_view_desktop#Recommended_Bitrates
  2. –title
    Salvestatud helifaili pealkiri. Pealkiri ise tuleb panna ülakomade vahele, kuna see võib koosneda mitmest sõnast ja sisaldada ka erisümboleid. Seda pealkirja oskavad erinevad meediamängijad kuvada. SEE EI OLE FAILI NIMI!
  3. –artist
    Helifaili esitaja. Kuna minul oli tegu jumalateenistuse salvestusega, siis esitajaks ei ole konkreetne inimene, vaid kogudus.
  4. –genre
    Helifaili muusikaline stiil. Siin kasutatakse üldjuhul näiteks “koraal”, “klassika”, “popp”, “rokk”, “pärimusmuusika” vms. Kuna minul on jumalateenistuse salvestus, siis paningi stiili nimetuseks “Jumalateenistus”.
  5. –date
    Audiofaili salvestamise kuupäev kujul AAAA-KK-PP
  6. –comment comment=”Pikk kommentaari kirjeldus”
    Lisainfi faili kohta. Siia sisse võib kirjutada peaagu mida iganes. Jumalateenistuse salvestusel olen ma siis kirjutanud need, kes on konkreetsel teenistusel mingis osas kaasa teeninud. Kommentaar tuleb panna jutumärkide vahele, et seda käsitletaks muutmata kujul üheainsa väljana.
  7. “%f”
    Faili nimeks panna see nimi, mis on üleval faili nime real

find ja sed abil failis rea parandamine

Üks mu tegevusi on kodulehtede loomine. Kasutan kodulehe loomiseks enamasti Joomla! mootorit. Soovi korral muidugi võib kliendile paigaldada ka WordPress’i või muu mootori.

Kuna ma olen rohkem tuttav Linux’i maailmaga, siis kasutan programmeerimisvahendit PHP, andmebaasiserverit MySQL (õieti MariaDB on praegu andmebaasiserveriks) ja Apache veebiserverit. See on väga levinud veebilehtede loomise tehnoloogia, mis aga tähendab ka, et igasugused pahalased püüavad selle tehnoloogia abil loodud kodulehti rikkuda. Eesmärgiks on tavaliselt ikka kas mingi pahavara levitamine või mingi halva lisafunktsionaalsuse kodulehele külge pookimine. Sageli püüavad pahalased seda teha nii, et kodulehe külastajale ei pruugi midagi kahtlast silma hakata.

Kui arvutile on paigaldatud korralik turvalahendus, siis tavaliselt küll need turvalahendused annavad teada, kui mõnel kodulehel on paha kood ja sel juhul see paha kood ei saa vaataja arvutis kurja teha.

Turvalahendusega on vaataja küll kaitstud, kuid see ei kõrvalda kodulehelt halba koodi. Sellega tuleb tegelda ikka kodulehe omanikul endal. Tänases artiklis ma natuke puudutan seda, kuidas puhastada paha koodiga nakatunud kodulehte.

Kõigepealt on vajalik, et kodulehe omanik suudaks üldse kindlaks teha, et tema kodulehel on mingi paha kood. Kuna pahalane ise sellest ju kunagi märku ei anna, peab kodulehel olema mingi vahend, mis aeg-ajalt kontrollib kodulehe mootori failid üle ja kui leitakse paha kood, siis peaks see vahend sellest omanikku teavitama. Selliseid kodulehe monitoorimise vahendeid on mitmeid: Myjoomla, Nimbusec, Webarx, Monitis jt. Need vahendid jälgivad kodulehel faile ja kui juhtub mingi intsident (mõnda faili muudetakse ja lisatakse lubamatut koodi), siis annavad need vahendid sellest teada ja paljudel juhtudel aitavad ka selle paha koodi üles leida ning eemaldada.

Kui koduleht on langenud rünnaku ohvriks ja faile on rikutud, siis oluline on KÕIK rikutud failid üles leida ja korda teha. Kui on võimalik kodulehe mootorile ligi saada käsurea vahenditga, siis siin üks juhis, kuidas Linux masinas käsurea vahenditega üles leida kahtlane kood kõigist .php failidest ja see kõrvaldada.

Esmalt tuleks avada üks kahtlast koodi sisaldav fail ja vaadata, milline lõik on see kahtlast koodi sisaldav lõik. Tavaliselt eelpool nimetatud monitoorimise vahendid näitavad selle ära – sealt saab võtta siis kahtlase koodi näidise.

Seejärel tuleb üles otsida KÕIK seda kahtlast koodi sisaldavad .php failid ning sealt see kahtlane kood eemaldada. Sageli ei tohi eemaldada KOGU faili, sest kahtlane kood on lisatud kas faili algusesse või lõppu, kuid muidu on fail vajalik ja seda ei tohi kustutada. Muidugi võib ka olla lihtsalt lisatud faile, mida mootoril endal polegi vaja – sellised failid tulebki kustutada.

Kui kahtlase koodi näidis on leitud, siis saab kasutada programme find ja sed, mille abil otsitakse esmalt kindlat tüüpi failid üles ja seejärel eemaldatakse neist kahtlane kood, kuid fail ise salvestatakse uuesti puhtana tagasi.

Käsku näidis on selline

Käsu erinevate osade selgitus:

  1. Otsi alustades /vajalik-kataloog kataloogist: find /vajalik-kataloog/.
  2. Leia kõik php failid: -name .php
  3. Leitud failidel rakenda sed käsk: -exec sed
  4. Kasuta sed käsus regulaaravaldisi ja muuda faile käigult: -ri
  5. Otsi esimesest reast: 1s
  6. Otsi stringi, mis algab rea algusest: /^
  7. Otsi stringi, mis algab selliselt: <?php $uhnluvfusk (? ja $ tulevad varjata \-märgiga)
  8. Otsi stringi, mis on suvalise pikkusega: .*
  9. Otsi stringi, mis lõpeb selliselt: eugwxkrpjv-1; \?> (? tuleb varjata \-märgiga)
  10. Asenda leitud string tühjusega //
  11. Korda seda käsku iga leitud asja peal: {} +

Selles käsus vajalik-kataloog peaks olema siis kodulehe mootori juurkataloog. Sellisel juhul käib find-programm läbi kogu kodulehe kataloogipuu. See võib teinekord sisaldada päris palju faile, näiteks 5000 – käsitsi seda läbi uurida ei jõuakski:-)

Kuna minu juhtumil oligi nii, et kahtlane kood oli alati kohe faili alguses, siis seetõttu sain ma otsida vaid esimesest reast. Alati ei pruugi see nii lihtne olla.

Alguse ja lõpu stringid võivad erineda – seda tuleb vaadata iga kord oma leitud kahtlase koodiga failidest. Samuti võib olla, et kodulehel on mitme erineva alguse või lõpuga kahtlase koodiga faile – siis tulebki seda find ja sed käsku kasutada mitu korda, iga kord erineva alguse ja lõpu stringiga.

Kui koduleht ei ole väga ära ussitanud, siis on lootust niimoodi koduleht jälle puhtaks saada. Peale seda, kui koduleht on puhastatud, on mõistlik üle kontrollida kodulehel kasutatud vahendid – äkki mõni kodulehe pluginatest/laiendustest ongi ebaturvaline? Juhul, kui see nii on, siis puhastamine kauaks ei aita – ebaturvalise lisa kaudu tuleb pahalane uuesti sisse. Ebaturvaline lisa tuleb lihtsalt maha võtta või vaadata, kas on välja antud turvaparandus. Turvaparandused tuleb alati paigaldada.

Kuna dünaamilised kodulehed on alati teatud määral ohustatud, siis tuleb kodulehe omanikul tagada, et kodulehte monitooritakse turvalisuse seisukohalt ja hoitakse korras. Kui omanik seda ise teha ei oska, siis on mõistlik palgata keegi, kes seda oskab.

CD/DVD plaadile lugude nimekirja loomine

Üks sõber soovis, et ma teeksin talle kindla sisuga cd-plaadi. Üldiselt ei ole ju audiofailide plaadile kirjutamine eriti mingi probleem. Suurem jagu CD/DVD kirjutamise tarkvarasid oskavad üsna automaatselt luua vajalikud vormingus plaate.

Minul konkreetselt oli vaja luua tavaline CD-plaat, mida saaks mängida ükskõik millises (ka vanemat tüüpi) cd-mängijas. Algmaterjaliks olid arvutis olevad erinevat sorti – enamasti küll mp3 kodeeringus – failid.

Eesmärk oli saada CD-plaat, mis sisaldaks korrektseid lugude pealkirju ning lisaks soovisin luua ka plaadil olevate lugude nimekirja paberil, mida CD-karbile vahele panna.

Plaadi enda loomine ei olnud just keeruline. Kuna kasutan Ubuntu Linux arvutit, siis on minul välistatud kõik need programmid, millega sellist asja Windows-maailmas tehakse. Samas oli ikkagi valida mitme erineva CD-kirjutamise tarkvara vahel – ja mina polnud ammu ühtki plaati teinud ja enam suurt ei mäletanud. Päris hea artikkel erinevate CD-kirjutamise programmide kohta (inglise keeles) on aadressil http://www.techdrivein.com/2011/03/9-good-cd-and-dvd-burning-tools-for.html. See on küll küllaltki vana – aastast 2011 – kuid samad programmid on praegugi olemas ja väga head.

Üldiselt on Linux-maailmas nii, et igaüks peab ise endale selgeks tegema, milline vahend on tema jaoks parim. Mina nõustun üpris paljude arvamusega, et parim on tõesti K3B. K3B suutis ilma muid abivahendeid kasutamata kirjutamise käigus konverteerida mp3 failid tavalisele CD-le sobivateks audioradadeks, samuti oli olemas lugude sobivaks nimetamiseks mugav liides. Lisan ka ühe ekraanipildi – see võiks olla piisavalt informatiivne.

K3B ekraanivaade

Huvitavamaks läks aga siis, kui soovisin teha plaadile juurde lugude nimekirja. Ma ei tahtnud lugude pealkirju käsitsi ümber kirjutada. Soovisin leida vahendit, mis loeks lugude info plaadi enda pealt välja ja tekitaks kohe automaatselt A4 paberile väljatrükitava lugude nimekirja sobiva teksti suurusega.

Võib kohe öelda, et päris nii lihtsalt ja automaatselt asjad siiski ei käi. Vähemalt mitte Linux’i platvormil. Kohe ei leidnud tarkvara, mis oskaks lugeda kogu plaadilt vajaliku informatsiooni ja salvestada selle ilusasti tekstifailiks. Peale mõningast otsimist leidsin käsureavahendi nimega cd-info, mis luges plaadilt info välja ja väljastas selle lihtsalt terminaliekraanile. Selle vaade on järgmine:

cd-info väljund terminaliaknas

Terminalist saab teksti kopeerida – aga terminalis saab ka kasutada käsku

mis loob kohe tekstifaili, milles on olemas kogu tekst, mille cd-info väljastas. Seda tekstifaili saab juba igasuguste tavaliste tekstiredaktoritega redigeerida, et kustutada mittevajalik ja alles jätta vaid vajalik. Tekstist ülearuse kustutamine on oluliselt lihtsam ja kiirem tegevus, kui käsitsi kõigi laulude nimede kirjutamine.

Otsides head vahendit, mis looks CD-plaadi karbi sisse pandavat õiges suuruses ja tavaliselt paberilt välja lõigatavat etiketti, jäin lõpuks pidama LibreOffice Writeri siltide loomise abilise juurde. On olemas spetsiaalseid CD-etikettide loomise vahendeid (näiteks gLabels), kuid need sageli eeldavad, et ka prinditakse spetsiaalsele paberile või valmis kleepsupaberile. Mina aga tahtsin saada väga lihtsat ruudukujulist etiketti, millel oleks peal servajooned, et oleks lihtne pärast tavaliselt A4 paberilt välja lõigata. Selleks sobiski kõige paremini LibreOffice sildilooja. Alusta tuleb uue dokumendi loomist menüüde Fail → Uus → Sildid abil ja seejärel avaneb dialoogiaken, kust saab valida standardi, millist silti/etiketti just soovitakse luua. LibreOfficega on kaasas terve hulk erinevate tootjate poolt etiketistandardite põhju, kus on juba eeldefineeritud kõik vajalikud mõõdud. Järgmised kaks ekraanipilti näitavad seda, kuidas valida sobivat etiketti.

Uue etiketi loomine

Seejärel avaneb dialoogiaken, kust saab valita erinevate tootjate erinevaid etikettide ja siltide põhju.

LibreOffice sildid Avery A4

Kui oli valitud õige mark ja tüüp, siis tuleks vajutada “Uus dokument”, mis loob tühja dokumendi, kus on vaid raamid kastidele, kuhu sisse tuleb paigutada vajalik tekst. Need raamid on tehnilises mõttes objektid, mille omadusi saab muuta vastavalt soovidele: lisada taustavärve või panna ümber raamid; luua kas ühe-, kahe- või kolmeveeruline lugude nimekirja loend, mängida kirjaviisiga ja teksti värviga jne… Ainus, mida muuta ei tasu, on kasti enda mõõtmed ja asukoht lehel, kuna need on eeldefineeritud vastavaks CD-karbi mõõtudele ja paigutatud nii, et kindlasti kõik nähtav jääks.

Kui  vajalik tekst oli sisse toodud ja kujundatud, sai lõpptulemus järgmine:

Printimiseks valmis cd plaadi laulude leht

Tekstiredaktoris on lihtne muuta teksti suurust, paigutada pikema nimekirja korral laulud kahte veergu või teha mida just vaja, et kogu nimekiri ühele etiketile tervikuna ära mahuks. Seda lehte oli juba lihtne välja printida ja siis halli ala serva pidi õiges suuruses etiketid välja lõigata. Need sobisid täpselt cd-plaadi karbi sisse panemiseks.

Eks ta ole – kuna mul polnud pikalt vajadust sellist cd-plaadi etiketti teha, olin täiesti unustanud, kuidas see üldse käib. Nüüd sai uuesti metoodika meelde tuletatud. Kindlasti on minu viimasest plaadi tegemisest ka piisavalt palju aega möödas – selle aja jooksul on ka tehnilised vahendid muutunud. Nii tuligi sisuliselt uuesti õppida. Sel korral sai ka kirja pandud, et kui jälle vaja teha on, siis on ehk lihtsam järgi vaadata, kuidas see käib. Ja ehk on kellelgi veel sellest kasu.


PS. Linux-maailmas on tarkvara paigaldamine ise tehtud väga lihtsaks. Rohkem võtab aega uurimine, millist tarkvara just tahaks, aga installeerimiseks kasutan mina terminali-aknas käsku

Aga loomulikult on olemas ka graafiline vahend, mida viimasel ajal nimetatakse “Tarkvarakeskuseks” ja kust saab otsida tarkvara, vaadata tarkvara kirjeldust (enamasti küll inglise keeles) ja kui tundub, et see on sobiv tarkvara, siis ka kohe paigaldada. Mina vaatan tavaliselt enne veel veebist kasutajate arvamusi ja alles seejärel otsustan, kas rakendus on mulle loodetavasti sobiv või mitte.

Nuhkvara nimega “Windows 10”

Otsisin täna, kas ma saaks panna Ubuntu 15.10 peal tööle Eesti ID-kaardi tarkvara. Teadsin, et see pole ametlikult toetatud, kuid lootsin, et ehk on keegi siiski teinud töötava lahenduse. Selle käigus ledsin veebist artikli, autoriks Arvo Mägi: http://ubuntu.pingviin.org/ubuntu1510.html

Arvo Märgi artikleid tasub lugeda, ta kirjutab lihtsalt ja hästi. Mulle aga jäi silma seal selline lõik:

Microsoft lasi välja Windows 10, mis sobib kõigile seadmetele. Microsoft võib oma convergence (continuum) idee realiseerimiseks kulutada miljardeid, mida Canonicalil kusagilt võtta ei ole. Kumb hõivab suurema turuosa? Pole kahtlust, et Microsoft, kes teeb võimast reklaamikampaaniat, kasutades igat võimalust kasutajatele Windows 10 kaela määrida, ja loodab, et kahe aasta pärast on Windows 10 kasutusel miljardil seadmel. Windows 10 lauaarvutitele valmis 29. juulil ja esimese päevaga paigaldati see 14 miljonile arvutile, hoolimata sellest, et tegemist on ajaloo suurima nuhkvaraga.

Rõhutaks siinkohal eriti hinnangut “ajaloo suurim nuhkvara”

Ma ise olen juba pikaaegne Linux’i kasutaja. Ja mida enam ma seda kasutan, seda enam paneb mind imestama, miks on vaja üldse maksta kallist raha tarkvara eest, mis pole põrmugi parem kui tasuta alla laetav. Juba Windows 8 juhatas sisse Windows’i uuenduste tegemiseks lahenduse nimega “Microsoft Store” – mille kaudu saab tegelikult alla laadida ka Windows’i uuendusi ja samuti tasuta jagatavat tarkvara. Aga igal juhul tuleb seal Microsoft Sore’s end registreerida. See on osaliselt kindlasti Microsoft meetod kasutajate andmete kogumiseks. Just see minu andmete kogumine kommertsettevõtte poolt on asjaolu, mis mind väga häirib. Ja nüüd kirjutab Arvo Mägi, et “Windows 10 on ajaloo suurim nuhkvara” – miks ma peaksin oma isiklikku arvutisse installeerima ajaloo suurima nuhkvara? Ma pole enam kaua aega olnud Microsoft’i sõber. Püüan kõigist Microsofti toodetest üsna kaugelt ringiga ümber käia. Kui on võimalik kasutada muid lahendusi, siis ma seda ka teen. Muidugi, mis puudutab kasutaja andmete kogumist, siis ega teised kommertsettevõtted pole paremad. Kui kasutad Apple Mac OS X’i, siis samauti pead uuenduste installleerimiseks tegema endale App Store konto, kuhu Sa pead kindlasti kirja panema ka oma krediitkaardi andmed – kuigi Sa võib olla OSTA sealt kunagi midagi ei kavatsegi. Aga Apple tahab kindlasti teada oma operatsioonisüsteemi kasutajate andmeid.

Googlest ja Android’iga nutitelefonist me parem ei räägigi, nuhkimine käib täie hooga… Üks mu sõber ütles hiljuti, et kui soetad endale Android’iga telefoni, siis tegelikult võiks Google selle eest peale maksta, sest ta saab kasutajailt nii palju andmeid koguda, mida ta rõõmuga oma ettevõtte kasumi kasvatamiseks ära kasutab… Tegelikult on Android’i ostja Googlele kasulikum kui Android ostjale 🙂 Nojah, ka minul on Androidiga telefon, ikka raha eest ostetud.

Usun küll, et nii Windows 10 kui Mac OS X El Capitan on mõlemad parajad nuhkvarad: kasutaja tegevust arvutis jälgitakse ja selle kaudu suunatakse talle reklaami ja tehakse pakkumisi. Kumb nuhib kasutaja järgi rohkem, kas Microsoft või Apple, seda ei oska öelda. Küll aga on Microsofti operatsioonisüsteem haavatavam kui Apple Mac OS või Linux. Mulle jääb mõistetamatuks, miks inimesed maksavad raha kõige ebakindlama operatsioonisüsteemi eest, mis pealegi veel nende teadmata nende järgi nuhib…

Kui tahad vabaneda nuhkvarast nimega Windows 10 – vaata projekti  “küsi minult Linux’it” 🙂 Muide, Linux’it võib julgesti küsida tõepoolest ka minult. Loo, kuidas mina Linux’i kasutamiseni jõudsin, leiad siit.

Miks ma kasutan Linux’it?

Olen juba pikaaegne Linux’i kasutaja. Ma enam päris täpselt ei mäleta, kuidas ma Linux’i juurde sattusin. Igatahes kui alustasin arvuti kasutamist (umbes aastal 1993), siis oli meil Tartu Kõrgema Usuteadusliku Seminari raamatukogus kasutada arvuti, millel oli peal mingi DOS’i versioon ja sellel töötas selline tekstiredaktor nagu WordPerfect 5.1 for DOS. Hiljem oli seminaris juba Windows 3.11 for Workgroups. Tekstiredaktoriks kasutasime jätkuvalt WordPerfect’i, siis juba versioooni 6.0. Seminari viimasel kursusel aga soetasin endale isikliku arvuti. Sellele sai installeeritud samuti Windows 3.11 for Workgroups ja tekstiredaktor oli samuti WordPerfect 6.0. Nii Windows kui WordPerfect olid aga seminari omad, ma polnud neid ise ostnud.

Kui hakkasin paremini aru saama, millistel tingimustel tarkvaratootjate arvates keegi tohiks mingit tarkvara kasutada, leidsin, et mul pole tegelikult õigust ei Windows-i kasutamiseks ega ka WordPerfect’i kasutamiseks. Kommertstarkvara kasutamise ausaks meetodiks on see, kui Sa oled kasutusõiguse ise ostnud. Eelkõige kehtib see Windows’i enda kohta, aga sageli kehtib see ka kommertsiaalsete rakendusprogrammide kohta. Tahtsin väga saada ausaks, aga nii, et ei peaks kalli raha eest ostma operatsioonisüsteemi ja lisaks veel vajalikke programme ka. Raha kuigi palju polnud ka…

Sel ajal sattusin suhtlema sõbraga, kes juba kasutas Linux’it. Kuna Linux oli tasuta ning vaba ja Linux’i jaoks olid olemas ka vajalikud rakendused, siis otsustasingi üle minna vabale tarkvarale. Lisaks meeldis mulle vaba tarkvara maailma lähenemine asjadele. Iga liigutuse eest ei küsita rasket raha. Üsna sageli saad Sa tarkvara, mille keegi on loonud iseenda jaoks, tasuta alla laadida ja seda kasutada täpselt nii, nagu ise soovid. Samas, keegi ka ei keela Sul oma oskusi ja võimeid kasutades vaba tarkvara abil raha teenida. Küll aga kehtib põhimõte: kui Sa oled vaba tarkvara edasi arendanud ja selle edasiarendatud parema tarkvara müünud, siis sellel, kes ostab, on samasugune vabadus nagu Sul endal: ka tema võib seda edasi arendada ja siis juba ise edasi müüa. Nii ei pruugi vaba tarkvara alati tähendada tasuta tarkvara. Küll aga tähendab see, et kui Sa oled tarkvara ostnud, siis müüja ei saa enam kuidagi piirata seda, mida Sina selle tarkvaraga edasi teed. Kui soovid, võid Sa vabalt seda tarkvara lihtsalt edasi jagada.

Nii et jah, vaba tarkvara ei pruugi alati tähendada ka tasuta tarkvara, aga küllalt sageli on vaba tarkvara ka tasuta kättesaadav.

Kommertstarkvara puhul saad reeglina lihtsalt õiguse tarkvara kasutada, aga ei tohi ise tarkvara muuta ega edasi jagada või edasi müüa. Nii ongi, et kui ostad kalli raha eest tasulise tarkvara, siis tegelikult on Su õigused selle tarkvara osas palju rohkem piiratud kui vaba tarkvara puhul. Selle lähenemise tõttu olen mina tänaseks veendunud vaba tarkvara pooldaja. Soovitan kõigil, kellel mingil vältimatul põhjusel pole vaja kommertsiaalset (sageli kasutatakse ka terminit “omanduslik”) tarkvara kasutada, üle minna vabale tarkvarale. Nii saad Sa oma alles jäävat raha kulutada muudele asjadele ja keegi ei saa Sind piraatluses süüdistada.

Mis puutub minusse, siis olen valmis igale soovijale installeerima arvutisse Linux’i. Olenevalt kasutaja vajadustest võib valik olla kas Ubuntu, Kubuntu, Linux Mint, Estobuntu või mõni muu variant. Linux ise ei maksa sealjuures tõesti mitte midagi. Küll aga tuleb mul kulutada installeerimiseks ja kasutaja soovidele vastavaks häälestamiseks aega ja olen kahtlemata rõõmus, kui mulle kulutatud aeg kinni makstakse. Ja kuna Linux võib esialgu siiski harjumatu olla – kuigi tänapäeva Linux’id on vägagi kasutajasõbralikud – olen alati valmis kasutajat alguses ka aitama, et ta oma arvutiga ikka hakkama saaks. Kui vajadusteks on ainult e-posti lugemine, internetis uudiste ja multimeedia vaatamine, veidike teksti ja tabelite töötlemist – siis ei ole tegelikult mitte mingit põhjust osta endale Windows 10 ja sinna juurde veel Microsoft Office 365.

Muidugi Microsoft reklaamib igal sammul, et nende asi on parim – aga kes ei reklaamiks, kui nad selle pealt kõvasti teenivad? Kuna vaba tarkvara saabki sageli tasuta alla laadida ja keegi selle pealt suuri kasumeid ei teeni, siis seetõttu ei tehta vabale tarkvarale ka kuigi palju reklaami. Teenimatult, sest tegelikult on vaba tarkvara vägagi hea ja kõigeks, mida ühel “harju keskmisel” eestlasel vaja on, rohkem kui piisav.

Niisii, nagu pealkirjas öeldud: küsi minult Linux’it!

Leidsin toreda lingi

Leidsin täna toreda lingi – http://pdfreaders.org/ – kus aidatakse valida oma arvutisse pdf-failide lugejat. Me oleme tavaliselt väga harjunud, et pdf-failide avamiseks peab arvutis olema Adobe Reader. Adobe on küll algne pdf-standardi väljatöötaja, kuid pdf-vorming on avatud vorming ja seetõttu on olemas ka teiste poolt valmistatud pdf-dokumentide vaatamise programme. Kusjuures osad neist programmidest töötavad isegi paremini ja kiiremini kui Adobe enda poolt loodud Adobe Reader.

Paljud ettevõtted saadavad oma klientidele arveid pdf-kujul. Sageli on selliste e-kirjade osaks ka lause umbes sellises stiilis: “Arve vaatamiseks on vajalik programm Adobe Reader, mille saate alla laadida siit”. Mina ise olen Linux’i kasutaja. Kuigi ka Linux’ile saab alla laadida Adobe Readeri, on Linux’il enamasti kohe olemas programm Evince, mis on samuti pdf-vaataja. Niisiis mina ei vaja Adobe Reader’it. Ka neil, kes kasutavad Apple arvuteid ja Mac OS X’i, on kohe arvutiga kaasas rakendus Preview, mis oskab pdf-dokumente avada. Aga soovitan teistelgi oma arvutis üle minna mõnele muule pdf-dokumentide vaatamise programmile.

Väga hea ja kiire programm Windows-arvutitele on näiteks Sumatra PDF. Seal pole küll ehk nii palju võimalusi kui teistes, kuid lihtsalt faili avamiseks ja lugemiseks väga hea ja kiire. Aga ega tavaliselt pdf-failiga midagi muud ju ei tehta ka kui vaid avatakse sisu lugemiseks ja vahel ka printimiseks.

Kolisin Googlest ära – osaliselt

Kasutasin pikka aega Google kalendrit. See on hea ja mugav, võimaldab kõiki oma sündmusi erinevatel seadmetel omavahel sünkroonis hoida. Oled kodus arvuti taga  – sündmused on Thunderbird’i e-posti kliendi juures ilusti näha. Liigud kusagil ringi – ka mobiilis saab kalendrisündmusi Google kalenrdiga sünkroniseerida. Lisaks saab panna oma mobiili avaekraanile ilusa vidina, mis näitab alati lähiajaks kokku lepitud asju. Nii ei unusta ära, kuhu on vaja minna ja mida teha.

Aga natuke mulle see Google kalender ka ei meeldi. Sest kõik mu andmed on võõras serveris. Ja lisaks saab Google minu kohta liiga palju teada – ja siis suunab ta mulle personaliseeritud reklaami. Üldiselt mulle ei meeldi, kui liiga palju mu isiklikke andmeid on võõrastes kätes. Seepärast tahtsin tegelikult juba mõnda aega oma isiklikku kalendrit Googlest ära kolida. Samal põhjusel ei pane ma ka Facebook’i kõike, mis mu elus ette tuleb – pole vaja liiga palju isiklikust elust Mark Zuckerbergile anda 😉 Ja kui mina kellelegi pean suuri faile saatma, siis eelistan ma ka oma lahendust, mitte Google Drive’i või Dropbox’i.

Nii on mul juba tükk aega installeeritud omale kodune lahendus nimega Owncloud – see on sisuliselt isiklik pilv. Saab kasutada failide hoidmiseks ja sünkroniseerimiseks erinevate  seadmete vahel. Aga Owncloud võimaldab pidada ka isiklikku võrgukalendrit, võrgus olevat aadressraamatut ja muidki vajalikke asju – vaata lähemalt siit: https://apps.owncloud.com/. Seni oli Owncloud’i kalendrifunktsiooni kasutamisel takistuseks see, et ma polnud leidnud head vahendit isikliku pilvekalendri sünkroniseerimiseks oma telefoniga. Nüüd aga võtsin uuesti ette uurimise, kuidas siiski rohkem üle minna isiklikus serveris olevatele lahendustele ja loobuda Google pakutavast. Muidugi, Android telefon ise on ju peaagu et Google oma – nii et ega Googlest päris vabaks ei saa. Aga siiski saab seda infohulka, mis minust Googlesse jääb, veidi vähendada.

Niisiis, lisasin oma telefonile mõned rakendused: CalDav-Sync, aCalendar+, Owncloud. Jah, kõik need rakendused maksavad veidi raha. Aga tulemus mind vägagi rahuldab. Mu mobiil hoiab nüüd ilusasti aktuaalsena kõik sündmused ja sünnipäevad – kusjuures paremini kui seda enne tegi Google kalendrirakendus mobiilile. Samuti saan kergesti mobiilist vaadata faile, mis on mu oma serveris. Kui Dropbox annab tasuta kasutada 2GB, Google Drive 15GB kettaruumi (Google Drive puhul on tasuta maht summaarne kõigi asjade kohta: e-post, pildid, dokumendid), siis oma serveris pole mul muud piiri kui minu kõvaketta maht. Ehk siis praegu on mul kasutada 1,2TB kettaruumi.

Oma e-posti lugemiseks kasutan ma Thunderbird’i. Ja olles koduse arvuti taga, on mugav sündmusi vaadata kohe e-posti rakendusest. Samuti on mugav, kui saab lihtsalt saabunud e-kirja põhjal luua uue sündmuse. Selles on vajalik Thunderbird’ile lisada kalendrilaiendus Lightning. Ja et Lightning hakkaks kalendrisündmusi sünkroniseerima pilvega, on vaja ka vastavaid sünkroniseerimise lisasid. Google kalendriga sünkroniseerimiseks on vaja Provider for Google Calendar, Owncloud’i kalendri jaoks SOGo Connector Thunderbird extension. Sellelt lehelt tuleb alla laadida õige versioon ja Lightning peab olema enne juba installeeritud. – Vaata lisa artikli lõpus.

Muidugi on sellisel isiklikul serveril ka puudusi. Suurim puudus on see, et minu serveri ühenduskiirus internetiga võiks parem olla… Ja muidugi pean ma ise tagama turvalisuse ja töökindluse. Ja jälgima, et serveri tarkvara oleks uuendatud ja kaasaegne.

Ega Google pakutav paha pole. Ja ka Facebook on kindlasti omal kohal. See, et mina eelistan muid lahendusi, on minu isiklik huvi. Ja hetkel igatahes olen rahul – eks näis, kas ma ka rahule jään.

NB! Täiendus 8. oktoobril 2015: Lightning ei vaja mitte midagi lisaks selleks, et sünkroniseerida andmeid OwnCloud kalendriga. OwnCloud nimelt toetab CalDav protokolli, mille tugi on ka Lightning’ul ilma mingite lisa-asjadeta olemas. SOGo Connector on vajalik üksnes siis, kui võrgukalendrit peetakse SOGo serveris.

Jah, ma olen seni väga rahul – sünkroniseerimine erinevate seadmete ja rakendustega toimib suurepäraselt, pealegi on mobiilile peale tõmmatud aCalendar+ oluliselt parem kui enne kasutatud Androidiga kaasa tulnud kalendrirakendus.

Kuidas teha optilist tähetuvastust

Üks sõber saatis mulle portsu faile, milles olid skaneeritud tekstid. Need tekstid oli vaja teha uuesti selliseks, et neid saaks arvutis töödelda. Ühesõnaga, oli vaja teha OCR. Minul kodus on Linux, täpsemalt Ubuntu. Ja seni polnud mul veel vajadust olnud oma koduses masinas optilist märgituvastust kordagi teha. Varem oli mul töö juures skanner, mis oskas skaneerimise käigus ise ka OCR’i teha – seetõttu polnud seda vaja arvutis teha. Nüüd aga olid lihtsalt failid, kust tuli tekst võimalikult viisakal moel kätte saada.

Failid ise olid pdf-failid, kuid need olid raamatutest skaneeritud ja salvestatud pildina, st ilma võimaluseta otse pdf’ist teksti kopeerida. Failid olid erineva pikkusega: lühim oli kolm lehekülge, pikim üle 40 lehekülje.

Nagu ikka, esimese asjana veidi “googeldamist”. On olemas päris head võrgus olevad OCR’i pakkuvad lehed, kus saab märgituvastust teha ilma, et omal arvutis vastavat programmi olemas oleks. Üks päris hea leht selleks on siin: https://www.newocr.com/. See leht võimaldab ka pikemaid dokumente tekstiks konverteerida, ainult et tüütu on see, et iga lehte tuleb eraldi salvestada.

Niisiis püüdsin leida vahendit, mis teeks seda kõigi lehtedega korraga ja mis salvestaks tulemuse mulle automaatselt arvutisse.

See “googledamine” andis mulle ka selle lehe: https://help.ubuntu.com/community/OCR. Üldse on leht help.ubuntu.com päris hea leht. Kui osata inglise keelt, siis leiab sealt abi väga paljude Linux’i-teemaliste küsimuste kohta. See leht on küll Ubuntule orienteeritud, aga ka muude Linux’ite korral, mille aluseks on Ubuntu või Debian, on sealsed õpetused üsna hästi rakendatavad.

Selle lehel oli siis kirjas väike skript, kuidas programmi Tesseract abil Linux arvutis teha mitmelehelisele pdf-dokumendile optilist märgituvastust ja kuidas see tulemus salvestada arvutisse tekstifailina. Kordan seda skripti ka siin, tõsi, eestikeelsete kommentaaridega:

Muidugi, selleks et see skript saaks oma tööd korrektselt teha, peavad arvutis olema programmmid ImageMagick ja Tesseract. Hea uudis on see, et Tesseract’il on päris suure hulga erienvate keelte toetus. Ingliskeelne info ütleb nii:

There are currently language packs available for the following languages:
ara (Arabic), aze (Azerbauijani), bul (Bulgarian), cat (Catalan), ces (Czech), chi_sim (Simplified Chinese), chi_tra (Traditional Chinese), chr (Cherokee), dan (Danish), dan-frak (Danish (Fraktur)), deu (German), ell (Greek), eng (English), enm (Old English), epo (Esperanto), est (Estonian), fin (Finnish), fra (French), frm (Old French), glg (Galician), heb (Hebrew), hin (Hindi), hrv (Croation), hun (Hungarian), ind (Indonesian), ita (Italian), jpn (Japanese), kor (Korean), lav (Latvian), lit (Lithuanian), nld (Dutch), nor (Norwegian), pol (Polish), por (Portuguese), ron (Romanian), rus (Russian), slk (Slovakian), slv (Slovenian), sqi (Albanian), spa (Spanish), srp (Serbian), swe (Swedish), tam (Tamil), tel (Telugu), tgl (Tagalog), tha (Thai), tur (Turkish), ukr (Ukrainian), vie (Vietnamese)

Nagu näete, on ka eesti keel selles loetelus olemas. Ma arvan, et enamasti ei tule ette juhtumit, kus on vaja teha tekstiks mingit sellise keele faili, mille toetus Tesseract’il puudub. Kindlasti on aga nii, et parim märgituvastus on just inglise keeles. Kuigi päris laitmatu ei ole märgituvastus kunagi – kui olete OCR-’i läbi teinud, tuleb pärast kindlasti tulemus üle kontrollida ja vead ära parandada. Ah ja, kui kellelgi peaks olema oskust, siis saab Tesseract’i ise niiöelda “treenida”: https://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3.

Mina sain igatahes ilusasti mulle saadetud failid tekstiks teha ja sõbrale tagasi saata. Ehk on kellelgi veel siinsest infost kasu. Seda infot võib vabalt levitada. Aga nagu vabalt levitatavate asjade puhul ikka: siinse info kasutamine on täielikult kasutaja enda vastutusel. Mina, Tarmo Kähr, ei vastuta mingil kombel siinse info kasutamise korral tekkivate tagajärgede eest, millised need tagajärjed siis ka ei oleks. Mina olen selle info tasuta saanud, tasuta jagan ma seda ka edasi. Kui kellegi on sellest kasu, on mul hea meel. Kui keegi saab sellest kahju, siis on mul kurb meel. Aga ei kasu ega kahju eest ei võta mina mingit vastutust.

Veel video loomisest

Eelmisel korral kirjutasin video loomisest, mille lähtematerjaliks oli hulk pilte. Kirjutan nüüd video loomisest uuesti – aga sel korral oli pilte palju rohkem.

Niisiis. alustame.

Algmaterjal: kaks kataloogi, kuhu kaks kaamerat tegid poole aasta jooksul iga minut ühe pildi. Pildid on samast objektist, aga erinevate nurkade all. Kaamerate piltidest tuleks kokku panna video. Pilte on kokku sadu tuhandeid (iga tund 60 pilti ja niimoodi septembrist oktoobrini (13 kuud): 60(pilti tunnis)x24(tundi päevas)x30(päeva kuus)x13(kuud)=561600 pilti ÜHE kaamera kohta). Tegelikult on see number ligilähedane, sest igas kuus ei ole 30 päeva ja aeg-ajalt oli ka häireid, nii et pilte ei saanud üle võrgu üles laadida. Piltide mõõtmed: 800x600px, ühe pildi maht ca 120kB.

Eesmärk: luua piltidest „kiirvideo“ objekti valmimise kohta.

Sammud eesmärgi saavutamiseks:

  1. Kopeerida vajalik hulk pilte kummagi kaamera algmaterjalide kataloogist töötlemiseks uude kataloogi. Arvestusega, et video tuleb 25 kaadrit sekundis, siis vajalike piltide arv sõltub loodava video pikkusest (iga minuti kohta 25×60=1500 pilti).
  2. Seejärel kleepida kaamerate pildid kokku nii, et kaks pilti oleks uuel pildil kõrvuti. Kui algsed pildid on mõõtudega 800x600px, siis kahest kokku pandud uus pilt peab olema mõõtudega 1600x600px (kõrgus jääb samaks, aga kaks korda laiem).
  3. Seejärel kokkukleebitud piltidest luua vajalik videofail ja lisada sinna heli.

On kaks kataloogipuud – kummlagi kaameral oma kataloogipuu. Pildid asuvad kataloogides nii, et üks aasta on üks kataloog, milles on alamkataloogid kuude kaupa. Iga kuu kataloogis on alamkataloogid kuupäevade kaupa, seal omakorda alamkataloogid tundide kaupa. Ühe tunni pildid asuvad samas kataloogis ning pildifailidel on nime algused samasugused kuni 11-nda sümbolini (faili nimes on kirjas aasta, kuu, päev, tund ja minut kahekohalisena, st AAKKPPHHMM; faili alguses on alati täht m). See pildifaili nimetamise põhimõte on läbiv kogu kataloogipuus. Niisiis, ühes kataloogis on 60 pildifaili. Kataloogipuus on aga neli taset alates tipust, kuid failinimed on ühe kataloogipuu piires kordumatud.

Näide ühe kataloogipuu kohta on alloleval pildil. Teine kataloogipuu on sarnase struktuuriga, vaid tipmine kataloog on teise nimega – lehtma.

Jupp ühest kataloogipuust

Kataloogipuu struktuurinäide

Vaja oli leida kummastki kataloogipuust samadel kellaaegadel tehtud pildid. Faile oli kummaski kataloogipuus 561600, kokku üle miljoni faili… Kuid kellaaega tähistas neli numbrit, mis asusid faili nimes kaheksandast kuni üheteistkümnenda positsioonini. See andis võimaluse luua kopeerimiseks vajalik reegel. Tegelikult polnud üldse vaja vaadata 11-st postitsioonist edasi, kus lõpud olid muutuvad. Minule vajaliku video jaoks piisas, kui ma võtsin igast päevast ca 10 kaadrit kindlatel kellaaegadel. Niisiis tuli mul teha ühe kataloogipuu kohta kümme kopeerimist – iga vajaliku kellaaja kohta tuli üks käsk. Kokku sai kakskümmend korda kopeerimist. Sihtkataloogid, kuhu kopeerida, tegin käsitsi enne valmis.

Käsk sai järgmine:

Selgitus:

  1. find . -name “???????0910*.*”
    Otsi faile, mille nimes oleks alates 8-ndast sümbolist antud konkreetsed numbrid. Need konkreetsed numbrid viitavad kellaajale, millal pilt tehti: näites on 0910 – pildid, mis on tehtud kell 9:10. Faili lõpp pole tegelikult enam oluline ja ilmselt võiks jätta ka lihtsalt tärni. Käsk „find“ töötab rekursiivselt, niisiis alustatakse parasjagu aktiivsest kataloogist (punkt tähistab aktiivset kataloogi) ja käiakse läbi kogu kataloogipuu.
  2. Käivita leitud failide kopeerimine (-exec cp) ja ära muuda failide ajatempleid (-p) ning kopeeri etteantud sihtkataloogi (-t /see/uus/kataloog/kuhu/kopeerida/lehtma/). Sihtkataloogi määratlust alustasin süsteemi juurkataloogist (kaldkriips / tähistab linux’is juurkataloogi), aga vajadusel saab ka määrata suhteline tee sihtkataloogini.
  3. Korda antud tegevust niikaua kuni leiad vastavaid faile: {} +
  4. Seda käsku tuli korrata iga soovitud kellaaja kohta, muutes vaid 8-ndast kuni 11-kohani asuvaid numbreid.

Minul tekkis kummassegi kataloogi (lehtma ja otikas) üle 5000 faili.

Siis tuli leida veel kataloogide sisu võrdlemise teel failid, milledele uutes loodud kataloogides polnud vastet teises kataloogis. Vastavust mitteomavad failid tuli teisest kataloogist kustutada. Asi oli selles, et kaamerad ei saanud alati täpselt samadel aegadel pilte tehtud – kas võrgu ülekoormatuse tõttu või mõnel muul juhuslikul põhjusel. Seetõttu tekkis kataloogides failide kellaaegades erinevusi. Minule oli aga väga oluline saada alati kaks pilti, mis on tehtud sama minuti sees. Erinevuse kindlaks tegemiseks ja kustutamiseks kasutasin linuxis käsurea skripti:

Selgitus:

  1. Kataloogi „otikas“ failide loetelu
  2. Võrdle seda loetelu kataloogis „lehtma“ olevata failide nimede esimese 11 sümboliga (arvuti alustab loendamist nullist, seetõttu 0:10, MITTE 1:11)
  3. Kui tulemus ei ole 0 (st failil vastavus puudub), siis anna sellest teada (echo…)
  4. Kustuta see fail kataloogist „otikas“ ära

Sama käsk tuli anda ka teise kataloogi suhtes.

Jäi veel mingi väike osa faile, mida see käsk ei suutnud üles leida ja kustutada, kuna osadel failidel oli mitu vastavust (skript leidis need, kus oli VÄHEMALT ÜKS vastavus, seega MITME vastavusega faile ei kustutatud. Need failid leidsime üles tabelarvutuse abil kasutades järgnevaid funktsioone:

lehtma otikas eraldus1 eraldus2 vordlus
m120909091001952.jpg m120909091045997.jpg =LEFT(A2;11) =LEFT(B2;11) =IF(C2=D2;1;-1)

Nende valemite tulemus oli selline:

lehtma otikas eraldus1 eraldus2 vordlus
m120909091001952.jpg m120909091045997.jpg m1209090910 m1209090910 1/-1

Nüüd eksportisin mitteklappivate failide nimed csv tekstifaili. Ja nüüd sain juba linuxis anda uuesti käsu, mille abil tekstifailis olevate failide nimed sai omakorda kustutada:

Failis „kustutada_otika_kataloogist.csv“ olid kustutamiseks mõeldud failide nimed.

Käsuga xargs saab luua käske, kasutades sisendina tekstifaili sisu.

Selle kohta leidus info siin: http://stackoverflow.com/questions/5142429/unix-how-to-delete-files-listed-in-a-file

Lõpptulemusena sain kaks kataloogi, kus sees oli võrdne arv pilte, mis pealegi on tehtud kõik samadel minutitel (kummaski kataloogis on igale pildile teises kataloogis samal ajal tehtud pildi näol vaste).

Veel oli vaja üle kontrollida, kas kõigi piltide mõõtmed ikka olid kindlalt samad. Kuna mul oli vaja pilte mõõtudega 800x600px, tuli leida, kas ei ole juhtumisi valedes mõõtudes pilte ja need tuli viia õigesse mõõtu. Valedes mõõtmetes pilte oli 531 (ühe kaamera esimeste kuude pildid olid liiga suured). Need viisin õigesse mõõtu programmiga phatch (http://photobatch.stani.be/).

Seejärel nimetasin mõlemas kataloogis kõik pildifailid ümber nii, et tekiks järjekord:

Selgitus:

Oluline osa on

– siin antakse käsk pildifaili ümbernimetamiseks. %06d määrab kasutatava numbrikohtade arvu, minul siis 6 numbrikohta.

Tuletame nüüd veelkord meelde: sadamas oli üleval kaks kaamerat, mis mõlemad tegid sünkroonis pilte. Kummagi kaamera pildifailid said eelpool näidatud viisil välja valitud ja õigetesse mõõtudesse viidud. Praeguseks on siis kummagi kaamera pidid eraldi kataloogides ja valmis edasiseks töötluseks.

Seejärel oli aga vajadus panna kaamerate pildid kokku üheks pildiks, et tekiks „laiekraanvideo“ – niimoodi sai näidata ühes kaadris poole laiemat ala. Selle tegevuse läheolukord oli järgmine:

Esimese kaamera pildid:
otikas/pilt_00001.jpg
otikas/pilt_00002.jpg
otikas/pilt_00003.jpg
otikas/pilt_00004.jpg
otikas/pilt_00005.jpg

Teise kaamera pildid:
lehtma/pilt_00001.jpg
lehtma/pilt_00002.jpg
lehtma/pilt_00003.jpg
lehtma/pilt_00004.jpg
lehtma/pilt_00005.jpg

ja nii edasi, kummaski kataloogis oli ca 5300 pilti.

Nüüd oli vaja lahendust, mis hakkaks järjest katalooge läbi käima ja võtma paarikaupa kataloogidest pilte ja neid kokku kõrvuti panema ning tulemust salvestama kolmandasse kataloogi. Selleks saab kasutada käsku „montage“ (ImageMagick’u käsureavahend), millele tuli lihtsalt ette anda loend õigel viisil. Selleks sai tehtud järgmine skript:

Peale seda käsku oli mul uus kataloog (kataloog3), kus oli 5300 pilti, mis olid valmis laiekraani video tegemiseks.

Ning siis programmiga ffmpeg sai piltidest video „kokku keevitatud“:

Video tegemise õige vahend on tegelikult avconv – ffmpeg on tegelikult juba vananenud vahend ja alles veel lihtsalt ühilduvuse mõttes. Tulevastes distributsioonides kaob see ära.

Tulemusvideot saab vaadata siin: http://www.youtube.com/watch?v=98AMX3YK2BA

Antud kirjelduses ei ole toodud muusika lisamist videofailile. Muusika lisasin valmis “tummfilmile” programmiga “OpenShot video editor”.

Kaamera kell oli vale…

Kaua pole bloginud – viimane sissekanne juba vaata ei kaks kuud tagasi. Siit järeldub, et ma olen vilets kirjutaja. Teadsin seda küll enne ka…

Sattus mu kätte üks kaamera, millega tegin mõned pildid. Kaamera polnud minu oma. Tavaline pisike digikas, Sony DSC-W220. Tegin pildid ära ja salvestasin omale arvutisse. Siis mõne aja pärast oli vaja need pildid panna ka internetti veebigalerisse. Ja siis pilte arvutis vaatama hakates selgus, et kaamera kell oli olnud täiesti vale ja kõik pildid olid saanud loomulikult külge vale pildistamise kuupäeva. Kuna ma ei tahtnud vale kuupäevaga pilte veebi panna – äkki mõni vaatab pildi EXIF andmeid ja need polegi õiged – siis hakkasin otsima vahendit, millega piltide kuupäev EXIF andmetes õigeks keerata. Leidsin – Linuxi jaoks muidugi – kaks vahendit, mis tundusid paljulubavad. Mõlemad kahjuks käsurea-vahendid, kuid kui õige käsk leitud, siis on ka käsurealt kasutatav vahend tegelikult väga mugav. Vahendite nimed: exiv2 ja exiftool. Mina lõpuks kasutasin vahendit exiftool, mis väga mõnusasti võimaldab manipuleerida digifoto EXIF-andmetga. Selle utiliidi kohta on kirjas nii: “ExifTool on platvormist sõltumatu Perli teek ja käsurea-vahend, mille abil on võimalik laia skaala failide meta-andmeid lugeda, kirjutada ja muuta.”

Minul oli vaja tuua pildistamise kuupäev 1 kuu, 29 päeva ja 58 minutit ettepoole (st varasemaks). Käsk, mis selle ära tegi, oli järgmine:

Väike selgitus ka:

“-DateTimeOriginal”: see mida muudetakse, pildi kuupäev
“-“-märk enne “=”-märki: aega tuleb nihutada ETTEPOOLE, st varasemaks. Kui seal oleks “+”-märk, siis tuleks nihutada hilisemaks.
“0:1:29 0:58:0”: 0 aastat, 1 kuu, 29 päeva, 0 tundi, 58 minutit, 0 sekundit
Ja lõpuks kataloogi nimi, milles olevate piltide EXIF-andmed muudetakse.

Kokkuvõtteks oli väga mugav terve kataloogitäie piltide EXIF-andmete muutmine. Kui alguses otsisin selle töö tegemiseks mingit graafilist vahendit, siis tagantjärgi leian, käsureavahend oli mugavamgi. Raskeim osa oli välja nuputada, kui palju aega nihutada vaja oli. Ja kui lugeda exiftool’i juhendeid, siis saab muuta peaaegu mida iganes.