Webseitenumleitung

Status
Für weitere Antworten geschlossen.

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.024
Punkte für Reaktionen
275
Punkte
393
Hallo,
da ich von den Web Sachen so gut wie keine Ahnung habe, frage ich mal nach.
Ausgangslage:
Per vlc holt sich die DS den mjpeg Stream einer IP Kamera und gibt in über den eingebetteten Webserver wieder aus (warum, wie)
Rich (BBCode):
http://localhost:8080/stream
die Surveillance Station kann mit diesen Angaben gefüttert werden und erkennt den Stream. So weit so gut. Nun würde ich auch gern Pan/Tilt nutzen wollen. Die Befehle sind bekannt und auch wie ich sie der Surveillance Station beibringen kann. So wie es jetzt ist würden aber die Befehle an localhost gesendet und nicht an die Kamera.
Ziel:
Der user-Apache managed Stream und Pan/Tilt Befehle. Beim Stream umleiten auf den vlc Webserver und die Pan/Tilt Befehle an die Kamara.
Wie wäre sowas möglich?

Gruß Götz
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Öhm ... wir reden von 2 verschiedenen Web-Servern:

1] der in der IP-Cam eingebaute Webserver (und das ist nicht localhost, sondern wohl bei dir 192.168.1.6:2424). Hier würde man also per URL-search-String (http://192.168.1.6:2424?pan=3&tilt=1) steuern können ?!? Deiner Meinung nach? Probieren!

2] der Web-Server auf der DS (localhost:8080), welcher ein User-Interface zum Ansteuern der IP-Cam im weitesten Sinne ist ... Ob du das User-Interface per URL-Optionen dazu bringen kannst, die Cam zu manipulieren, entzieht sich meiner Kenntnis, weil das ja im Webseiten-Skript der Surveillance Station vorgesehen sein müsste. Man könnte das mal ausprobieren ... aber die Erfahrungen bei der Audio-Station und DS- Manager sagen eher, dass das nicht geht. Aber nichts ist unmöglich: Zum Hacken müsstest dir z. B. den Firebug in den FF laden und schauen, ob du das Form-Tag finden kannst. Dann sollten die Eingabefelder auszumachen sein (ich schrieb mal einfach pan und tilt dafür hin), mit denen man per URL-search-String (http://localhost:8080?pan=3&tilt=1) dann probieren könnte.

Itari
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.024
Punkte für Reaktionen
275
Punkte
393
Hallo,
zu 1. ich habe die cgi-Doku der Kamera.
4.1 Move the image in the specified direction
Method: Get
URL: http://camera_ip/camera-cgi/com/ptz.cgi?move=direction
Parameters:
direction: left, right, up, down, upleft, upright, downleft, downright,
center
zu 2. localhost:8080 ist der embedded Webserver des vlc. Bisher habe ich nicht herausfinden können ob der selbst Zusatzseiten verwalten oder redirecten kann (ffserver von ffmpeg kann es).
In /usr/syno/etc/camera_model.conf kann man sich selbst eine Kamera definieren und dort auch die Befehle für Pan/Tilt hinterlegen. Am Ende der Datei sind schon einige hinterlegt z.B.
Rich (BBCode):
[TRENDNet*generic-ptz2]
        port=80
        video source="cgi/mjpg/mjpg.cgi"
        tilt up="admin/ptctl.cgi?move=up"
        tilt down="admin/ptctl.cgi?move=down"
        pan left="admin/ptctl.cgi?move=left"
        pan right="admin/ptctl.cgi?move=right"
        home pos="admin/ptctl.cgi?move=h"
nur die werden eben an die in der Surveillance Station eingetragene IP und in meinem Fall an localhost gesendet.
Deswegen einen user-Apache mit einer Seite /cam/stream die zu localhost:8080 redirected wird und eine /cam/pan-tilt die samt Parametern zur Kamera umgelenkt wird.

Gruß Götz

PS: eigentlich sind es 3 Webserver
sys-Apache Surveillance Station
vlc kompatible Stream-Ausgabe
user-Apache soll machen was ich will :)
und noch einer, die Kamera
 
Zuletzt bearbeitet:

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.024
Punkte für Reaktionen
275
Punkte
393
Hallo,
ein
Rich (BBCode):
RewriteEngine on
RedirectMatch ^/cam/$ http://192.168.1.4:8080/
funktioniert im Browser super aber die Surveillance Station kommt damit nicht klar. Schade. Gibt es noch andere Möglichkeiten?

Gruß Götz
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
wo hast den die Redirection hineingeschrieben?

Itari
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.024
Punkte für Reaktionen
275
Punkte
393
Moin,moin
die habe ich in /usr/syno/apache/conf/extra/httpd-autoindex.conf-user
gebe ich im browser http://192.168.1.4/cam ein werde ich zu http://192.168.1.4:8080/ umgeleitet und der Stream angezeigt. cam ist ein leeres Verzeichnis unter /volume1/web.

Gruß Götz
 

mkl0815

Benutzer
Mitglied seit
23. Sep 2009
Beiträge
138
Punkte für Reaktionen
0
Punkte
0
Hallo,
ein
Rich (BBCode):
RewriteEngine on
RedirectMatch ^/cam/$ http://192.168.1.4:8080/
funktioniert im Browser super aber die Surveillance Station kommt damit nicht klar. Schade. Gibt es noch andere Möglichkeiten?
Gruß Götz

