Kamera Konfiguration RTSP Stream als MJPEG in Netz streamen?

c0smo

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
7.571
Punkte für Reaktionen
1.680
Punkte
274
Vielen Dank dafür! :)
Und die CameraID ist statisch?
 

drtp

Benutzer
Mitglied seit
27. Jul 2011
Beiträge
177
Punkte für Reaktionen
2
Punkte
18
Ja. Im Unterschied zum RTSP-Stream muss man die nicht extra auf dauerhaft stellen.
 

c0smo

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
7.571
Punkte für Reaktionen
1.680
Punkte
274
Interessant wäre jetzt noch, ob es eine Möglichkeit gibt, diese 2 Befehle in eine http Anfrage zu packen. Laut API sollte das unter bestimmten Voraussetzungen funktionieren. Eine davon ist der vorherige login, gefolgt von den cookies. Und abschließend muss der SS User die Berechtigung für das downloaden der Snapshots haben.
 

drtp

Benutzer
Mitglied seit
27. Jul 2011
Beiträge
177
Punkte für Reaktionen
2
Punkte
18
Ich hatte es mal versucht, beides in einen http-Befehl zu packen. Es wurde dann auch ein Bild geholt. Das entspricht jedoch nicht mehr der JPG-Norm, so dass es z.B. von Pushover nicht angezeigt werden kann, weil es noch die Cookie-Informationen aufweist. Könnte man ggf. umgehen, aber da ich ja eine Lösung für mich gefunden habe, bin ich der Sache nicht weiter nachgegangen.
 

mrflash

Benutzer
Mitglied seit
14. Okt 2013
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo, leider funktioniert der Aufruf.
Code:
http://192.168.X.X:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mjpeg&cameraId=0&StmKey=%22ganzheeim%22
bei mir nicht.
Es kommt json mit code 401 zurück.
Was mache ich falsch?
Danke
Gruß
 

e91

Benutzer
Mitglied seit
26. Jul 2020
Beiträge
15
Punkte für Reaktionen
7
Punkte
53
Hallo, leider funktioniert der Aufruf.
Code:
http://192.168.X.X:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mjpeg&cameraId=0&StmKey=%22ganzheeim%22
bei mir nicht.
Es kommt json mit code 401 zurück.
Was mache ich falsch?
Danke
Gruß
Erstmal vielen Dank an Thorsten für die Vorlage! Habe es eben probiert und es geht recht gut, nur die Aktualisierungsrate ist etwas träge (schwankt zwischen 1-4 Sekunden).

mrflash probiere mal hinter "cameraId=" anstatt der "0" eine andere Zahl. Bei mir hat "cameraId=3" funktioniert. Die 0 gab auch den Code 401 zurück!

Gruß
 

drtp

Benutzer
Mitglied seit
27. Jul 2011
Beiträge
177
Punkte für Reaktionen
2
Punkte
18
Hallo,

ich hatte ja hier ein Shell-Skript gepostet, mit dem man sich per externem Zugriff auf die Surveillance Station ein Capture seiner RTSP-Kamera erzeugen und lokal abspeichern kann. Doch leider funktioniert die Methode zum Erzeugen und Abspeichern der Cookies seit DSM 7 nicht mehr. Hat da ggf. jemand einen Tipp für mich?

Gruß,

Thorsten
 

e91

Benutzer
Mitglied seit
26. Jul 2020
Beiträge
15
Punkte für Reaktionen
7
Punkte
53
Hab den Script nie probiert, aber das aufrufen über die URL aus deinem Post

http://192.168.x.xx:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Stream.VideoStreaming&version=1&method=Stream&format=mjpeg&cameraId=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%22

geht auch bei DSM 7 einwandfrei. Bild kommt ca. alle 1,5 Sekunden.
 
Zuletzt bearbeitet von einem Moderator:

drtp

Benutzer
Mitglied seit
27. Jul 2011
Beiträge
177
Punkte für Reaktionen
2
Punkte
18
JA, der Aufruf klappt weiterhin. Mir geht's aber um das Holen der Cookies mit diesem Befehl:

Code:
http://<IP-DISKSTATION:PORT>/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=<ACCOUNT>&passwd=<PASSWORT>

Und der funktioniert nicht mehr. Da kommt dann immer ein "false".

Was dagegen funktioniert, ist dieser Aufruf:

Code:
http://<IP-DISKSTATION:PORT>/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method=%22Trigger%22&version=1&eventId=1&eventName=%22This%20is%20external%20event1%22&account=<ACCOUNT>&password=<PASSWORT>

Allerdings dient der zum Setzen des Anwesenheitsstatus der Surveillance Station und nicht zum Holen eines Captures.
 

drtp

Benutzer
Mitglied seit
27. Jul 2011
Beiträge
177
Punkte für Reaktionen
2
Punkte
18
So, es geht wieder. Hab die Lösung mit Hilfe dieses Dokuments gefunden. Es klappt mit der Zeile

Code:
http://<IP-DISKSTATION:PORT>/webapi/entry.cgi?api=SYNO.API.Auth&version=3&method=login&account=<ACCOUNT>&passwd=<PASSWORT>

Hier das zugehörige Shell-Skript:

Code:
#!/bin/bash

# +++++ Pfad und Name eines zu speichernden Bildes +++++
pictPath='/tmp/Bildname.jpg'

# +++++ Zugriffsdaten der Synology DiskStation +++++
ipDiskStation='xxx.xxx.xxx.xxx:5000' # IP:PORT der DiskStation
account='admin' # Admin-Name auf der DiskStation
password='xxxxxxxxxx' # Admin-Passwort
cameraId='xx&StmKey=xxxxxxxxxxxxxxxxxxxxxxxxx'

# +++++ Snaphshot holen +++++
wget -q --keep-session-cookies --save-cookies cookies.txt -O- "http://"$ipDiskStation"/webapi/entry.cgi?api=SYNO.API.Auth&version=3&method=login&account="$account"&passwd="$password

wget -q --load-cookies cookies.txt -O $pictPath "http://"$ipDiskStation"/webapi/entry.cgi?api=SYNO.SurveillanceStation.Camera&method=GetSnapshot&version=1&cameraId="$cameraId

exit 0
 
  • Like
Reaktionen: e91


 

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