Wiki

Zusammenfassung

Wir experimentieren gerade im Rahmen eines Kunstprojektes mit Überwachungskameras herum. Das Ziel ist ein Interface für 8 Überwachungskameras zu schreiben, welches die Bilder aller Kameras anzeigt, und mit dem man die Kameras steuern kann.

Da es sich dabei um undokumentierte Hardware handelt, haben wir die Befehle, die die Kamera per Webinterface entgegennimmt mitgelesen.

Wireshark starten

Die Kamera hat im Auslieferungszustand eine feste statische IP aus 192.168.0.0/24. Wenn die Kamera bootet sendet sie einige IP Pakete, diese kann man z.B. mit Wireshark aufzeichnen um schnell die IP der Kamera herauszufinden.

Damit man jetzt nicht den ganzen Traffic durchwühlen muss, empfiehlt es sich als display Filter http.request.method zu nehmen. Dann sieht man alle Requests, die in Richtung Kamera vom Webinterface aus gehen.

Anschliessend steuert man die IP der Kamera im Browser an (bei mir 192.168.0.117). Als Login funktioniert hoffentlich die Werkseinstellung (admin/123456).

Nun kann man im Webinterface rumklicken, und sieht in wireshark alle Requests.

Die Kamera

Es handelt sich bei den benutzten Kameras um die Conceptronic Wireless Pan & Tilt Network Camera. Diese gibt es unter vielen anderen Bezeichnungen für wenig Geld im Elektronikladen des Vertrauens.

Steuerbefehle

One Direction:

http://192.168.0.117/decoder_control.cgi?onestep=1&command=X
X = 0 --> down
X = 2 --> up
X = 4 --> clockwise
X = 6 --> counter-clockwise

Two Directions:

http://192.168.0.117/decoder_control.cgi?command=X
X = 93 --> up AND counter-clockwise
X = 92 --> up AND clockwise
X = 91 --> down AND counter-clockwise
X = 90 --> down AND clockwise

after the two directions commands is sent, a second request is sent 500ms later:

http://192.168.0.117/decoder_control.cgi?command=1

Streife:

Horizontal:     http://192.168.0.117/decoder_control.cgi?command=28
Stop:           http://192.168.0.117/decoder_control.cgi?command=29
Vertikal:       http://192.168.0.117/decoder_control.cgi?command=26
Stop:           http://192.168.0.117/decoder_control.cgi?command=27

Bildeinstellungen:

Reversal:       http://192.168.0.117/camera_control.cgi?param=5&value=1
Non-Reversal:   http://192.168.0.117/camera_control.cgi?param=5&value=2
Mirror:         http://192.168.0.117/camera_control.cgi?param=5&value=3
Non-Mirror:     http://192.168.0.117/camera_control.cgi?param=5&value=0

Snapshot:

http://192.168.0.117/snapshot.cgi

Refresh-Button:

http://192.168.0.117/live.htm
http://192.168.0.117/videostream.cgi?rate=0

Mode:

50Hz:    http://192.168.0.117/camera_control.cgi?param=3&value=0
60Hz:    http://192.168.0.117/camera_control.cgi?param=3&value=1
outdoor: http://192.168.0.117/camera_control.cgi?param=3&value=2

Size:

160x120:        http://192.168.0.117/camera_control.cgi?param=0&value=2
320x240:        http://192.168.0.117/camera_control.cgi?param=0&value=8
640x480:        http://192.168.0.117/camera_control.cgi?param=0&value=32

Rate:

Full Speed:      http://192.168.0.117/videostream.cgi?rate=0
20  fps:         http://192.168.0.117/videostream.cgi?rate=1
15  fps:         http://192.168.0.117/videostream.cgi?rate=3
10  fps:         http://192.168.0.117/videostream.cgi?rate=6
 5  fps:         http://192.168.0.117/videostream.cgi?rate=11
 4  fps:         http://192.168.0.117/videostream.cgi?rate=12
 3  fps:         http://192.168.0.117/videostream.cgi?rate=13
 2  fps:         http://192.168.0.117/videostream.cgi?rate=14
 1  fps:         http://192.168.0.117/videostream.cgi?rate=15
.5  fps:         http://192.168.0.117/videostream.cgi?rate=17
.33 fps:         http://192.168.0.117/videostream.cgi?rate=19
.25 fps:         http://192.168.0.117/videostream.cgi?rate=21
.2  fps:         http://192.168.0.117/videostream.cgi?rate=23

Brightness:

http://192.168.0.117/camera_control.cgi?param=1&value=X
X = 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240

Contrast:

http://192.168.0.117/camera_control.cgi?param=2&value=X
X = 0, 1, 2, 3, 4, 5, 6