Dein Problem ist, das die Surveillance Station einfach nur ein POST oder GET Request an die angegebene Adresse schickt. Dein Webserver antwortet aber mit einem HTTP-Response der dem Client (der Surveillance Station) sagt, das er bitte die neue Adresse nehmen soll.
Das verarbeitet die Surveillance Station dann aber nicht mehr, Dein Browser aber schon.

Was Du brauchst ist ein
Rich (BBCode):
RewriteEngine on
RewriteRule ^/cam/(.*)$ http://192.168.1.4:8080/$1 [P]

Damit leitet Dein Webserver die Anfrage direkt an das Ziel durch (ProxyPass) und liefert die Antwort des Ziels zurück.
Allerdings mußt Du mal schauen, ob das mod_proxy und mod_porxy_http aktiv ist, das wird nämlich dafür benötigt.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.024
Punkte für Reaktionen
275
Punkte
393
Hallo,
funktioniert leider auch nicht. Im Browser geht es, aber auch ein wenig komisch, klicke ich auf Laden der Seite stoppen blinkert das Netzwerk munter weiter und ein Reload bringt den Stream nicht wieder. Erst eine andere Seite aufrufen und dann geht es wieder. In der Surv. Station kommt beim testen Kamera kann nicht identifiziert werden.... Ich hab noch ein
Rich (BBCode):
RewriteRule ^/camera-cgi/(.*)$ http://user:passwort@192.168.1.6:2424/camera-cgi/$1 [P]
dazugefügt. Pan/Tilt funktioniert damit aus der Live-Ansicht.

Gruß Götz
 

mkl0815

Benutzer
Mitglied seit
23. Sep 2009
Beiträge
138
Punkte für Reaktionen
0
Punkte
0
Ok, ich fasse nochmal zusammen, damit ich nix falsch verstehe:

Kamera läuft auf 192.168.1.6 Port 2424
Webserver von vlc läuft auf 127.0.0.1 (192.168.1.4) Port 8080
User Webserver der DS auf 192.168.1.4 Port 80

DS greift auf den mjepg Stream auf 127.0.0.1:8080 zu
DS soll die PAN/TILT Kommandos aber direkt auf den Kamera-Server schiessen?

Wenn das so ist, würde ich das so umbiegen:

Rich (BBCode):
RewriteEngine on
RewriteRule ^/cam/(cgi.*)$ http://192.168.1.4:8080/$1 [P]
RewriteRule ^/cam/(admin.*)$ http://192.168.1.6:2424/$1 [P]

	
	


Rich (BBCode):
D.h. Zugriff auf dem Daten-Strom geht auf den VLC-Server, die Bewegungskommandos aber direkt auf die Kamera. Ggf. wieder um user:passwort erweitern.

Wichtig ist, das nun http://192.168.1.4/cam/cgi/mjpg/mjpg.cgi der komplette Pfad zum Stream ist. Dabei ist alles ab "/cgi/mjpg/mjpg.cgi" aber in der camera_model.conf definiert.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.024
Punkte für Reaktionen
275
Punkte
393
Hallo,
jetzt gehts:D.
Problem war wohl, daß ich dem vlc keinen Dateinamen mitgegeben habe
Rich (BBCode):
...mux=mpjpeg,dst=:8080}'
geändert in
Rich (BBCode):
...mux=mpjpeg,dst=:8080/video.mjpeg}'
und schon ist kein Fehler mehr bei "Test Kamera". Der obige Code aus der /usr/syno/etc.default/camera_model.conf war nur ein Beispiel, meine Edimax hat da andere Pfade.
Also Zusammenfassung:

In /usr/syno/apache/conf/httpd.conf-user einfügen
Rich (BBCode):
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
In /usr/syno/apache/conf/extra/httpd-autoindex.conf-user anhängen
Rich (BBCode):
RewriteEngine on
RewriteRule ^/cam/(video.*)$ http://192.168.1.4:8080/$1 [P]
RewriteRule ^/cam/(camera-cgi.*)$ http://192.168.1.6:2424/$1 [P]
In /usr/syno/etc.defaults/camera_model.conf am Anfang einfügen
Rich (BBCode):
Edimax*IC-7000PT=Edimax*generic
und am Ende anhängen
Rich (BBCode):
[Edimax*generic]
        port=80
        video source="cam/video.mjpeg"
        tilt up="/cam/camera-cgi/com/ptz.cgi?move=up"
        tilt down="/cam/camera-cgi/com/ptz.cgi?move=down"
        pan left="/cam/camera-cgi/com/ptz.cgi?move=left"
        pan right="/cam/camera-cgi/com/ptz.cgi?move=right"
        home pos="/cam/camera-cgi/com/ptz.cgi?move=center"
Noch ein Hinweis, die /usr/syno/etc.default/camera_model.conf muß bearbeitet werden nicht /usr/syno/etc/camera_model.conf
Herzlichen Dank an mkl0815 für Deine Hilfe.

Gruß Götz
 

mkl0815

Benutzer
Mitglied seit
23. Sep 2009
Beiträge
138
Punkte für Reaktionen
0
Punkte
0
Schön das es geklappt hat. Wäre schön, wenn da ein Wiki-Artikel draus werden könnte.
Aufpassen übrigens beim Firmware-Upgrade, hier werden Änderungen an den System-Files wohl gnadenlos überschrieben.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.024
Punkte für Reaktionen
275
Punkte
393
Hallo,

das überschreiben der confs ist beim nächsten Firmwarerelease sogar sehr erwünscht:D. Die Kamera soll dann offiziell unterstützt sein.

Gruß Götz
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat