Archive for multimeedia

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

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.

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.

HD video loomine

Täna sai mul valmis esimene omatehtud HD video. Tegemist oli lihtsalt katsetusega, et suurem hulk kõvakettale kogunenud pilte videoks teha. Pean tunnistama, et ma väga osav videotöötleja ei ole. Seetõttu läks õppimiseks, juhendite otsimiseks ning lugemiseks päris palju aega. Samuti tuli mul arvutile veidi tarkust juurde tõmmata, et video tegemine ikka hästi õnnestuks. Täna aga sai see proovitöö valmis ja seekord tulemus mind juba rahuldas. Kui keegi veel peaks sellist tööd tegema, siis siinkohal minu kogemused: ehk on sellest abi.

Algne olukord: kataloogis hunnik pilte, mis tehtud perioodilise ajavahemiku järel. Pildid nagu pildid ikka, sellised nagu nad kaamerast tulevad: 3246x2448px. Piltide nimed olid stiilis IMGP2353.JPG – pange tähele, kaamerad panevad piltidele sageli nimed SUURTE TÄHTEDEGA. Minule see ei meeldi, mina muudan piltide nimed ära väiketähelisteks. Kuna ma sageli pean asju üles panema veebi, ja kuna enamasti veebiserverid on mingid Linux’id või BSD’d, siis tasub teada, et seal tehakse suurtel ja väikestel tähtedel rangelt vahet. Ja et mitte meeles pidada, kas pildi nimi tuli nüüd suurte või väikeste tähtedega kirjutada, siis muudan ma alati KÕIK failide nimed ära väiketähelisteks.

Nii et esimese asjana nimetasin failid omale sobivalt ümber:

find -name ‘*.JPG’ | gawk ‘BEGIN{ a=0 }{ printf “mv %s img_%06d.jpg\n”, $0, a++ }’ | bash

Selle käsu tulemusel said mu failid nimeks img_000000.jpg, img_000001.jpg, img_000002.jpg jne kuni viimaseni. Selle käsu andmise juures on oluline, et ei oleks alamkatalooge (sest käsk “find” otsib rekursiivselt ka alamkataloogidest). Ja “%06d” määrab, mitu numbrikohta failide nimetamisel kasutatakse – minul oli siis kuus umbrikohta. Vajalik numbrikohtade arv sõltub sellest, kui palju pilte on vaja järjekorras ümber nimetada. kui on vaja 1000 pilt, siis peaks see olema “%05d”, kui aga on kümme pilti, siis piisab ka “%03d”. Mulle meeldib, et alati jääb alles alguse 0 – seepärast on mul alati numbrikohtade arv ühe võrra vajalikust suurem.

HD video on külgede suhtega 16:9, laiuseks on 1920px ja kõrguseks 1080px. See tähendab, et algsed pildid sellisel kujul video tegemiseks ei sobi, kuna külgede suhe on hoopis 3:4 ja ka mõõtmed pikslites on liiga suured. Niisiis esmalt peaks pildid viima õigesse mõõtu selliselt, et pildil olevate objektide proportsioonid jääks ikka paika. See tähendab, et ei saa lihtsalt näiteks pildi kõrgust vähendada, kuna sel juhul muutuksid kõik piltidel olevad objektid madalaks ja laiaks. Inimesed oleks siis lühikesed ja paksud – aga kes see ikka tahab lühike ja paks olla? Teiselt poolt tahaks kaadrist maha võtta nii vähe kui võimalik, mis seab omad piirid piltide lõikamisele.

Et leida kaadrist õiget kohta, kasutasin programmi Gimp, mille abil määrasin piltide hulgitöötlemiseks vajalikud lõikamise parameetrid. Parameetriteks on kaadri suurus ja lõikamise ülemise vasaku nurga asukoht. Õigete parameetrite leidmist näitab see juhend: http://www.linuxtutorialblog.com/post/cropping-multiple-images-the-same-way-short-tutorial – see juhend on küll ingliskeelne.

Nüüd, kui õige kaadrist lõigatav osa on leitud, on aeg asuda pilte töötlema. Minu proovitöös oli 54 pilti, aga pilte võib olla ka 54000 näiteks… Piltide arvust sõltub loomulikult ka töötlemise aeg. Aga töötlemise aeg sõltub ka arvuti võimekusest. Igal juhul tasub suure piltide hulga korral arvestada, et töötlemine võib kesta tunde.

Mina kasutasin piltide lõikamiseks käsku “mogrify”, mis on Linux masinas olemas, kui on installeeritud pakett ImageMagick. Minul oli vajalik selline käsk:

mogrify -crop 3264×1836+0+343 *.jpg

Nagu näha, laiuse jätsin samaks, aga ülevalt lõikasin 323px välja ja uueks kõrguseks sai 1836px. Tulemusena tekkinud pildid olid aga ikka veel liiga suured: 3264x1836pg, aga vaja oli ju 1920x1080px.

Nüüd järgnes piltide skaleerimine. Määrata on vaja vaid laius, kõrgus skaleeritakse automaatselt proportsioone säilitades:

mogrify -resize 1920 *.jpg

Arvestada tuleb, et “mogrify -resize” käsk võtab kõige kauem aega. Nüüd olid mul valmis pildid ilusasti nimede järjekorras ja õiges mõõdus HD video jaoks.

Nüüd polnud enam vaja muud, kui leida õige käsk video tekitamiseks. Mina leidsin endale sobiva olevat sellise käsu:

ffmpeg -f image2 -i “img_%06d.jpg” -r 25 -s 1920×1080 -qscale 12 -an “output4.mov”

Siin ka programmile ffmpeg lisatud mõnede võtmete selgitused:
-i “img_%06d.jpg” – mllised pildid on programmi sisendiks
-r 25 – etteantud kaadrisagedus (25 kaadrit sekundis)
-s 1920×1080 – tulemueks saadava video laius ja kõrgus pikslites
-qscale 12 – siin kasutatakse inglise keeles terminit “quantization scale” – mida ma ei oska hästi eesti keeles väljendada. Sellest sõltub oluliselt saadava videopildi tihedus ja samuti ka tulemusfaili maht. Mida väiksem on see skaala, seda suurem on fail ja parem video.

Programmil ffmpeg on võtmeid palju. Kes inglise keelt loeb, siis pärism hea juhendi piltidest video tegemiseks leiab siit: http://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/image_sequence
Sobivaid võtmeid ja väärtusi kasutades saab ilmselt üsna igasuguseid videosid teha, ka koos audiorajaga, kui vaja. Põhjalikku juhendit ffmpeg kohta saab lugeda siit: http://ffmpeg.org/ffmpeg.html

Mina sain palju targemaks. Ja et meelest ei läheks, sai see nüüd siia ka kirja pandud. Kui kellelegi sellest kasu on, siis on veel topelt hea. Ah ja, lõpuks võib veel nimetada, et proovitöös olnud 54-st pildist mahuga kokku 48MB sai HD video, mille maht oli 6,5MB ja pikkus ca 2 sekundit.