Ein Leser meines Blogs hat mich vor kurzem gefragt, ob ich nicht etwas mehr zu meiner Webcam schreiben könnte.
Da ich die ganze Nacht durchgearbeitet habe und dringend etwas entspannung brauche, will ich diesem Wunsch im folgenden einfach mal nachkommen.
Zu Beginn sollten wir uns fragen, was wir alles benötigen:
- Eine funktionierende Webcam
- Einen Linux-Treiber für die Webcam
- Die Sourcen des laufenden Kernels
- Das Programm webcam aus dem xawtv-Package
Die wenigsten Linux-Distributionen werden bereits mit funktionierenden Treibern für Webcams ausgeliefert - und wenn es mal so sein sollte, haben wir bestimmt die falsche Webcam gekauft Deswegen werden wir uns in den meisten Fällen selbst um einen Treiber kümmern müssen.
Ich vereinfache mir die Sache immer, indem ich nach den Vendor- und Product-IDs der Hardware suche. Im Falle von USB-Geräten funktioniert das wie folgt:
~#> cat /proc/bus/usb/devices
[...]
T: Bus=01 Lev=02 Prnt=04 Port=01 Cnt=01 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 1.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS= 8 #Cfgs= 1
P: Vendor=046d ProdID=0840 Rev= 1.00
S: Product=Camera
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=quickcam
E: Ad=81(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
E: Ad=82(I) Atr=03(Int.) MxPS= 1 Ivl=16ms
I: If#= 0 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=quickcam
E: Ad=81(I) Atr=01(Isoc) MxPS=1023 Ivl=1ms
E: Ad=82(I) Atr=03(Int.) MxPS= 1 Ivl=16ms
[...]
Die Werte hergenommen und bei Google eingegeben führen meist auf den ersten 5 Ergebnissen zum Ziel.
Sollte das mal nicht funktionieren kann ich für USB-Geräte eigentlich nur QBik empfehlen.
Erwähnen sollte ich noch, dass man sich nicht immer auf den Namen des Produktes verlassen kann, so habe ich vor 2 Jahren recht günstig bei eBay eine alte Logitech Quickcam ersteigert - eigentlich nicht schlecht, wenn man das günstigste "Markenprodukt" haben will - und meinem Papa zum letzten Weihnachtsfest eine neue des selben "Modells" geschenkt. Nur braucht die Quickcam von meinem Vater einen anderen Treiber als den, den meine alte Quickcam benötigt.
Auf das kompilieren und installieren des Treibers mag ich hier nicht weiter eingehen. Dazu verweise ich lieber auf das entsprechende README/INSTALL-Dokument des Treibers.
Gehen wir also davon aus, dass der Triber erfolgreich kompiliert, installiert und geladen wurde.
In diesem Falle wird der die Webcam mit einem /dev/videoN-Node verknüpfen. Sofern keine TV-Karte oder ähnliches bereits im System installiert ist, wird das /dev/video0 sein. Für den Fall, dass man sich mal nicht sicher ist hilft in der Regel das Log des Kernels aus:
~#> dmesg
[...]
quickcam: QuickCam USB camera found (driver version QuickCam USB 0.6.3 $Date: 2005/04/15 19:32:49 $)
quickcam: Kernel:2.6.16-Tigger bus:1 class:FF subclass:FF vendor:046D product:0840
quickcam: Sensor PB-0100/0101 detected
quickcam: Registered device: /dev/video1
[...]
Im nächsten Schritt brauchen wir ein Programm mit dem wir die korrekte Funktion der frisch installierten Webcam mal testen können. Ich nehme dazu immer das xawtv-Package zur Hilfe - für mich schon fast kult!
Zunächst laden wir uns das aktuellste Release runter, kompilieren und installieren es:
~#> wget http://dl.bytesex.org/releases/xawtv/xawtv-3.95.tar.gz
~#> tar xzf xawtv-3.95.tar.gz
~#> cd xawtv-3.95
~#> su -c "./configure --prefix=/usr --mandir=/usr/share && make && make install"
Da diese Hürde recht fix genommen sein wird, können wir nun einen ersten Test der Webcam starten:
~#> xawtv -c /dev/videoN
Wobei /dev/videoN dem Device entspricht, was unsere Webcam beim vorletzten Schritt zugewiesen bekommen hat.
Wir sollten nun ein kleines Fensterchen bekommen in dem wir uns selbst, bzw. den Ausschnitt auf den die Webcam zeigt, zu sehen bekommen. Das ist der Ideale Zeitpunkt um zu regredieren und einfach ein paar Grimassen zu schneiden. (Dauer: ca. 5-10 Minuten)
Wenn wir den ersten (und einzigen) Test bestanden haben, machen wir uns daran das Programm webcam zu konfigurieren. Das ist eigentlich recht einfach und ist selten sehr individuell. Wir erstellen einfach die Datei ~/.webcamrc:
[grab]
device = /dev/videoN
text = We have a crazy Webcam!
fg_red = 255
fg_green = 255
fg_blue = 255
width = 320
height = 240
delay = 1
quality = 40
wait = 0
input = camera
norm = pal
rotate = 0
top = 0
left = 0
bottom = -1
right = -1
trigger = 100once = 0
[ftp]
host = ftp.tiggerswelt.net
user = tigger
pass = verysecretpassword
dir = /pfad/zur/datei/auf/dem/ftp-server
file = webcam.jpeg
tmp = uploading.jpeg
passive = 1
debug = 0
auto = 0
local = 0
ssh = 0
Ich behaupte einfach mal, dass die meisten Einstellungen selbsterklärend oder unwichtig sind. Wichtig ist natürlich, dass wir das Webcam-device entsprechend setzen und ein Auge auf das delay werfen.
Ich habe das delay recht niedrig gewählt, aber nur, weil ich einen trigger-Wert gesetzt habe.
Delay gibt an, wie oft ein Bild von der Webcam geholt werden soll (in Sekunden). Im Normalfall würde das Bild auch direkt auf den Server geladen werden. Der Trigger-Wert bewahrt es davor, denn sofern trigger gesetzt ist, wird das aktuelle Bild mit dem letzten Bild verglichen und nur, wenn die Veränderung dem Trigger-Wert entspricht, wird ein neues Bild hochgeladen.
Auch die Einstellungen in der [ftp]-Sektion erachte ich für selbsterklärend. Interessant finde ich hier die Option ssh - sofern die den Wert 1 hat, werden die Daten via SSH und nicht via FTP hochgeladen, wobei ich für SSH eindeutig publickey-Authentifizierung empfehle!
Bei weiteren Fragen hilft entweder man webcam (das Manual von webcam) oder der tiggersWelt.net Support
Ich hatte vor einigen Wochen im Supermarkt bei meinem Lebensmittelspezialisten eine Typhoon Easycam 330K USB erstanden - in der Hoffnung einen Treiber zu finden um sie unter Linux zu verwenden. Ich bin dann auch hier fündig geworden, der Treiber lies...
Aufgenommen: Sep 16, 01:23