Möchte mann den Feed einer Webcam auf einer Webseite einbinden, gibt es ein paar Punkte die beachtet werden müssen. Je nach Kamera-Hersteller ist dies einfacher, komplizierter oder nicht direkt möglich.

Viele Kameras können mittels RTSP-Stream angebunden werden, welches mit einem geeignetem Programm angesehen, aber nicht direkt auf einer Webseite eingebunden werden kann.

Camera Stream Screenshot

Stream Setup

Im Idealfall kann die Kamera so konfiguriert werden, dass ein MJPEG stream abgerufen werden kann. Je nach Hersteller kann die Konfiguration zum Beispiel mittels dem Common Gateway Interface (CGI) erfolgen. Ist diese Möglichkeit gegeben, erfolgt die Befehlseingaben, in meinem Fall mittels der folgenden URL im Browser:

http://IP_ADDRESS:PORT/cgi-bin/CGIProxy.fcgi?cmd=setSubStreamFormat&format=1&usr=USER&pwd=PASSWORD

Anschliessend kann der Feed über die folgende URL im Browser angezeigt oder auf einer Webseite eingebunden werden.

http://IP_ADDRESS:PORT/cgi-bin/CGIStream.cgi?cmd=GetMJStream&usr=streamer&pwd=PASSWORD

Stream Einbinden

Der zuvor konfigurierte http-Stream kann nun via HTML img-Tag in die Webseite eingebunden werden.

<img src="CAMERA_URL" alt="Foscam Video-Feed">

Security

Das Einbetten von Links dieser Art birgt enorme Risiken. Die URL und somit auch die zugehörigen Verbindungsparameter sind im Sourcecode einsehbar und können via der Entwicklungskonsole ausgelesen werden.

Die IP-Adresse gibt Aufschluss über den Ort der Kamera und offenbart einen zugangspunkt zur Kamera.

Der Benutzername und das Passwort gibt allen die Möglichkeit diesen Daten zu verwenden und je nach Berechtigung des Benutzers die Kamera entsprechend umzuprogrammieren. Über allenfalls vorhandene Sicherheitslücken sind so beispielsweise auch andere Geräte im Netzwerk gefährdet.

<img src="http://IP_ADDRESS/cgi-bin/CGIStream.cgi?cmd=GetMJStream&amp;usr=streamer&amp;pwd=PASSWORD" alt="Foscam Video-Feed">

Firefox-Console

Bei der verwendung eines Reverse Proxys wie Nginx, kann die Ziel-URL nicht mehr eingesehen werden, da diese durch den Proxy verborgen wird. Auf seiten des Users ist nur noch die URL für die Verbindung zum Reverse proxy sichtbar.

<img src="/stream" alt="Live stream">

Firefox-Console2