<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Mathias Dietz Weblog</title>
	<atom:link href="http://dietzm.de/cgi-bin/weblog_basic/index.php?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://dietzm.de/cgi-bin/weblog_basic</link>
	<description>news - technical stuff - photos</description>
	<pubDate>Wed, 03 Nov 2010 22:55:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Images with GPS tags - Nautilus integration 2/2</title>
		<link>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=69</link>
		<comments>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=69#comments</comments>
		<pubDate>Wed, 03 Nov 2010 22:55:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://dietzm.de/cgi-bin/weblog_basic/index.php?p=69</guid>
		<description><![CDATA[The following two scripts are helpful for integrating the gpsPlacename.sh into nautilus:
nautilus-gps-link.sh will show the GPS position of the selected image in Google Maps.
If multiple images are selected, the first 10 GPS positions will be displayed in a static Google Map (did not find out how to display multiple markers in a dynamic map)
Zenity is [...]]]></description>
			<content:encoded><![CDATA[<p>The following two scripts are helpful for integrating the gpsPlacename.sh into nautilus:</p>
<p><strong>nautilus-gps-link.sh</strong> will show the GPS position of the selected image in Google Maps.<br />
If multiple images are selected, the first 10 GPS positions will be displayed in a static Google Map (did not find out how to display multiple markers in a dynamic map)<br />
Zenity is used for displaying a progress bar, so please make sure to have zenity installed as well.<br />
<strong>WARNING: wordpress adds additional single quotes (&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;) to each single quote when saving this article, please replace duplicate ”” with a single instance</strong><br />
<code>#!/bin/bash<br />
if [ $# == 1 ] ; then<br />
gpsPlaceName.sh -vv &#8220;$@&#8221; | tee /tmp/gpsPlaOutxxx.txt | zenity &#8211;progress &#8211;pulsate &#8211;auto-close ; cat /tmp/gpsPlaOutxxx.txt | grep dynamicmap | cut -d &#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;>&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221; -f 2- | xargs -n 1 -x -d &#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;n&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221; firefox<br />
else<br />
gpsPlaceName.sh -vv &#8220;$@&#8221; | tee /tmp/gpsPlaOutxxx.txt | zenity &#8211;progress &#8211;pulsate &#8211;auto-close ; cat /tmp/gpsPlaOutxxx.txt | grep staticmap | cut -d &#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;>&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221; -f 2- | xargs -n 1 -d &#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;n&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221;&#8221; firefox<br />
fi</code></p>
<p><strong>nautilus-gps-place.sh</strong> will show the nearest place to the GPS positions of the selected image in a dialog using zenity.<br />
<code>#!/bin/bash<br />
gpsPlaceName.sh -v "$@" | tee /tmp/gpsPlaOutxxx.txt | zenity --progress --pulsate --auto-close ; zenity --text-info --filename=/tmp/gpsPlaOutxxx.txt --width 800 --height 800 ; rm /tmp/gpsPlaOutxxx.txt</code></p>
<p>Example Dialog:<br />
<img src="http://5715775.de.strato-hosting.eu/cgi-data/weblog_basic/uploads/2010/11/gps.png" alt="gps" title="gps" width="884" height="263" class="alignnone size-full wp-image-75" /></p>
<p>To integrate this into Nautilus you should install nautilus-actions, then run nautilus-action-config-tool to add new entries:<br />
<img src="http://5715775.de.strato-hosting.eu/cgi-data/weblog_basic/uploads/2010/11/nautilusaction.png" alt="nautilusaction" title="nautilusaction" width="744" height="534" class="alignnone size-full wp-image-70" /></p>
]]></content:encoded>
			<wfw:commentRss>http://dietzm.de/cgi-bin/weblog_basic/index.php?feed=rss2&amp;p=69</wfw:commentRss>
		</item>
		<item>
		<title>Images with GPS tags - Nautilus integration 1/2</title>
		<link>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=53</link>
		<comments>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=53#comments</comments>
		<pubDate>Wed, 03 Nov 2010 22:30:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[GPS image exiftool maps geonames]]></category>

		<guid isPermaLink="false">http://dietzm.de/cgi-bin/weblog_basic/index.php?p=53</guid>
		<description><![CDATA[I just bought a new Sony Camera with build-in GPS. Unfortunately all the packaged software is for Windows only.
So I was looking for a good Linux program to quickly show the GPS data of a picture and to show the GPS position in Google maps.
Digikam has a good GPS support (integration of marble) and its [...]]]></description>
			<content:encoded><![CDATA[<p>I just bought a new Sony Camera with build-in GPS. Unfortunately all the packaged software is for Windows only.<br />
So I was looking for a good Linux program to quickly show the GPS data of a picture and to show the GPS position in Google maps.<br />
Digikam has a good GPS support (integration of marble) and its good to manage many images.<br />
You can even choose multiple images and show them on the map, or select a region on the map to search for pictures. </p>
<p><img src="http://5715775.de.strato-hosting.eu/cgi-data/weblog_basic/uploads/2010/11/screenshot-digikam.png" alt="screenshot-digikam" title="screenshot-digikam" width="931" height="618" class="alignnone size-full wp-image-52" /></p>
<p>But if you just want to show the GPS postition of a single image quickly, digikam is to heavyweight.<br />
Many small tools can show the exif metadata of a picture, but the plain GPS coordinates are not very helpful to find out where a picture has been taken.</p>
<p>For this reason I have created a set of small scripts which do the following<br />
1) Extract the GPS coordinates and get the name of the nearest place/city/village (thanks to geonames.org)<br />
2) Open the GPS coordinates in Google Maps<br />
3) Show the GPS coordinates of up to 10 pictures in a Google static map</p>
<p>The main script (gpsPlacenames.sh) provides the core functions and can be used on the shell.<br />
The two helper scripts (nautilus-gps-link.sh, nautilus-gps-place.sh) are used for integrating it into nautilus and providing X window dialogs using zentity.</p>
<p><strong>gpsPlacenames.sh</strong><br />
<strong><em>WARNING: wordpress adds additional single quotes (&#8221;) to each single quote when saving this article, please replace duplicate &#8221;&#8221;&#8221;&#8221; with a single instance</em></strong><br />
<code>#!/bin/sh<br />
#<br />
# Script for extracting GPS tags from jpeg images and showing the names of the nearest place/city.<br />
# Added some funtions to print out Google maps URLs<br />
# author blog@dietzm.de<br />
#<br />
verbose=0<br />
if [ "$1" == "-v" ];then<br />
    echo verbose enabled<br />
    verbose=1<br />
    shift<br />
fi<br />
if [ "$1" == "-vv" ];then<br />
    echo verbose with google maps link enabled<br />
    verbose=2<br />
    shift<br />
fi<br />
if [ -z "$1" ] ; then<br />
    echo Wrong usage !<br />
    echo This script extracts the GPS coordinates from exif tags of a jpeg image and shows the name of the nearest place/city/village<br />
    echo Usage: $0 [-v verbose | -vv verbose with google maps link] file&#8230;.<br />
    echo &#8212;-<br />
    exit 1<br />
fi<br />
staticurl=&#8221;http://maps.google.com/maps/api/staticmap?size=640&#215;640&#038;sensor=false&#038;maptype=hybrid&#8221;<br />
dynurl=&#8221;http://maps.google.de/maps&#8221;<br />
cache=/tmp/gpscache/<br />
mkdir $cache &#038;>/dev/null<br />
nr=0<br />
IFS=$&#8221;&#8221;n&#8221;&#8221;<br />
echo # Reading file metadata &#8230;..<br />
allcoord=`exiftool -q -fast -c %.6f -p &#8221;&#8221;lat=$gps:GPSLatitude&#038;lng=$gps:GPSLongitude $gps:GPSLatitudeRef $gps:GPSLongitudeRef $directory/$filename&#8221;&#8221; &#8220;$@&#8221; 2>&#038;1`<br />
echo # Looking up place names (thanks to  http://ws.geonames.org/)<br />
echo &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
for coord in $allcoord ;<br />
do<br />
#echo &#8220;# $coord&#8221;<br />
# coord=`exiftool -c %.6f -p &#8221;&#8221;lat=$gps:GPSLatitude&#038;lng=$gps:GPSLongitude $gps:GPSLatitudeRef $gps:GPSLongitudeRef&#8221;&#8221; &#8220;$i&#8221; 2>/dev/null`<br />
hasgpsdata=`echo $coord | grep -v &#8220;Warning&#8221;`<br />
if [ -z "$hasgpsdata"   ]; then<br />
#    #zenity &#8211;error &#8211;text &#8220;exiftool command failed: $i ($?)&#8221;<br />
    fname=`echo $coord | cut -d &#8221;&#8221; &#8221;&#8221; -f 8-`<br />
    echo # &#8220;$fname -> NO GPS DATA&#8221;<br />
    continue<br />
fi<br />
i=`echo $coord | cut -d &#8221;&#8221; &#8221;&#8221; -f 4- | sed s#^./##g`<br />
# echo $coord<br />
 ref=`echo $coord | cut -d &#8221;&#8221; &#8221;&#8221; -f 2`<br />
 if [ "$ref" != "North" ];then<br />
  coord=`echo $coord | sed s/lat=/lat=-/g`<br />
 fi<br />
 ref=`echo $coord | cut -d &#8221;&#8221; &#8221;&#8221; -f 3`<br />
 if [ "$ref" != "East" ];then<br />
  coord=`echo $coord | sed s/lng=/lng=-/g`<br />
 fi<br />
 coord=`echo $coord | cut -d &#8221;&#8221; &#8221;&#8221; -f 1`<br />
cfile=`echo $cache$coord | sed s/&#038;//g`<br />
if [ -f $cfile ];then<br />
    used_cache=&#8221;C&#8221;<br />
else<br />
    used_cache=&#8221;"<br />
    # echo wget http://ws.geonames.org/findNearbyPlaceName  &#8211;post-data &#8220;$coord&#8221; &#8211;output-document=gpsname.txt<br />
    wget http://ws.geonames.org/findNearbyPlaceName  &#8211;post-data &#8220;$coord&#8221; &#8211;output-document=&#8221;$cfile&#8221; &#038;> /dev/null<br />
fi<br />
#Print out data<br />
if [ "$verbose" != "0" ];then<br />
     cat $cfile | cut -d &#8221;&#8221;>&#8221;&#8221; -f 2 | cut -d &#8221;&#8221;<'''' -f 1 | xargs echo # "$i $used_cache-> &#8221;<br />
     if [ "$verbose" == "2" ];then<br />
             mapscoord=`echo $coord | sed s/&#038;lng=/,/g | sed s/lat=//g`<br />
             echo &#8221;            Google Maps link (dynamicmap) -> $dynurl?q=$mapscoord%28$i%29&#8243;<br />
         if [ $nr -lt 10 ];then<br />
            #limit number of marker points to 10<br />
             staticurl=$staticurl&#8221;&#038;markers=color%3Ablue%7Clabel%3A$nr%7C$mapscoord&#8221;<br />
                     let nr=$nr+1<br />
         fi<br />
       fi<br />
else<br />
     cat $cfile |grep toponymName | cut -d &#8221;&#8221;>&#8221;&#8221; -f 2 | cut -d &#8221;&#8221;<'''' -f 1 | xargs echo # "$i ->&#8221;<br />
fi<br />
done<br />
if [ "$verbose" == "2" -a "$nr" -ne "0" ];then<br />
    echo &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
    echo Static Google Maps URL with the first 10 images as markers:<br />
    echo &#8220;Link -> $staticurl&#8221;<br />
fi<br />
echo # Done</code></p>
<p>For the command line version (gpsPlacenames.sh) you just need exiftool (and standard tools like wget,grep,cut,..)<br />
<strong> gpsPlacenames.sh</strong>, here we go:<br />
<code>#> gpsPlacenames.sh DSC018*<br />
# Reading file metadata .....<br />
# Looking up place names (thanks to http://ws.geonames.org/)<br />
------------------------<br />
# DSC01839.JPG -> NO GPS DATA<br />
# DSC01840.JPG -> NO GPS DATA<br />
# DSC01813.JPG -> Zeppelinheim<br />
# DSC01814.JPG -> Zeppelinheim<br />
# DSC01815.JPG -> Zeppelinheim<br />
# DSC01825.JPG -> Pozo Negro<br />
# DSC01831.JPG -> Pozo Negro<br />
# DSC01835.JPG -> Pozo Negro<br />
# DSC01836.JPG -> Pozo Negro<br />
# DSC01843.JPG -> Costa Calma<br />
</code><br />
<strong>gpsPlacenames.sh -v</strong> verbose will display additional information<br />
<code>#> gpsPlacenames.sh -v DSC018*<br />
verbose enabled<br />
# Reading file metadata .....<br />
# Looking up place names (thanks to http://ws.geonames.org/)<br />
------------------------<br />
# DSC01838.JPG -> NO GPS DATA<br />
# DSC01839.JPG -> NO GPS DATA<br />
# DSC01840.JPG -> NO GPS DATA<br />
# DSC01813.JPG C->  Zeppelinheim Zeppelinheim 50.03333 8.61667 2804754 DE Germany P PPL 2.53043<br />
# DSC01814.JPG C->  Zeppelinheim Zeppelinheim 50.03333 8.61667 2804754 DE Germany P PPL 2.53043<br />
# DSC01815.JPG C->  Zeppelinheim Zeppelinheim 50.03333 8.61667 2804754 DE Germany P PPL 2.53043<br />
# DSC01825.JPG C->  Pozo Negro Pozo Negro 28.31667 -13.88333 2512315 ES Spain P PPL 6.06183<br />
# DSC01831.JPG C->  Pozo Negro Pozo Negro 28.31667 -13.88333 2512315 ES Spain P PPL 6.06183<br />
# DSC01833.JPG C->  Pozo Negro Pozo Negro 28.31667 -13.88333 2512315 ES Spain P PPL 6.06183<br />
# DSC01841.JPG C->  Costa Calma Costa Calma 28.16155 -14.22691 6544327 ES Spain P PPL 0.20955<br />
</code><br />
<strong>gpsPlacenames.sh -vv</strong> verbose with Google maps support will display additional information and links Google maps.<br />
It will print out a link to the dynamic Google maps version for each image and a combined link with the first 10 images to a static google map at the end.<br />
<code>#> gpsPlacenames.sh -vv DSC018*<br />
verbose with google maps link enabled<br />
# Reading file metadata .....<br />
# Looking up place names (thanks to http://ws.geonames.org/)<br />
------------------------<br />
# DSC01807.JPG -> NO GPS DATA<br />
# DSC01840.JPG -> NO GPS DATA<br />
# DSC01813.JPG C->  Zeppelinheim Zeppelinheim 50.03333 8.61667 2804754 DE Germany P PPL 2.53043<br />
            Google Maps link (dynamicmap) -> http://maps.google.de/maps?q=50.049895,8.592363%28DSC01813.JPG%29<br />
# DSC01814.JPG C->  Zeppelinheim Zeppelinheim 50.03333 8.61667 2804754 DE Germany P PPL 2.53043<br />
            Google Maps link (dynamicmap) -> http://maps.google.de/maps?q=50.049895,8.592363%28DSC01814.JPG%29<br />
# DSC01825.JPG C->  Pozo Negro Pozo Negro 28.31667 -13.88333 2512315 ES Spain P PPL 6.06183<br />
            Google Maps link (dynamicmap) -> http://maps.google.de/maps?q=28.322073,-13.944958%28DSC01825.JPG%29<br />
# DSC01826.JPG C->  Pozo Negro Pozo Negro 28.31667 -13.88333 2512315 ES Spain P PPL 6.06183<br />
------------------------<br />
Static Google Maps URL with the first 10 images as markers:<br />
Link -> http://maps.google.com/maps/api/staticmap?size=640x640&#038;sensor=false&#038;maptype=hybrid&#038;markers=color%3Ablue%7Clabel%3A0%7C50.049895,8.592363&#038;markers=color%3Ablue%7Clabel%3A1%7C50.049895,8.592363&#038;markers=color%3Ablue%7Clabel%3A2%7C50.049895,8.592363&#038;markers=color%3Ablue%7Clabel%3A3%7C50.049895,8.592363&#038;markers=color%3Ablue%7Clabel%3A4%7C50.049895,8.592363&#038;markers=color%3Ablue%7Clabel%3A5%7C28.322073,-13.944958&#038;markers=color%3Ablue%7Clabel%3A6%7C28.322073,-13.944958&#038;markers=color%3Ablue%7Clabel%3A7%7C28.322073,-13.944958&#038;markers=color%3Ablue%7Clabel%3A8%7C28.322073,-13.944958&#038;markers=color%3Ablue%7Clabel%3A9%7C28.322073,-13.944958<br />
# Done<br />
</code></p>
<p>Now, you can easily get the GPS place names for all you images on the command line and use the printed links to jump directly to the GPS coordinates in google maps .<br />
Cool huuh ?</p>
]]></content:encoded>
			<wfw:commentRss>http://dietzm.de/cgi-bin/weblog_basic/index.php?feed=rss2&amp;p=53</wfw:commentRss>
		</item>
		<item>
		<title>Nokia 5800 - Wer kennt wen - Widget</title>
		<link>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=45</link>
		<comments>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=45#comments</comments>
		<pubDate>Mon, 07 Dec 2009 00:13:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Nokia 5800]]></category>

		<category><![CDATA[s60v5]]></category>

		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://dietzm.de/cgi-bin/weblog_basic/index.php?p=45</guid>
		<description><![CDATA[<a href="http://www.wer-kennt-wen.de">Wer kennt wen</a> Widget für Nokia 5800 MusikXpress]]></description>
			<content:encoded><![CDATA[<p>Ich habe heute ein <a href="http://www.wer-kennt-wen.de">Wer kennt wen</a> Widget für mein Nokia 5800 MusikXpress gebaut.<br />
<img src="http://www.dietzm.de/images/wkwIcon.png" alt="wkw" /></p>
<p>Es ruft einfach die mobile Version der WKW Webseite auf (http://mobil.wer-kennt-wen.de/)</p>
<p>Download: <a href="http://www.dietzm.de/blog/download/index.html?Wkw.wgz">Wer-kennt-wen Widget (wkw.wgz)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dietzm.de/cgi-bin/weblog_basic/index.php?feed=rss2&amp;p=45</wfw:commentRss>
		</item>
		<item>
		<title>Migrated my nanoblogger based weblog to WordPress</title>
		<link>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=44</link>
		<comments>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=44#comments</comments>
		<pubDate>Sun, 11 Feb 2007 21:32:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Nanoblogger]]></category>

		<guid isPermaLink="false">http://dietzm.de/cgi-bin/weblog_basic/index.php?p=44</guid>
		<description><![CDATA[I&#8217;ve migrated my nanoblogger based weblog to the Strato Weblog Basic which is based on WordPress
The migration was very error prone, because Wordpress adds a &#8220;br&#8221; after each line. Also Strato does not
allow to use a custom theme and the build-in theme has only a width of 800px.
So, the most blog entries are readable but [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve migrated my nanoblogger based weblog to the Strato Weblog Basic which is based on WordPress</p>
<p>The migration was very error prone, because Wordpress adds a &#8220;br&#8221; after each line. Also Strato does not<br />
allow to use a custom theme and the build-in theme has only a width of 800px.</p>
<p>So, the most blog entries are readable but not very nice. The Nanoblogger page was ways nicer.<br />
<strong>Here a short summary:</strong><br />
Strato Weblog Basic (WordPress) Advantages / Disadvantages<br />
++allows users to comment a blog entry<br />
+easy management via web sites<br />
+easy upload of files<br />
&#8211;The default theme is limited to 800px width<br />
&#8211;Strato doesn&#8217;t allow a custom theme<br />
-The management via web sites is slow</p>
]]></content:encoded>
			<wfw:commentRss>http://dietzm.de/cgi-bin/weblog_basic/index.php?feed=rss2&amp;p=44</wfw:commentRss>
		</item>
		<item>
		<title>MDGrab- New version with Authentication</title>
		<link>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=34</link>
		<comments>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=34#comments</comments>
		<pubDate>Sun, 11 Feb 2007 09:32:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Webcam]]></category>

		<guid isPermaLink="false">http://dietzm.de/cgi-bin/weblog_basic/index.php?p=34</guid>
		<description><![CDATA[Ive create a new version of the commandline videograbber tool MDGrab. (see downloads) 
New Features:
-send keep alive packets
-authentication added
-webcam control added (up,left,right,down,nightshot)
-some fixes
It required the following jars which you can find here: http://jakarta.apache.org/commons/
-commons-logging
-commons-httpclient
-commons-codecs
Example command to view live video on linux:
java -cp commons-httpclient-3.0.1.jar:commons-logging.jar:commons-codec-1.3.jar:MDGrab.jarde.dietzm.webcam.MDGrab 192.168.0.55 - admin adminpw  &#124; mplayer - -demuxer mpeg4es -msglevel all=1
A detailed [...]]]></description>
			<content:encoded><![CDATA[<p>Ive create a new version of the commandline videograbber tool MDGrab. (see downloads) <br />
<b>New Features:</b><br />
-send keep alive packets<br />
-authentication added<br />
-webcam control added (up,left,right,down,nightshot)<br />
-some fixes</p>
<p>It required the following jars which you can find here: http://jakarta.apache.org/commons/<br />
-commons-logging<br />
-commons-httpclient<br />
-commons-codecs</p>
<p>Example command to view live video on linux:</p>
<blockquote><p>java -cp<br /> commons-httpclient-3.0.1.jar:commons-logging.jar:commons-codec-1.3.jar:MDGrab.jar<br />de.dietzm.webcam.MDGrab 192.168.0.55 - admin adminpw  | mplayer - -demuxer mpeg4es -msglevel all=1</p></blockquote>
<p>A detailed description will follow.</p>
]]></content:encoded>
			<wfw:commentRss>http://dietzm.de/cgi-bin/weblog_basic/index.php?feed=rss2&amp;p=34</wfw:commentRss>
		</item>
		<item>
		<title>Ovislink Airlive system access</title>
		<link>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=24</link>
		<comments>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=24#comments</comments>
		<pubDate>Sun, 11 Feb 2007 08:52:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Webcam]]></category>

		<guid isPermaLink="false">http://dietzm.de/cgi-bin/weblog_basic/index.php?p=24</guid>
		<description><![CDATA[The Ovislink Airlive WL-5460CAM has a security hole which allows you to access the buildin Linux system, read and modify
configuration files.
How ?
-Open the web interface of the webcam
-Choose configuration 
-Store/backup your configuration into a file
-Open this file with a text editor
-Search the section with the /sbin/ifconfig &#8230;. line, this section is the backup of your [...]]]></description>
			<content:encoded><![CDATA[<p>The Ovislink Airlive WL-5460CAM has a security hole which allows you to access the buildin Linux system, read and modify<br />
configuration files.<br />
<b>How ?</b><br />
-Open the web interface of the webcam<br />
-Choose configuration <br />
-Store/backup your configuration into a file<br />
-Open this file with a text editor<br />
-Search the section with the /sbin/ifconfig &#8230;. line, this section is the backup of your /etc/rc.d/rc.sysinit<br />
-Everything you write into this section will be executed on startup (but be careful that it does not block/hang)<br />
-For Example: Add a new line &#8220;ls -l /etc >> /etc/hosts&#8221; this will list all files in /etc and print the result in /etc/hosts<br />
-Now restore your modified configuration file and reboot the webcam.<br />
<b>Why print to /etc/hosts ?</b><br /> <br />
Because it is the next section in you backup configuration, after reboot you can read the result in your configuration backup.</p>
<p>Try it out ! If your Webcam doesn&#8217;t start anymore, you can reset it to the factory defaults.<br />
With some effort it should also be possible to install a telnet or ssh binary to get remote access <br />
Please keep me informed If you managed to get remote access.</p>
<p>Here is the process list of my webcam:</p>
<pre>
  PID  Uid     VmSize Stat Command
    1 root        316 S   init
    2 root            SW  [keventd]
    3 root            SWN [ksoftirqd_CPU0]
    4 root            SW  [kswapd]
    5 root            SW  [bdflush]
    6 root            SW  [kupdated]
    8 root            SW  [mtdblockd]
    9 root            SW  [ftld]
   10 root            SW  [khubd]
   13 root        312 S   init
   14 root        396 S   /bin/sh /etc/rc.d/rc.sysinit
   36 root            SW< [loop0]
  156 root        208 S   /usr/sbin/chkbutton
  158 root        220 S   /bin/op_server 0 0 0
  183 root        584 D   go-server
  184 root        416 S   ipv_server
  186 root        388 S   /bin/sh /etc/rc.d/rc.init.sh
  188 root        416 S   ipv_server
  189 root        416 S   ipv_server
  196 root        288 R   /bin/ps x
</pre>
]]></content:encoded>
			<wfw:commentRss>http://dietzm.de/cgi-bin/weblog_basic/index.php?feed=rss2&amp;p=24</wfw:commentRss>
		</item>
		<item>
		<title>Ovislink 5460 Webcam video grabber tool (MDGrab)</title>
		<link>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=26</link>
		<comments>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=26#comments</comments>
		<pubDate>Sun, 19 Nov 2006 15:51:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Webcam]]></category>

		<guid isPermaLink="false">http://dietzm.de/cgi-bin/weblog_basic/index.php?p=26</guid>
		<description><![CDATA[I&#8217;ve finished the first version of a java based video grabber tool.
It grabs the live stream of the ovislink webcam and stores it into a file.
MDGrab Java Package (JRE 1.5.x required)
To start the video grabber command line tool, enter the following command:
java -jar MDGrab.jar [webcam IP-Address] [output filename]
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finished the first version of a java based video grabber tool.<br />
It grabs the live stream of the ovislink webcam and stores it into a file.<br />
<a href="http://www.dietzm.de/blog/download/index.html?MDGrab.jar">MDGrab Java Package (JRE 1.5.x required)</a></p>
<p>To start the video grabber command line tool, enter the following command:<br />
<B>java -jar MDGrab.jar [webcam IP-Address] [output filename]</B></p>
]]></content:encoded>
			<wfw:commentRss>http://dietzm.de/cgi-bin/weblog_basic/index.php?feed=rss2&amp;p=26</wfw:commentRss>
		</item>
		<item>
		<title>Cellvision Header</title>
		<link>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=27</link>
		<comments>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=27#comments</comments>
		<pubDate>Fri, 17 Nov 2006 23:43:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Webcam]]></category>

		<guid isPermaLink="false">http://dietzm.de/cgi-bin/weblog_basic/index.php?p=27</guid>
		<description><![CDATA[To get the plain mpeg4 video stream I had to remove Cellvisions additional header structure.
The header seems to be always 40 bytes long, and index 24-27 are the size of the following video data.
In java it look like this:

   byte[] hdr = new byte[HEADERSIZE];
   int r = in.read(hdr);
  //convert 4 [...]]]></description>
			<content:encoded><![CDATA[<p>To get the plain mpeg4 video stream I had to remove Cellvisions additional header structure.<br />
The header seems to be always 40 bytes long, and index 24-27 are the size of the following video data.<br />
In java it look like this:<br />
<b><br />
   byte[] hdr = new byte[HEADERSIZE];<br />
   int r = in.read(hdr);<br />
  //convert 4 bytes to an int<br />
   int ret = (hdr[27]&#038; 0xFF)<< 24 | (hdr[26]&#038; 0xFF) << 16 | (hdr[25]&#038; 0xFF) << 8 | (hdr[24]&#038; 0xFF);<br /></b><br />
<br />
I&#8217;ll provide a sample program later (check downloads).</p>
]]></content:encoded>
			<wfw:commentRss>http://dietzm.de/cgi-bin/weblog_basic/index.php?feed=rss2&amp;p=27</wfw:commentRss>
		</item>
		<item>
		<title>WebCam Network Stream analysed</title>
		<link>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=28</link>
		<comments>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=28#comments</comments>
		<pubDate>Fri, 17 Nov 2006 23:27:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Webcam]]></category>

		<guid isPermaLink="false">http://dietzm.de/cgi-bin/weblog_basic/index.php?p=28</guid>
		<description><![CDATA[After some hours of network tracing. I found out how the Webcam works:

It has multiple TCP Ports open:
Port 80 = Web Interface. All commands to control the webcam (pan&#038;tilt&#8230;) are http requests.It also handles the authentication
Port 5000 = Stream initialization.
Port 5001 = Streaming Port, sends the video packets
Port 500  = documented as ipview port. [...]]]></description>
			<content:encoded><![CDATA[<p>After some hours of network tracing. I found out how the Webcam works:<br />
<img src="/images/dump.gif"/></p>
<p>It has multiple TCP Ports open:<br />
<br />Port 80 = Web Interface. All commands to control the webcam (pan&#038;tilt&#8230;) are http requests.It also handles the authentication<br />
Port 5000 = Stream initialization.<br />
Port 5001 = Streaming Port, sends the video packets<br />
Port 500  = documented as ipview port. But ipview pro does not connect to this port !<br />
dynamic Port = UPnp Mediaserver port </p>
<p>The following sequence is used to start the video streaming:<br />
1) connect to port 80 and authenticate (http authentication)<br />
2) connect to port 5000, send a init sequence and disconnect<br />
3) connect to port 5001, send a start sequence and receive the video stream (with a cellvision header in each packet)</p>
]]></content:encoded>
			<wfw:commentRss>http://dietzm.de/cgi-bin/weblog_basic/index.php?feed=rss2&amp;p=28</wfw:commentRss>
		</item>
		<item>
		<title>Ovislink Airlive = Cellvision CAS670W</title>
		<link>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=36</link>
		<comments>http://dietzm.de/cgi-bin/weblog_basic/index.php?p=36#comments</comments>
		<pubDate>Fri, 17 Nov 2006 23:01:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Webcam]]></category>

		<guid isPermaLink="false">http://dietzm.de/cgi-bin/weblog_basic/index.php?p=36</guid>
		<description><![CDATA[Meanwhile I found out that the Ovislink Airlive 5460CAM is equal to the Cellvision CAS670W.

Cellvision seems to be the original developer of the Webcam, while tracing the network traffic I found a lot
of &#8220;Cellvision&#8221; strings in the package header.
Cellvision offers a Aragorn SDK which is a documentation of a webcam protocol (but not 100% equals).
]]></description>
			<content:encoded><![CDATA[<p>Meanwhile I found out that the Ovislink Airlive 5460CAM is equal to the Cellvision CAS670W.<br />
<img src="/images/mycam.jpg"/><br />
Cellvision seems to be the original developer of the Webcam, while tracing the network traffic I found a lot<br />
of &#8220;Cellvision&#8221; strings in the package header.<br />
Cellvision offers a <a href="http://www.cellvision.net/library/sdk/">Aragorn SDK</a> which is a documentation of a webcam protocol (but not 100% equals).</p>
]]></content:encoded>
			<wfw:commentRss>http://dietzm.de/cgi-bin/weblog_basic/index.php?feed=rss2&amp;p=36</wfw:commentRss>
		</item>
	</channel>
</rss>

