https://clemensadler.de/
Clemens Adler
2022-01-02T20:24:38+01:00
This is the Homepage of Clemens Adler
Clemens
https://clemensadler.de/
Jekyll
https://clemensadler.de/travel/panoramas/tbilisi2/
Tbilisi Part 2
2018-03-16T00:00:00+01:00
Clemens
https://clemensadler.de/
Impressions from Tbilisi, the Captial of Georgia
<p>Click (or touch) and drag to have a look around</p>
<div class="flex-video">
<iframe title="pannellum panorama viewer" width="1024" height="600" allowfullscreen="" style="border-style:none;" src="/images/2018-03-16-tbilisi2/panorama_tbilisi1/pannellum.htm?panorama=panorama_aerial_ropeway_small.jpg&title=Tbilisi Aerial Ropeway&autoLoad=true&vaov=130&yaw=-30&pitch=0&vOffset=10"></iframe>
</div>
<div>
<ul class="clearing-thumbs small-block-grid-4" data-clearing="">
<li><a href="https://clemensadler.de/images//2018-03-16-tbilisi2/5d8d4d.jpg"><img src="https://clemensadler.de/images//2018-03-16-tbilisi2/5d8d4d-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-16-tbilisi2/408844.jpg"><img src="https://clemensadler.de/images//2018-03-16-tbilisi2/408844-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-16-tbilisi2/936835.jpg"><img src="https://clemensadler.de/images//2018-03-16-tbilisi2/936835-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-16-tbilisi2/202eb1.jpg"><img src="https://clemensadler.de/images//2018-03-16-tbilisi2/202eb1-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-16-tbilisi2/0ebbf0.jpg"><img src="https://clemensadler.de/images//2018-03-16-tbilisi2/0ebbf0-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-16-tbilisi2/188d01.jpg"><img src="https://clemensadler.de/images//2018-03-16-tbilisi2/188d01-thumb.jpg" /></a></li>
</ul>
</div>
<p>See also: <a href="/travel/panoramas/tbilisi/">Tbilisi part 1</a></p>
2018-03-16T00:00:00+01:00
https://clemensadler.de/travel/panoramas/armenia/
Armenia
2018-03-15T00:00:00+01:00
Clemens
https://clemensadler.de/
In the center of the Caucasus
<p>Click (or touch) and drag to have a look</p>
<div class="flex-video">
<iframe title="pannellum panorama viewer" width="1024" height="600" allowfullscreen="" style="border-style:none;" src="/images/2018-03-15-armenia/panorama_khor_virap/pannellum.htm?panorama=panorama_khor_virap_small.jpg&title=Khor virap&autoLoad=true&vaov=80&yaw=160&pitch=-10&vOffset=-20&maxPitch=10&minPitch=-30&mouseZoom=fullscreenonly"></iframe>
</div>
<div class="flex-video">
<iframe title="pannellum panorama viewer" width="1024" height="600" allowfullscreen="" style="border-style:none;" src="/images/2018-03-15-armenia/panorama_tatev_town/pannellum.htm?panorama=panorama_tatev_town_small.jpg&title=Tatev Town&autoLoad=true&vaov=80&yaw=160&pitch=0&vOffset=10&maxPitch=20&minPitch=-20&mouseZoom=fullscreenonly"></iframe>
</div>
<div>
<ul class="clearing-thumbs small-block-grid-4" data-clearing="">
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/1539fe.jpg"><img data-caption="Goris main square" src="https://clemensadler.de/images//2018-03-15-armenia/1539fe-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/7ebf5d.jpg"><img data-caption="Tatev Monastery" src="https://clemensadler.de/images//2018-03-15-armenia/7ebf5d-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/1e6ba7.jpg"><img data-caption="Yerevan Cascade" src="https://clemensadler.de/images//2018-03-15-armenia/1e6ba7-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/1b27b9.jpg"><img data-caption="Yerevan, view of the Agri Dagi" src="https://clemensadler.de/images//2018-03-15-armenia/1b27b9-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/ad88e1.jpg"><img data-caption="On the way to Tatev" src="https://clemensadler.de/images//2018-03-15-armenia/ad88e1-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/517f46.jpg"><img data-caption="In Tatev" src="https://clemensadler.de/images//2018-03-15-armenia/517f46-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/ce7640.jpg"><img data-caption="Bell Chapel, used to warn against incoming enemies" src="https://clemensadler.de/images//2018-03-15-armenia/ce7640-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/8ea965.jpg"><img data-caption="The cave settlements of Khndzoresk" src="https://clemensadler.de/images//2018-03-15-armenia/8ea965-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/da3d33.jpg"><img src="https://clemensadler.de/images//2018-03-15-armenia/da3d33-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/5c9b80.jpg"><img data-caption="View from Khor Virap" src="https://clemensadler.de/images//2018-03-15-armenia/5c9b80-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/85e301.jpg"><img data-caption="Khor Virap Monastry" src="https://clemensadler.de/images//2018-03-15-armenia/85e301-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/9dad65.jpg"><img data-caption="Khor Virap Monastry with Turkey in the background" src="https://clemensadler.de/images//2018-03-15-armenia/9dad65-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/0ea2d5.jpg"><img src="https://clemensadler.de/images//2018-03-15-armenia/0ea2d5-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/400878.jpg"><img data-caption="Etchmiadzin Cathedral" src="https://clemensadler.de/images//2018-03-15-armenia/400878-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/6b3051.jpg"><img data-caption="Cementary close to Etchmiadzin Cathedral" src="https://clemensadler.de/images//2018-03-15-armenia/6b3051-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/4fdff2.jpg"><img data-caption="On the way to Tbilisi" src="https://clemensadler.de/images//2018-03-15-armenia/4fdff2-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/e9215c.jpg"><img data-caption="Typical Armenian bread" src="https://clemensadler.de/images//2018-03-15-armenia/e9215c-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/a4acd4.jpg"><img data-caption="Goris Main Square" src="https://clemensadler.de/images//2018-03-15-armenia/a4acd4-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/bb80b2.jpg"><img data-caption="The enemy of the covenants" src="https://clemensadler.de/images//2018-03-15-armenia/bb80b2-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2018-03-15-armenia/5a7146.jpg"><img data-caption="Bridge to Khnodzoresk" src="https://clemensadler.de/images//2018-03-15-armenia/5a7146-thumb.jpg" /></a></li>
</ul>
</div>
2018-03-15T00:00:00+01:00
https://clemensadler.de/travel/panoramas/sigmaringen/
Sigmaringen
2017-10-18T00:00:00+02:00
Clemens
https://clemensadler.de/
Sigmaringen in Autumn
<p>Click (or touch) and drag to have a look around Sigmaringen</p>
<div class="flex-video">
<iframe title="pannellum panorama viewer" width="1024" height="600" allowfullscreen="" style="border-style:none;" src="/images/2017-10-18-sigmaringen/panorama_sig/pannellum.htm?panorama=panorama_sig_small.jpg&title=Sigmaringen&&autoLoad=true&vaov=180&yaw=-40&pitch=-20&vOffset=0"></iframe>
</div>
<div>
<ul class="clearing-thumbs small-block-grid-4" data-clearing="">
<li><a href="https://clemensadler.de/images//2017-10-18-sigmaringen/11f006.jpg"><img data-caption="The Castle from the Danube side" src="https://clemensadler.de/images//2017-10-18-sigmaringen/11f006-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-10-18-sigmaringen/f1c6bb.jpg"><img data-caption="The Castle from the City side" src="https://clemensadler.de/images//2017-10-18-sigmaringen/f1c6bb-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-10-18-sigmaringen/36e767.jpg"><img data-caption="Castle closeup" src="https://clemensadler.de/images//2017-10-18-sigmaringen/36e767-thumb.jpg" /></a></li>
</ul>
</div>
2017-10-18T00:00:00+02:00
https://clemensadler.de/travel/meanwhile_in/
Meanwhile in ...
2017-07-15T00:00:00+02:00
Clemens
https://clemensadler.de/
News from Absurdistan
<p>Some encounters that are worth sharing.</p>
<div>
<ul class="clearing-thumbs small-block-grid-4" data-clearing="">
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/84aad1.jpg"><img data-caption="Favela in Rio de Janeiro" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/84aad1-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/9f8268.jpg"><img data-caption="Peru. Maybe the highest soccer court in the world, at least there is some place left for the huts of the village" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/9f8268-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/19363b.jpg"><img data-caption="Largest fluffy toy shop in Izmir, Turkey" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/19363b-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/a07ea5.jpg"><img data-caption="Brazil, F***** forbidden in this place according to the law of April 1st 2010" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/a07ea5-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/24f9e4.jpg"><img data-caption="Never come too close to Donetsk after Malaysia Airlines Flight 17" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/24f9e4-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/8e3848.jpg"><img data-caption="In Ukraine after Euromaidan" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/8e3848-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/f7d18e.jpg"><img data-caption="In Switzerland" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/f7d18e-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/83c504.jpg"><img data-caption="In Switzerland" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/83c504-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/9105ca.jpg"><img data-caption="In Spain" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/9105ca-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/715a0e.jpg"><img data-caption="Brazil, 'Graffitiy Artist, blessed by good, don't paint on this area, Jesus loves you much' " src="https://clemensadler.de/images//2017-07-15-meanwhile_in/715a0e-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/94d5dd.jpg"><img data-caption="Nuclear spiritual treatment for love, prosperity without work and liberation of all sorrow, Brazil" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/94d5dd-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/d73ab7.jpg"><img data-caption="Nemo's friend in the Bahamas" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/d73ab7-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/3e3343.jpg"><img data-caption="The Bahamas" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/3e3343-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/e2b617.jpg"><img data-caption="Austria" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/e2b617-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/6a3b48.jpg"><img data-caption="Morocco" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/6a3b48-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/9ecf39.jpg"><img data-caption="Morocco, creative hinge for a door" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/9ecf39-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/948f9b.jpg"><img data-caption="Einstein was here (Field equations of General Relativity) Bolivia, Salar de Uyuni" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/948f9b-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/f107f9.jpg"><img data-caption="International camping site, Morocco" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/f107f9-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/9ca102.jpg"><img data-caption="Moroccean Viagra" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/9ca102-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/9118ad.jpg"><img data-caption="Modern means of transport in contrast to old-fashioned, Morocco" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/9118ad-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/caca97.jpg"><img data-caption="Sopa de Gringos (Gringo Soup), Bolivia" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/caca97-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/30bd18.jpg"><img data-caption="Water rescue in Germany" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/30bd18-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/baffcb.jpg"><img data-caption="The question of questions, What is inside a surf board? Canary Islands" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/baffcb-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/94c745.jpg"><img data-caption="Where is the container bin for surfboards? Waste separation in Canary Islands" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/94c745-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/37c60d.jpg"><img data-caption="Fake non fake watches, Turkey" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/37c60d-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/9e8a9e.jpg"><img data-caption="Special hobby: Making pictures of 'Don't make pictures' signs, demarcation line in Cyprus" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/9e8a9e-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/bbb30a.jpg"><img data-caption="Rescue Divers in Germany" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/bbb30a-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/e5f9d7.jpg"><img data-caption="Netherlands" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/e5f9d7-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/f1e1da.jpg"><img data-caption="Former East German soldier from Ukraine calls upon his comrades to support the fight against fashism, pro Russian protests in Odessa during the Ukraine crisis" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/f1e1da-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/164915.jpg"><img data-caption="Caricatures in Kyiv after Euromaidan" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/164915-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/43225a.jpg"><img data-caption="Nothing isn't broken enough, that it can't be taken, Kyiv after Euromaidan" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/43225a-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/f0ee2b.jpg"><img data-caption="Proper treatment of watercannons, Kyiv after Euromaidan" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/f0ee2b-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/1e7fae.jpg"><img data-caption="Spud guns against riot police, Kyiv after Euromaidan" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/1e7fae-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/2286d6.jpg"><img data-caption="Spud guns version 2.0 against riot police, Kyiv after Euromaidan" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/2286d6-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/6c8add.jpg"><img data-caption="Kosovo" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/6c8add-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/64d9d3.jpg"><img data-caption="Bullet holes from the Balkan war, Mostar, Bosnia and Herzegovina" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/64d9d3-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2017-07-15-meanwhile_in/77a215.jpg"><img data-caption="Genuine German beer, Georgia" src="https://clemensadler.de/images//2017-07-15-meanwhile_in/77a215-thumb.jpg" /></a></li>
</ul>
</div>
2017-07-15T00:00:00+02:00
https://clemensadler.de/code/sony-action-georef/
Sony action cam georeferencing
2017-07-11T00:00:00+02:00
Clemens
https://clemensadler.de/
Extract Gps information and generate speed subtitles for Sony action cameras (HDR-AZ1, HDR-AS100 and others)
<h2 id="dependencies">Dependencies</h2>
<ul>
<li>dateutils: http://www.fresse.org/dateutils/</li>
<li>ffmpeg</li>
<li>exiftool</li>
<li>gpsbabel</li>
<li>imagemagick</li>
<li>bash</li>
<li>gnu coreutils</li>
</ul>
<h2 id="usage">Usage</h2>
<ul>
<li>Copy Folders MP_ROOT and PRIVATE to your computer</li>
<li>cd into directory MP_ROOT/100ANV01 (or similar, it is the folder with the .MP4 files) and copy the script in this directory</li>
<li>Make the script executable (chmod +x georef.sh)</li>
<li>Run the script (./georef.sh)</li>
<li>In Kdenlive you can add the created video (the file ending with overlay) in a video track above the original video file. Then add the effect “chroma key” to the overlay video track, go to properties of that effect, click the right color wheel and pick that blue background from the overlay video. Change variance to 150.</li>
</ul>
<h2 id="output">Output</h2>
<ul>
<li>The script will try to match the GPS data files with the corresponding video files according to the start date/times</li>
<li>It converts the files to gpx files with the same name prefix as the corresponding video files</li>
<li>It creates a subtitle file with the velocity</li>
<li>It creates a video file with the same resolution and frame rate as the original, but with blue background and the speed in km/h in white</li>
</ul>
<h2 id="problems">Problems</h2>
<ul>
<li>If the gps starts later, it will not properly match the video/gpx file</li>
<li>Complexity class: O(n^2)</li>
</ul>
<p>Use at your own risk, no warranties.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>
<span class="c">#dependencies:</span>
<span class="c">#dateutils: http://www.fresse.org/dateutils/</span>
<span class="c">#ffmpeg</span>
<span class="c">#exiftool</span>
<span class="c">#gpsbabel</span>
<span class="c">#imagemagick</span>
<span class="c">#offset in seconds</span>
<span class="nv">offset</span><span class="o">=</span>3
<span class="c">#go through all gps nmea .LOG files</span>
<span class="nv">log_folder</span><span class="o">=</span><span class="s2">"../../PRIVATE/SONY/GPS/"</span>
<span class="k">for </span>file <span class="k">in</span> <span class="si">$(</span><span class="nb">ls</span> <span class="s2">"</span><span class="nv">$log_folder</span><span class="s2">/"</span> |grep <span class="nt">-i</span> <span class="s2">".LOG$"</span><span class="si">)</span><span class="p">;</span> <span class="k">do
</span><span class="nv">gpx</span><span class="o">=</span><span class="s2">"</span><span class="k">${</span><span class="nv">file</span><span class="p">%.*</span><span class="k">}</span><span class="s2">.gpx"</span>
<span class="nv">gpx11</span><span class="o">=</span><span class="s2">"</span><span class="k">${</span><span class="nv">gpx</span><span class="p">%.*</span><span class="k">}</span><span class="s2">_v11.gpx"</span>
<span class="nv">gpx_s</span><span class="o">=</span><span class="s2">"</span><span class="k">${</span><span class="nv">gpx</span><span class="p">%.*</span><span class="k">}</span><span class="s2">_nospeed.gpx"</span>
<span class="c">#check if gpx file already exists and if file has more then 1 line</span>
<span class="nb">echo</span> <span class="s2">"</span><span class="nv">$log_folder</span><span class="s2">""</span><span class="nv">$file</span><span class="s2">"</span>
<span class="k">if</span> <span class="o">[</span> <span class="o">!</span> <span class="nt">-s</span> <span class="s2">"</span><span class="nv">$gpx</span><span class="s2">"</span> <span class="nt">-a</span> <span class="sb">`</span><span class="nb">wc</span> <span class="nt">-l</span> < <span class="s2">"</span><span class="nv">$log_folder</span><span class="s2">/""</span><span class="nv">$file</span><span class="s2">"</span><span class="sb">`</span> <span class="nt">-gt</span> 1 <span class="o">]</span>
<span class="k">then
</span><span class="nb">echo </span>converting <span class="s2">"</span><span class="nv">$log_folder</span><span class="s2">/""</span><span class="nv">$file</span><span class="s2">"</span>
gpsbabel <span class="nt">-i</span> nmea <span class="nt">-f</span> <span class="s2">"</span><span class="nv">$log_folder</span><span class="s2">/""</span><span class="nv">$file</span><span class="s2">"</span> <span class="nt">-o</span> gpx,gpxver<span class="o">=</span>1.0 <span class="nt">-F</span> <span class="s2">"</span><span class="nv">$gpx</span><span class="s2">"</span>
<span class="c">#clean:</span>
gpsbabel <span class="nt">-i</span> nmea <span class="nt">-f</span> <span class="s2">"</span><span class="nv">$log_folder</span><span class="s2">/""</span><span class="nv">$file</span><span class="s2">"</span> <span class="nt">-o</span> gpx,gpxver<span class="o">=</span>1.1 <span class="nt">-F</span> <span class="s2">"</span><span class="nv">$gpx11</span><span class="s2">"</span>
<span class="nb">grep</span> <span class="nt">-iv</span> <span class="s1">'nan\|<speed>\|<geoidheight>\|<course>\|<fix>'</span> <span class="s2">"</span><span class="nv">$gpx11</span><span class="s2">"</span> <span class="o">></span> <span class="s2">"</span><span class="nv">$gpx_s</span><span class="s2">"</span>
<span class="nb">rm</span> <span class="s2">"</span><span class="nv">$gpx11</span><span class="s2">"</span>
<span class="k">fi
if</span> <span class="o">[</span> <span class="nt">-s</span> <span class="s2">"</span><span class="nv">$gpx</span><span class="s2">"</span> <span class="o">]</span>
<span class="k">then
</span><span class="nv">gps_create_date</span><span class="o">=</span><span class="sb">`</span><span class="nb">awk</span> <span class="s1">'/<trkpt/{i++}i==1'</span> <span class="nv">$gpx</span> |grep <span class="nt">-m1</span> <span class="se">\<</span><span class="nb">time</span><span class="se">\></span> |sed <span class="nt">-e</span> <span class="s1">'s/<time>//g'</span> <span class="nt">-e</span> <span class="s1">'s/<\/time>//g'</span><span class="sb">`</span>
<span class="k">for </span>video_file <span class="k">in</span> <span class="si">$(</span><span class="nb">ls</span> ./ |grep <span class="nt">-i</span> <span class="s2">".MP4$"</span> |grep <span class="nt">-v</span> <span class="s2">"overlay"</span><span class="si">)</span><span class="p">;</span> <span class="k">do
if</span> <span class="o">[[</span> <span class="sb">`</span>file <span class="nv">$video_file</span> |head <span class="nt">-n1</span><span class="sb">`</span> <span class="o">==</span> <span class="k">*</span><span class="s2">"empty"</span><span class="k">*</span> <span class="o">]]</span>
<span class="k">then
</span><span class="nb">echo</span> <span class="s2">"</span><span class="nv">$video_file</span><span class="s2"> is corrupt"</span>
<span class="k">else
</span><span class="nv">video_create_date</span><span class="o">=</span><span class="sb">`</span>exiftool <span class="nt">-d</span> %Y-%m-%dT%H:%M:%S%Z <span class="nt">-p</span> <span class="s1">'$CreateDate'</span> <span class="nv">$video_file</span> 2>/dev/null<span class="sb">`</span>
<span class="c">#video_create_date_offset=`dateadd "$video_create_date" "+$offset_video" |xargs date "+%s" --date` </span>
<span class="c">#let date_diff=$video_create_date_offset-$gps_create_date</span>
<span class="nb">echo</span> <span class="s2">"gps date"</span> <span class="nv">$gps_create_date</span>
<span class="nb">echo</span> <span class="nv">$video_file</span>
<span class="nb">echo</span> <span class="s2">"video date"</span> <span class="nv">$video_create_date</span>
<span class="nv">date_diff</span><span class="o">=</span><span class="sb">`</span>datediff <span class="nv">$video_create_date</span> <span class="nv">$gps_create_date</span> <span class="nt">-f</span> <span class="s1">'%S'</span><span class="sb">`</span>
<span class="nb">echo</span> <span class="nv">$date_diff</span>
<span class="k">if</span> <span class="o">[</span> <span class="nv">$date_diff</span> <span class="nt">-le</span> 3 <span class="o">]</span> <span class="o">&&</span> <span class="o">[</span> <span class="nv">$date_diff</span> <span class="nt">-ge</span> <span class="nt">-3</span> <span class="o">]</span>
<span class="k">then
</span><span class="nb">echo </span>match
<span class="nb">mv</span> <span class="s2">"</span><span class="nv">$gpx</span><span class="s2">"</span> <span class="s2">"</span><span class="k">${</span><span class="nv">video_file</span><span class="p">%.*</span><span class="k">}</span><span class="s2">.gpx"</span>
<span class="nb">mv</span> <span class="s2">"</span><span class="nv">$gpx_s</span><span class="s2">"</span> <span class="s2">"</span><span class="k">${</span><span class="nv">video_file</span><span class="p">%.*</span><span class="k">}</span><span class="s2">_nospeed.gpx"</span>
<span class="nv">gps_date_corrected</span><span class="o">=</span><span class="sb">`</span>dateadd <span class="nv">$gps_create_date</span> <span class="s2">"</span><span class="nv">$offset</span><span class="s2">"</span>rS <span class="nt">-f</span> <span class="s2">"%Y%m%d"</span><span class="sb">`</span>
<span class="nv">gps_time_corrected</span><span class="o">=</span><span class="sb">`</span>dateadd <span class="nv">$gps_create_date</span> <span class="s2">"</span><span class="nv">$offset</span><span class="s2">"</span>rS <span class="nt">-f</span> <span class="s2">"%H%M%S"</span><span class="sb">`</span>
<span class="nb">echo</span> <span class="nv">$gps_create_date</span>
<span class="nb">echo</span> <span class="nv">$gps_date_corrected</span>
<span class="nb">echo</span> <span class="nv">$gps_time_corrected</span>
gpsbabel <span class="nt">-i</span> gpx <span class="nt">-f</span> <span class="s2">"</span><span class="k">${</span><span class="nv">video_file</span><span class="p">%.*</span><span class="k">}</span><span class="s2">.gpx"</span> <span class="nt">-o</span> subrip,gps_time<span class="o">=</span><span class="nv">$gps_time_corrected</span>,gps_date<span class="o">=</span><span class="nv">$gps_date_corrected</span>,format<span class="o">=</span><span class="s1">'%s km/h'</span> <span class="nt">-F</span> <span class="s2">"</span><span class="k">${</span><span class="nv">video_file</span><span class="p">%.*</span><span class="k">}</span><span class="s2">"</span>.srt
<span class="nv">fps</span><span class="o">=</span><span class="sb">`</span>exiftool <span class="nt">-p</span> <span class="s1">'$videoframerate'</span> <span class="nv">$video_file</span><span class="sb">`</span>
<span class="nv">image_size</span><span class="o">=</span><span class="sb">`</span>exiftool <span class="nt">-p</span> <span class="s1">'$imagesize'</span> <span class="nv">$video_file</span><span class="sb">`</span>
convert <span class="nt">-size</span> <span class="nv">$image_size</span> canvas:blue blanc.png
<span class="c">#create empty video with speed rendering</span>
ffmpeg <span class="nt">-loop</span> 1 <span class="nt">-i</span> blanc.png <span class="nt">-i</span> <span class="nv">$video_file</span> <span class="nt">-shortest</span> <span class="nt">-map</span> 0:0 <span class="nt">-map</span> 1:1 <span class="nt">-filter</span>:v <span class="nv">subtitles</span><span class="o">=</span><span class="s2">"</span><span class="k">${</span><span class="nv">video_file</span><span class="p">%.*</span><span class="k">}</span><span class="s2">.srt"</span>:force_style<span class="o">=</span><span class="s1">'FontSize=45'</span> <span class="nt">-c</span>:a copy <span class="nt">-c</span>:v libx264 <span class="nt">-qp</span> 0 <span class="nt">-preset</span> slow <span class="nt">-r</span> <span class="nv">$fps</span> <span class="s2">"</span><span class="k">${</span><span class="nv">video_file</span><span class="p">%.*</span><span class="k">}</span><span class="s2">_overlay_tmp.mp4"</span>
<span class="c">#remove audio</span>
ffmpeg <span class="nt">-i</span> <span class="s2">"</span><span class="k">${</span><span class="nv">video_file</span><span class="p">%.*</span><span class="k">}</span><span class="s2">_overlay_tmp.mp4"</span> <span class="nt">-an</span> <span class="nt">-c</span>:v copy <span class="s2">"</span><span class="k">${</span><span class="nv">video_file</span><span class="p">%.*</span><span class="k">}</span><span class="s2">_overlay.mp4"</span>
<span class="nb">rm </span>blanc.png
<span class="nb">rm</span> <span class="s2">"</span><span class="k">${</span><span class="nv">video_file</span><span class="p">%.*</span><span class="k">}</span><span class="s2">_overlay_tmp.mp4"</span>
<span class="nb">break
</span><span class="k">else
</span><span class="nb">echo </span>no match
<span class="k">fi
fi
done
else
</span><span class="nb">echo </span>no gpx file
<span class="k">fi
done</span>
</code></pre></div></div>
<ul>
<li><a href="https://github.com/spackonaut/sony_georef">On Github</a></li>
</ul>
2017-07-11T00:00:00+02:00
https://clemensadler.de/travel/panoramas/stuttgart/
Stuttgart
2017-06-24T00:00:00+02:00
Clemens
https://clemensadler.de/
Picture from the Fernsehturm
<div class="flex-video">
<iframe title="panorama viewer" width="1024" height="600" allowfullscreen="" style="border-style:none;" src="/images/2017-06-24-stuttgart/panorama_stuttgart_fernsehturm/pannellum.htm?panorama=stuttgart_fernsehturm_small.jpg&title=Stuttgart%20Fernsehturm&author=Clemens&autoLoad=true&vpitch=110&vaov=80"></iframe>
</div>
2017-06-24T00:00:00+02:00
https://clemensadler.de/travel/panoramas/annecy/
Annecy
2016-08-30T00:00:00+02:00
Clemens
https://clemensadler.de/
The Venice of the Alps
<p>Click (or touch) and drag to have a look around</p>
<div class="flex-video">
<iframe title="pannellum panorama viewer" width="1024" height="600" allowfullscreen="" style="border-style:none;" src="/images/2016-08-30-annecy/panorama_annecy_3/pannellum.htm?panorama=annecy_3_small.jpg&title=Annecy&&autoLoad=true&vaov=80&yaw=0&pitch=0&vOffset=0"></iframe>
</div>
<div>
<ul class="clearing-thumbs small-block-grid-4" data-clearing="">
<li><a href="https://clemensadler.de/images//2016-08-30-annecy/21384c.jpg"><img src="https://clemensadler.de/images//2016-08-30-annecy/21384c-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2016-08-30-annecy/0a0d9d.jpg"><img src="https://clemensadler.de/images//2016-08-30-annecy/0a0d9d-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2016-08-30-annecy/e01130.jpg"><img src="https://clemensadler.de/images//2016-08-30-annecy/e01130-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2016-08-30-annecy/6f3a33.jpg"><img src="https://clemensadler.de/images//2016-08-30-annecy/6f3a33-thumb.jpg" /></a></li>
</ul>
</div>
2016-08-30T00:00:00+02:00
https://clemensadler.de/travel/panoramas/pont_du_gard/
Pont du Gard
2016-08-29T00:00:00+02:00
Clemens
https://clemensadler.de/
The ancient Roman aqueduct
<p>Click (or touch) and drag to have a look around</p>
<div class="flex-video">
<iframe title="pannellum panorama viewer" width="1024" height="600" allowfullscreen="" style="border-style:none;" src="/images/2016-08-29-pont_du_gard/panorama_pont_du_gard_6/pannellum.htm?panorama=pont_du_gard_6_small.jpg&title=Pont%20du%20Gard&&autoLoad=true&vaov=90&yaw=0&vpitch=1100&vOffset=0"></iframe>
</div>
<div>
<ul class="clearing-thumbs small-block-grid-4" data-clearing="">
<li><a href="https://clemensadler.de/images//2016-08-29-pont_du_gard/07be41.jpg"><img src="https://clemensadler.de/images//2016-08-29-pont_du_gard/07be41-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2016-08-29-pont_du_gard/f6c140.jpg"><img src="https://clemensadler.de/images//2016-08-29-pont_du_gard/f6c140-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2016-08-29-pont_du_gard/5d6105.jpg"><img src="https://clemensadler.de/images//2016-08-29-pont_du_gard/5d6105-thumb.jpg" /></a></li>
</ul>
</div>
2016-08-29T00:00:00+02:00
https://clemensadler.de/code/mega_upload/
Mega share
2016-02-25T00:00:00+01:00
Clemens
https://clemensadler.de/
Share images and videos on Mega
<h2 id="about">About</h2>
<p>This script searches for video and image files, downsizes and uploads them to mega.nz. It will then check if the number of files is correct and if not, it will retry.</p>
<h2 id="dependencies">Dependencies</h2>
<ul>
<li>bash</li>
<li>gnu coreutils</li>
<li>megatools: https://megatools.megous.com/</li>
<li>ffmpeg</li>
<li>imagemagick</li>
</ul>
<h2 id="usage">Usage</h2>
<ul>
<li>Change the username and password in the script</li>
<li>Run the script in the folder you want to share. Use the gallery name as sole parameter</li>
</ul>
<h2 id="problems">Problems</h2>
<ul>
<li>password and username in plaintext in script</li>
<li>not tested recently</li>
</ul>
<p>Use at your own risk, no warranties.</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>
<span class="c">#http://megatools.megous.com/</span>
<span class="k">if</span> <span class="o">[</span> <span class="o">!</span> <span class="nt">-z</span> <span class="nv">$1</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
</span><span class="nb">echo</span> <span class="nv">$1</span>
<span class="nv">suffix</span><span class="o">=</span><span class="s2">"m"</span>
<span class="nv">suffix2</span><span class="o">=</span><span class="nv">$suffix</span>
<span class="nb">export </span><span class="nv">suffix</span><span class="o">=</span><span class="nv">$suffix2</span>
<span class="nv">create_date</span><span class="o">=</span><span class="sb">`</span>exiftool <span class="nt">-d</span> %Y_%m_ <span class="nt">-p</span> <span class="s1">'$CreateDate'</span> ./ 2>/dev/null |grep <span class="nt">-v</span> 0000 |sort |head <span class="nt">-n1</span><span class="sb">`</span>
<span class="nv">name</span><span class="o">=</span><span class="nv">$create_date</span><span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span>
<span class="nv">name2</span><span class="o">=</span><span class="nv">$name</span>
<span class="nb">export </span><span class="nv">name</span><span class="o">=</span><span class="nv">$name2</span>
<span class="nv">username</span><span class="o">=</span><span class="s1">'username'</span>
<span class="nv">password</span><span class="o">=</span><span class="s1">'passwort'</span>
<span class="nb">mkdir</span> <span class="nt">-p</span> <span class="nv">$name</span>
find <span class="nb">.</span> <span class="nt">-maxdepth</span> 1 <span class="nt">-iname</span> <span class="s1">'*.mov'</span> <span class="nt">-o</span> <span class="nt">-iname</span> <span class="s1">'*.mkv'</span> <span class="nt">-o</span> <span class="nt">-iname</span> <span class="s1">'*.mp4'</span> <span class="nt">-o</span> <span class="nt">-iname</span> <span class="s1">'.avi'</span> |time parallel <span class="nt">-j</span> 1 <span class="nt">--eta</span> <span class="s1">'ffmpeg -threads 10 -i {} -codec:v libx264 -crf 23 -preset medium -codec:a copy -movflags faststart -vf scale=-1:720,format=yuv420p $name/{.}_$suffix.mp4'</span>
<span class="c">#bilder:</span>
find <span class="nb">.</span> <span class="nt">-maxdepth</span> 1 <span class="nt">-iname</span> <span class="s1">'*.jpg'</span> |time parallel <span class="nt">-j</span>+0 <span class="nt">--eta</span> <span class="s1">'convert {} -quality 85 -resize "2048x2048 >" $name/{.}_$suffix.jpg'</span>
<span class="c">#upload:</span>
megamkdir <span class="nt">--ignore-config-file</span> <span class="nt">-u</span> <span class="nv">$username</span> <span class="nt">-p</span> <span class="nv">$password</span> <span class="nt">--reload</span> /Root/<span class="nv">$name</span>
<span class="nv">n_target</span><span class="o">=</span><span class="sb">`</span>megals <span class="nt">--ignore-config-file</span> <span class="nt">-u</span> <span class="nv">$username</span> <span class="nt">-p</span> <span class="nv">$password</span> <span class="nt">-e</span> /Root/<span class="nv">$name</span> |wc <span class="nt">-l</span><span class="sb">`</span>
<span class="nv">n_target</span><span class="o">=</span><span class="k">$((</span><span class="nv">$n_target</span> <span class="o">-</span> <span class="m">1</span><span class="k">))</span>
<span class="nv">n_source</span><span class="o">=</span><span class="sb">`</span><span class="nb">ls</span> <span class="nv">$name</span> |wc <span class="nt">-l</span><span class="sb">`</span>
<span class="k">while</span> <span class="o">[</span> <span class="nv">$n_target</span> <span class="nt">-lt</span> <span class="nv">$n_source</span> <span class="o">]</span>
<span class="k">do
</span>megacopy <span class="nt">--ignore-config-file</span> <span class="nt">-u</span> <span class="nv">$username</span> <span class="nt">-p</span> <span class="nv">$password</span> <span class="nt">--local</span> <span class="nv">$name</span> <span class="nt">--remote</span> /Root/<span class="nv">$name</span>
<span class="nv">n_target</span><span class="o">=</span><span class="sb">`</span>megals <span class="nt">--ignore-config-file</span> <span class="nt">-u</span> <span class="nv">$username</span> <span class="nt">-p</span> <span class="nv">$password</span> <span class="nt">-e</span> /Root/<span class="nv">$name</span> |wc <span class="nt">-l</span><span class="sb">`</span>
<span class="nv">n_target</span><span class="o">=</span><span class="k">$((</span><span class="nv">$n_target</span> <span class="o">-</span> <span class="m">1</span><span class="k">))</span>
<span class="nb">echo</span> <span class="s2">"n target: "</span> <span class="nv">$n_target</span>
<span class="nv">n_source</span><span class="o">=</span><span class="sb">`</span><span class="nb">ls</span> <span class="nv">$name</span> |wc <span class="nt">-l</span><span class="sb">`</span>
<span class="nb">echo</span> <span class="s2">"n source: "</span> <span class="nv">$n_source</span>
<span class="k">done
</span>megals <span class="nt">--ignore-config-file</span> <span class="nt">-u</span> <span class="nv">$username</span> <span class="nt">-p</span> <span class="nv">$password</span> <span class="nt">-e</span> /Root/<span class="nv">$name</span>
<span class="k">else </span><span class="nb">echo</span> <span class="s2">"no name given"</span>
<span class="k">fi</span>
</code></pre></div></div>
2016-02-25T00:00:00+01:00
https://clemensadler.de/travel/panoramas/pripyat/
Pripyat
2015-07-10T00:00:00+02:00
Clemens
https://clemensadler.de/
Memorial of human and societal failures
<div class="flex-video">
<iframe title="pannellum panorama viewer" width="1024" height="600" allowfullscreen="" style="border-style:none;" src="/images/2015-07-10-pripyat/panorama_pripyat_swimming_pool/pannellum.htm?panorama=pripyat_swimmingpool_small.jpg&title=Pripyat%20Swimming%20Pool&&autoLoad=true&vaov=110"></iframe>
</div>
<div>
<ul class="clearing-thumbs small-block-grid-4" data-clearing="">
<li><a href="https://clemensadler.de/images//2015-07-10-pripyat/8680f4.jpg"><img data-caption="Bus trip" src="https://clemensadler.de/images//2015-07-10-pripyat/8680f4-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2015-07-10-pripyat/8a28bd.jpg"><img data-caption="Abandoned house with telephone booth" src="https://clemensadler.de/images//2015-07-10-pripyat/8a28bd-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2015-07-10-pripyat/b66027.jpg"><img data-caption="Ferris wheel on the Pripyat amusement park, which was planned to be opened a few days after the disaster" src="https://clemensadler.de/images//2015-07-10-pripyat/b66027-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2015-07-10-pripyat/91f14e.jpg"><img data-caption="Bumper cars at the Pripyat amusement park" src="https://clemensadler.de/images//2015-07-10-pripyat/91f14e-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2015-07-10-pripyat/71271e.jpg"><img data-caption="Names of the villages that had to be abandoned in the wake of the disaster" src="https://clemensadler.de/images//2015-07-10-pripyat/71271e-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2015-07-10-pripyat/a3a47d.jpg"><img data-caption="Block 4 with the old sarcophagus and the memorial" src="https://clemensadler.de/images//2015-07-10-pripyat/a3a47d-thumb.jpg" /></a></li>
<li><a href="https://clemensadler.de/images//2015-07-10-pripyat/60f7a8.jpg"><img data-caption="Painting on a building of the abandoned city" src="https://clemensadler.de/images//2015-07-10-pripyat/60f7a8-thumb.jpg" /></a></li>
</ul>
</div>
2015-07-10T00:00:00+02:00