Forum: PC-Programmierung Zugriff auf Webcam per (mobilem) Browser


von Borislav B. (boris_b)


Lesenswert?

Hallo,
ich würde gerne eine USB-Webcam, die an einem Raspberry Pi hängt, über 
mein Smartphone abfragen können.

Als ersten Test habe ich folgendes in der Shell ausgeführt:
1
sudo fswebcam -r 640x480 --no-banner --jpeg 75 -S 2 -d /dev/video3 test.jpeg
Das funktioniert so weit, d.h. die Kamera springt an und ein Foto wird 
aufgenommen.

Als nächsten Schritt habe ich einen Nginx Webserver + PHP auf dem Pi 
installiert, der folgende Seite hosted:
1
<HTML>
2
<HEAD>
3
<TITLE>Webcam Test</TITLE>
4
</HEAD>
5
<BODY>
6
<?php
7
system('sudo fswebcam -r 640x480 --no-banner --jpeg 75 -S 2 -d /dev/video3 test.jpeg', $retval);
8
?>
9
</BODY>
10
</HTML>

Die Seite kann ich nun von meinem Smartphone aus aufrufen.
Das Problem: die Kamera wird nicht aktiv. Der system-Aufruf scheint 
keine Wirkung zu haben...

Als Linux-Neuling stehe ich hier nun auf dem Schlauch :-(
Wer kann helfen?

von Daniel A. (daniel-a)


Lesenswert?

Das könnte sudo liegen. Dann hast folgende Möglichkeiten:
1) Sudo entfernen und berechtigungen von /dev/video3 per udev rule 
anpassen.
2) Den Befehl fswebcam ins sudoers file eintragen
3) Die Gruppe www-data ins sudoers file eintragen

Es könnte aber auch sein, das der system() aufruf in php deaktiviert 
ist. Dann muss dieser Aktiviert werden.

PS: Wieso schreibst du die HTML Tags uppercase? Ausserdem könnte die 
Ausgabe von
1
<?php phpinfo(); ?>
nützlich sein.

: Bearbeitet durch User
von Borislav B. (boris_b)


Lesenswert?

Daniel A. schrieb:
> 2) Den Befehl fswebcam ins sudoers file eintragen
> 3) Die Gruppe www-data ins sudoers file eintragen

Das hat geholfen. Danke :-)

Daniel A. schrieb:
> PS: Wieso schreibst du die HTML Tags uppercase?

Den HTML Code habe ich per copy & paste aus dem Netz geholt. War ja nur 
ein schneller Test. Ist wirklich nicht schön ;-)

von Daniel F. (df311)


Lesenswert?

was hat du genau vor? die system-call lösungen sind nicht nur nicht 
schön sondern schon fast hässlich.

eine webcam bauen die nur bei einem aufruf ein aktuelles bild macht?
oder willst du vom smartphone einfach nur sehen was grade vor sicht geht 
(echtzeit)?
oder willst du z.b sehen wie das wetter grade ist?
brauchst hättest du gerne ein archiv für die bilder?

für die meisten der o.g. varianten gibts sicher bessere möglichkeiten 
als den system-call

von Christian M. (Gast)


Lesenswert?

Das mache ich auch so, und zwar für alles! Dann muss ich keine neue 
Programmiersprache lernen (PHP)!

Gruss Chregu

von Borislav B. (boris_b)


Lesenswert?

Daniel F. schrieb:
> was hat du genau vor? eine webcam bauen die nur bei einem aufruf ein
> aktuelles bild macht?

Genau das.

> oder willst du vom smartphone einfach nur sehen was grade vor sicht geht
> (echtzeit)?

Das wäre dann natürlich die Deluxe-Lösung. Ist aber bei den 
schwächlichen mobilen Datenverbindungen hier in der Gegend eher 
schwierig (bis unmöglich).

> oder willst du z.b sehen wie das wetter grade ist?

Das wird ja über Simpel-Lösung abgedeckt.

> brauchst hättest du gerne ein archiv für die bilder?

Nah, es soll ja keine Nachbar-Überwachungskamera werden ;-)

von Tom (Gast)


Lesenswert?

Boris P. schrieb:
> Daniel A. schrieb:
>> 2) Den Befehl fswebcam ins sudoers file eintragen
>> 3) Die Gruppe www-data ins sudoers file eintragen
>
> Das hat geholfen. Danke :-)

Und 1) wäre der richtige Weg gewesen.

Der Weg der einfachen Lösung mit duso ist zwar hier noch kein Problem, 
aber nachdem man das 4. Feature aus PHP-Foren dazugeCopyUndPastet hat, 
ist die ganze Welt root auf der Himbeere.

von Borislav B. (boris_b)


Lesenswert?

Tom schrieb:
> ist die ganze Welt root auf der Himbeere.

Das ist kein Problem, das Gerät hängt ja nicht am Internet, sondern nur 
in meinem Heimnetz. Über die sicherheit muss ich mir also keine Gedanken 
machen ;-)

von Jojo S. (Gast)


Lesenswert?

'Motion' ist ein deutlich leistungsfähigeres Paket, auf der Basis 
findest du auch reichlich php Webcam Lösungen.

von Vlad T. (vlad_tepesch)


Lesenswert?

warum nicht einfach einen chronjob, der alle 10 sec oder so ein Bild 
macht und dieses in einem Verzeichnis ablegt, auf das der Webserver 
zugriff hat.

Der Webserver liefert einfach nur eine Statische Seite mit genau diesem 
Bild aus. Mit ein wenig JS kann man noch ein automatischen reload des 
Bildes machen und gut.  Dann kann man sich auch das ganze php auf dem 
Raspi sparen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.