Webcam für die eigene Homepage
 

Wer eigene Webcam-Bildchen auf seine Homepage hochladen will, kann sich entweder der Programme camorama oder camstream bedienen oder das Programm webcam benutzen. camorama und camstream haben eine grafische Benutzerschnittstelle und erkären sich damit von selbst, daher gehe ich hier nur auf die Verwendung von dem Konsolen-Programm webcam ein. Welches Programm einem am Besten gefällt, muß der eigene Geschmack entscheiden. Die Nachteile von webcam sind daß das Paßwort in der Konfigurations-Datei im Klartext drin steht und man weder die Auflösung noch die Helligkeit der Cam einstellen kann. Dafür fressen camorama und camstream mehr Rechenleistung. Und noch ein zusätzlicher negativer Punkt bei camorama: Das kleinste Intervall für den Upload ist 1 Minute!

Was machen nun diese Webcam-Programme? Mittels dieser Programme ist es möglich einzelne Bilder mit der Webcam aufzunehmen und via FTP auf die Homepage hochzuladen, wo dann alle Welt sehen kann, wie schön oder unschön das Wetter gerade ist, dort wo man wohnt.

Auf die Installation einer Webcam gehe ich hier nicht näher ein. Ob die Cam funktioniert kann man ganz einfach mit dem Tool xawtv überprüfen, welches nicht nur mit TV-Karten umgehen kann, sondern auch prima mit Webcams zurecht kommt (siehe Beitrag xawtv - Webcam und TV-Karte wiedergeben).

Zuerst muß man natürlich erst einmal das Programm installieren, also
# apt-get install webcam

Das Programm webcam benötigt eine Konfigurationsdatei, welche Wahlweise in /etc/webcam.conf liegen kann oder im home-Verzeichnis mit Namen .webcamrc.
Leider ist die Manpage von webcam mehr als dürftig ausgefallen und geht nicht näher auf die erforderlichen Einstellungen ein. Meine ersten Versuche endeten mit den zwei Fehlermeldungen daß die Einstellung für norm und input falsch ist. Die Angabe in der Manpage sieht z.B. für die Einstellung input TV oder composite vor, während bei mir usb korrekt war. Glücklicherweise gibt es ein Hilfsmittel um die richtigen Einstellungen herauszufinden. Man gibt einfach auf der Konsole ein:
# v4lctl list
und erhält
attribute type current default comment
norm
input
bright
contrast
color
Auto White
choice
choice
int
int
int
bool
(null)
usb
63
32
0
on
webcam
usb
64
0
0
off
webcam
usb
range is 0 => 128
range is 0 => 64
range is 0 => 100
 
....

Wie man an den entsprechenden Zeilen sehen kann, ist für mich die Einstellung norm = webcam und input = usb korrekt.
Anhand dieser Werte kann man nun die erforderlichen Einstellungen in der Konfigurationsdatei vornehmen. Hier eine Beispiel-Datei mit ein paar Standard-Einstellungen. Wer tiefer ins Detail gehen will, kann sich sämtliche möglichen Einstellungen in der manpage nachschlagen.

[ftp]
host = udosworld.de
user = ftp-Anmeldename
pass = xxxxxx
dir = /Webcam
file = webcam.jpg
tmp = imageup.jpg
local = 0

[grab]
device = /dev/video0
width = 320
height = 240
delay = 10
input = usb
norm = webcam
quality = 75
trigger = 0

host = die eigene Homepage auf der die Bilder erscheinen sollen.
user = der Anmeldename für den FTP-Zugang zur Homepage.
pass = das Paßwort (steht hier dann leider im Klartext drin!)
dir = Das Directory unter dem das Bild gespeichert werden soll.
file = der Dateiname, hier ein jpg-Bild.
tmp = der Name für die temporäre Zwischenspeicherung.
local = setzt man local auf 1 findet keine Einwahl per FTP statt, das Bild wird sozusagen nur local verwendet.

device = das Video-Device, in der Regel video0.
width, height = die Abmaße des Bildes.
delay = die Zeit in Sekunden, die bis zum nächsten Bild verstreicht.
input, norm = (siehe oben)
quality = die JPG-Qualität, hier 75.
trigger = Setzt man trigger auf 0 wird immer ein aktuelles Bild hochgeladen. Bei höheren Werten nur noch, wenn sich etwas im Bild ändert.

Somit ist das Programm einsatzbereit. Fehlt nur noch das Einbinden des Webcam-Bildes in die Webseite. Dazu legt man zuerst auf dem Homepage-Speicherplatz das Verzeichnis /Webcam an, so wie in der conf-Datei festgelegt. Anschließend erstellt man eine Webseite in der folgende Dinge drinstehen müssen:

<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="refresh" content="5">

</head>
<body>
<center>
<h2>My Web Cam</h2>
<img src="/Webcam/webcam.jpg" width="320" height="240">
</center>
</body>
</html>

Mit der Angabe <meta http-equiv="pragma" content="no-cache"> wird das Zwischenspeichern auf Proxy-Servern verhindert. Die Angabe
<meta http-equiv="cache-control" content="no-cache"> weist den Browser an, die Seite nicht aus dem Cache zu laden, sondern immer frisch vom Webserver. Die Angabe <meta http-equiv="expires" content="0"> sagt, nach wievielen Sekunden die Seite nicht mehr aktuell ist. In unserem Fall nach 0 Sekunden somit wird die Seite bei einem reload ebenfalls neu vom Webserver geholt. Und zum Schluß die wichtigste Angabe: <meta http-equiv="refresh" content="5"> weist den Browser an, nach so und sovielen Sekunden die Seite neu zu laden. Würde diese Angabe fehlen, müßte man immer mittels des F5-Buttons "von Hand" selbst aktualisieren, sonst würde man ewig auf ein und dasselbe Bild starren...

Nachdem wir das html-Dokument auf den Homepage-Speicherplatz hochgeladen haben, fehlt nur noch das Programm abzustarten. Dazu gibt man dem Programmaufruf das Config-File mit.
# webcam /etc/webcam.conf
möchte man das Programm im Hintergrund laufen lassen, gibt man ein UND-Zeichen mit an:
# webcam /etc/webcam.conf &
Um das im Hintergrund laufende Programm wieder zu beenden, muß man entweder kill mit der Signalnummer eingeben oder man holt mittels fg das Programm wieder in den Vordergrund und beendet es mit STRG-C.
# fg webcam