Mitunter möchte man als Kamerabetreiber seinen Besuchern die Möglichkeit geben, in einem Archiv zu stöbern. Da das manuelle Anlegen und Verwalten eines Archivs eigentlich nicht möglich oder zumindest sehr mühsam ist, wurde CamHistory geschrieben. CamHistory ist eine Sammlung von Perlscripts, die Kamerabilder in ein Archiv speichern und die Archivbilder anzeigen. Die Bilder können sowohl automatisch über einen Cronjob, als auch manuell durch einen Verweis auf einer Webseite archiviert werden. Die Seite zur Anzeige der Archivbilder wird beim Abruf automatisch generiert und ist somit stets aktuell.
Der Webserver auf dem CamHistory installiert wird muss folgende Anforderungen erfüllen:
Die Anpassung der Perlscripts ist relativ einfach. Trotzdem sind grundlegende Kenntnisse bezüglich Konfiguration, Zugriffsrechte und Cronjobs erforderlich, da hier nicht näher darauf eingegangen wird.
CamHistory besteht aus den nachfolgenden Dateien:
camhist.cfg | Die Konfigurationsdatei mit den Pfaden und Einstellungen für alle Scripte. |
offline.gif | Eine GIF-Datei, die angezeigt wird, wenn kein Kamerabild gespeichert werden konnte. |
save.pl | Wird durch einen Link auf einer Webseite aufgerufen und archiviert das aktuelle Kamerabild. |
c_save.pl | Wird zeitgesteuert über einen Cronjob aufgerufen und archiviert das Kamerabild automatisch. |
view.pl | Zeigt die Archivbilder in Listenform an. |
Bei allen Perlscripts, das sind die Dateien mit der Endung .pl, ist in der ersten Zeile der Pfad zum Perl-Interpreter anzupassen. Im Script c_save.pl muss der Serverpfad zur Konfigurationsdatei camhist.cfg eingetragen werden. Die Stelle, am Anfang der Datei unter dem Copyright-Hinweis, ist durch einen Kommentar gekennzeichnet. Alle anderen Einstellungen sind in der Konfigurationsdatei camhist.cfg wie folgt vorzunehmen.
$webcam_url | Diese Variable enthält die URL zu einem Kamerabild im JPG-Format. Da das Bild über HTTP abgefragt wird, ist es egal ob die Bilddatei auf dem eigenen Server liegt oder von einem anderen Server stammt. So ist beispielsweise auch eine URL wie http://127.0.0.1:8888/video/frame zulässig, mit der ein Bild direkt vom Programm Webcam32 abgerufen wird. |
$archive_path | Diese Variable enthält den Serverpfad zum Archivverzeichnis, ohne Schrägstrich am Ende. |
$archive_url | Diese Variable enthält die URL zum Archivverzeichnis, ohne Schrägstrich am Ende. |
$picX, $picY | Diese beiden Variablen bestimmen die Breite und Höhe der Archivbilder bei der Anzeige. Im Normalfall sind hier die Originalabmessungen des Kamerabildes anzugeben. |
$max_pic | Diese Variable bestimmt die maximale Anzahl der archivierten Bilder. Bei Überschreitung wird das älteste Bild automatisch gelöscht. Eine Null deaktiviert diese Funktion. |
Legen Sie auf Ihrem Webservers das in der Konfigurationsdatei angegebene Archivverzeichnis an. Setzen Sie die Rechte des Verzeichnisses auf 777 und kopieren Sie die Datei offline.gif im Binär-Modus in dieses Verzeichnis. Laden Sie alle Dateien mit den Endungen .pl und .cfg im ASCII-Modus in das CGI-Verzeichnis Ihres Webservers hoch. Setzen Sie die Rechte aller Dateien mit der Endung .pl auf 755.
Das Script sollte auf einer Webseite mit nachstehendem Code aufgerufen werden. Die Adresse zum Script und die Fenstergröße sind anzupassen.
<a href="#" onClick="window.open('http://www.domain.de/cgi-bin/save.pl','window1','width=360,height=360');return false;">Kamerabild speichern</a>
Ein Mausklick auf den Verweis öffnet ein neues Browserfenster. Das Script holt sich über eine HTTP-Anfrage das Kamerabild, speichert es ins Archivverzeichnis und zeigt eine Bestätigungsseite mit dem gespeicherten Bild an. Ist die Kamera bzw. das Kamerabild nicht erreichbar, wird die Datei offline.gif angezeigt. Diese Datei kann bzgl. Größe und Aussehen verändert werden. Dateiformat und Name müssen allerdings unverändert bleiben.
Der Name eines Archivbildes wird aus dem Datum der Datei, oder wenn dieses nicht verfügbar ist, aus dem aktuellen Serverdatum gebildet (Format: yyyymmdd_hhmmss.jpg). Die Namen aller JPG-Dateien im Archivverzeichnis müssen diesem Format entsprechen!
Das Script muss über einen Cronjob aufgerufen werden, holt sich danach über eine HTTP-Anfrage das Kamerabild und speichert es ins Archivverzeichnis. Cronjobs ermöglichen den zeitgesteuerten Start von Programmen und sind Bestandteil eines jeden besseren Webspace-Angebots. So kann beispielsweise jede Stunde ein Bild automatisch archiviert werden. Das Script wird nur benötigt, wenn eine automatische Archivierung über Cronjobs erfolgen soll.
Das Script sollte auf einer Webseite mit nachstehendem Code aufgerufen werden. Die Adresse zum Script und die Fenstergröße sind anzupassen.
<a href="#" onClick="window.open('http://www.domain.de/cgi-bin/view.pl','window2','width=360,height=430');return false;">Archivbilder ansehen</a>
Ein Mausklick auf den Verweis öffnet ein neues Browserfenster Das Script liest die Dateien im Archivverzeichnis aus und listet alle darin enthaltenen JPG-Bilder in einer Auswahlliste auf. Das aktuellste Bild wird sofort angezeigt.
Ein Klick auf den nachstehenden Verweis öffnet eine typische WebCam-Seite. Die Bildaktualisierung erfolgt durch JavaScript. Sofern die Kamera online ist, wird das Bild alle 60 Sekunden erneuert (siehe Zeitstempel).
Der für CamHistory relevante Teil der Seite besteht nur aus den beiden Verweisen am Ende. Kamerabild archivieren startet das Script save.pl und speichert das aktuelle Kamerabild ins Archivverzeichnis. Archivbilder ansehen startet das Script view.pl und zeigt den Inhalt des Archives an.
CamHistory darf kostenlos verwendet und an die eigenen Bedürfnisse angepasst werden. Nicht gestattet ist die Entfernung des Copyright-Hinweises in den Dateien und die Veröffentlichung unter eigenem Namen.
DIE FEHLERFREIHEIT DIESER SOFTWARE KANN NICHT GARANTIERT WERDEN. JEGLICHE HAFTUNG FÜR DIREKTE UND INDIREKTE SCHÄDEN WIRD HIERMIT AUSDRÜCKLICH AUSGESCHLOSSEN. DIE VERWENDUNG ERFOLGT AUF EIGENE GEFAHR.
Download: camhist.zip
Version 1.11
Version 1.10
Version 1.01
Version 1.00
Version 0.90