Sređivanje slika i filmića poslije odmora (2)
U članku Sređivanje slika posljie odmora (exifran i jhead) Branko Radojević je opisao kako uniformirati nazive slika koje snimimo na putovanjima i godišnjim odmorima, a sve s različitim aparatima i mobitelima. Pomoću EXIF taga možemo ujednačiti ime i odrediti orijentaciju slike, ali članak se nije pozabavio filmićima, niti greškama s nesinhroniziranim satovima na različitim kamerama.
Kada je riječ o filmićima, nekada su obično bili formata MPEG2 i skromne rezolucije, a sada su to MPEG4 snimke visoke rezolucije. Kad nam je već dostupna mogućnost snimanja filmova sa zvukom u visokoj rezoluciji, svakako ćemo je iskoristiti, zar ne?Filmiće možemo importirati u neki editor i objaviti na vlastitom Youtube kanalu (što iziskuje dodatni trud), ili ih jednostavno arhivirati. Međutim filmovi nemaju EXIF tag, nego ili vlastite tagove, ili nemaju nikakvo meta-zaglavlje, pa ih nije jednostavno imenovati. No, uz pomoć skripte moguće je preimenovati filmove na isti način kao i fotografije iz Brankovog članka. Ovo vrijedi za različite formate filmova, MOV, MPG, MP4.
Skripta će pročitati vrijeme kreiranja datoteke pomoću naredbe "stat", opisane na adresi http://sistemac.carnet.hr/node/731. Uz upotrebu malo elementarnog awk-a i sed-a, dobit ćemo vrijeme kreiranja datoteka, pa ćemo ga iskoristiti kao ime datoteka. Skriptu smo nazvali renMPG.sh.
#!/bin/bash
for file in *.MPG
do
date=$(stat --format=%y $file | awk '{print $1}' | sed 's/-//g')
time=$(stat --format=%y $file | awk '{print $2}' | \
sed -e 's/://g' -e 's/\.000000000//g')
filename="${date}_${time}"
mv $file $filename.mpg
done
Skripta je posve jednostavna i radi samo za *.MPG datoteke, ali ju je lako prilagoditi za .MOV ili .MP4 formate (samo promijenite ekstenziju na dva boldirana mjesta u skripti).
Kako radi skripta? Naredba stat ispiše datum i vrijeme u nama razumljivom obliku, jer smo joj to zadali parametrom --format=%y (human-readable):
$ stat --format=%y MOV08500.MPG
2015-01-04 17:10:36.000000000 +0100
Dobili smo obje vrijednosti koje nam trebaju (datum i vrijeme), pa ćemo dodijeliti odgovarajućim varijablama. S awk-om ćemo odrezati samo prvi dio ispisa:
$ stat --format=%y MOV08500.MPG | awk '{print $1}'
2015-01-04
$ stat --format=%y MOV08500.MPG | awk '{print $1} | sed 's/-//g'
20150104
Sličan je postupak i za dobivanje vremena kreiranja datoteke. Postupak je mogao biti elegantnije riješen, no i ovo je dovoljno dobro.
Pogledajmo sada kako cijela skripta radi:
$ ls -l
-rw-r--r-- 1 user user 2515326 Jan 4 17:09 DSC08499.JPG
$ bash -x renMPG.sh
+ stat --format=%y MOV08500.MPG
+ awk {print $1}
+ sed s/-//g
+ date=20150104
+ + awk {print $2}
+ sed -e s/://g -e s/\.000000000//g
stat --format=%y MOV08500.MPG
+ time=171036
+ filename=20150104_171036
+ mv MOV08500.MPG 20150104_171036.mpg
$ ls -l *.mpg
-rw-r--r-- 1 user user 10961370 Jan 4 17:10 20150104_171036.mpg
Skripta ne ispisuje ništa, pa smo je pokrenuli s opcijom "-x" da vam pokažemo izvršavanje skripte korak po korak (ukoliko su vas malo zbunili znakovi "+").
Skripta ne provjerava postoji li datoteka tražene ekstenzije, niti radi bilo kakve druge provjere. Zato, prvo provjerite kako radi na kopijama datoteka, za svaki slučaj.
Spomenuli smo neku grešku na početku članka. "Greška" je bila: pogrešno podešen sat. Ne samo par minuta, nego cijeli jedan sat zbog zimskog/ljetnog računanja vremena. Radi toga su scene s različitih lokacija pomješane kada ih pregledavamo nekim preglednikom.
I to možemo popraviti, ukoliko iskoristimo EXIF tag. Program jhead može ograničiti svoje akcije samo na određenom modelu aparata, pa je moguće napraviti sljedeće:
$ jhead -model DSC-W50 -ta-1 -ft -n%Y%m%d_%H%M%S *.jpg
Naredba će smanjiti vrijeme za jedan sat (-ta-1), te preimenovati datoteku u skladu s time. Što piše u headeru (kako bi saznali model) možete saznati ovako:
$ jhead 20150104_160933.jpg | grep model
Camera model : DSC-W50S
Sat možete i povećati (-ta+1), a ukoliko želite možete dodati minute (-ta+1:05).
Da bi izbjegli sve ove komplikacije, prije puta provjerite i podesite sve satove na fotoaparatima na istu vrijednost (koji se često resetiraju na osnovnu vrijednost ukoliko nemaju backup bateriju).
Na kraju spomenimo da program jhead podržava opciju "-autorot", pa nam je prvi korak s naredbom exiftran iz originalnog članka suvišan.
Zdravko Rašić
- Logirajte se za dodavanje komentara
- Inačica za ispis
- PDF version