Kamera-Stream aus "Synology Surveillance Station" in WebFront einbinden

hi 1007,

ich habe es gestern abend noch hinbekommen, dass ich den snapshot zunächst lokal speichere, dann auf den ftp kopiere und lokal wieder lösche!

ich habe mal probiert, ob es nicht möglich ist ein php script zu erstellen mit einer function für den ftp upload, mit argument „dateiname“. aber irgendwie habe ich nicht verstanden, warum in IPS die übergabe nur mit array funktioniert.

eine andere frage:
in der surveillance station kann man ja videoclips erzeugen, sobald z.b. jemand in einem feld erkannt wird. quasi überwachung/bewegungsmelder. und dort kann man auch einstellen, dass z.b. 10s vorher die aufzeichnung bereits beginnt.
ist sowas auch als funktion „auslagerbar“? ich denke da an den klingelimpuls, dass a) der aktuelle klingelruf mit aufgezeichnet wird und b) „verpasste“ klingelrufe aufgezeichnet werden.

mfg sven

Hab mich damit noch nie beschaefigt.

Hab nochmal ueber die Frage nachgedacht und versteh sie nicht ganz.
Du hast eine Kamera an der Tuer und wenn es klingelt willst du das
Video irgendwohin speichern/senden ?

Hallo zusammen,

ich habe gestern auf die aktuelle Surveillance Station Version upgedatet. Seitdem bekomme ich kein Bild mehr. Er läd bis zum Timeout.

Hat jemand eine Idee, was geändert wurde?


<?
// Konfiguration
$user = "xxx";  // Synology Benutzer mit Berechtigung die Kamera anzuzeigen
$pass = "xxx";  // Passwort zu eben eingegebenem Benutzer
$ip = "192.168.178.xxx";  // IP-Adresse eures Synology-NAS
$port = "xxx";  // default Port der Surveillance Station
$cameraID = "2";  // ID der Kamera, welche angezeigt werden soll

// Authentifizierung an Synology Surveillance Station WebAPI und auslesen der SID
$json = file_get_contents('http://'.$ip.':'.$port.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account='.$user.'&passwd='.$pass.'&session=SurveillanceStation&format=sid');
$obj = json_decode($json, true);
@$sid = $obj["data"]["sid"];

$Cam_Stream_URL = 'http://'.$ip.':'.$port.'/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId='.$cameraID.'&format=mjpeg&_sid='.$sid;

echo "<div class=\"centered\"><img src=$Cam_Stream_URL style=\"width:auto;height:auto;\" /></div>";
?>

Hallo
Hab da gestern etwas im Synology Forum gelesen.

Stream-Pfad geht seit Surveillance 1.2.3-0641 nicht mehr

Gesendet von iPad mit Tapatalk

Bei mir selbiges.

Skurril nur das ich 2 Kameras habe und eine angezeigt wurde. In der synology liefen beide normal.

Unterschied. Eine würde als H264 gestreamt. Nach dem ich die nun auch auf mjpeg umgestellt habe läuft es, leider in einer niedrigeren Auflösung.

Ich vermute hier einen Bug in der Surveillance-Station.

Gesendet von iPhone mit Tapatalk

Na super. Ich habe das Update ungefähr 5 Minuten bevor ich diesen Beitrag gelesen habe eingespielt und nun auch diesen Fehler :rolleyes:. Merke: Zuerst ins IPS-Forum gehen…

@wgreipl: Danke für den Hinweis auf mjpeg.

Desaster…

Changelog der aktuellen Version:
Remove following methods
SYNO.SurveillanceStation.AudioStream
SYNO.SurveillanceStation.VideoStream
SYNO.SurveillanceStation.Device
SYNO.SurveillanceStation.Streaming

Man(n) müsste mal die API studieren.

Ich könnte mir gut vorstellen das es Funktionen gibt die weggefallenen Teile abfangen.

Gerne

Ich hab gefühlt 2 Tage nach dem Problem gesucht. Hätte ich nur eine H264-Kamera am Laufen wäre das nie etwas geworden. So hatte ich eine Referenz die funktionierte.

Danke für den Hinweis mit der Umstellung auf mjpeg. Habe heute auch schon einen dreiviertel Tag herumgesucht und geflucht.

Hallo zusammen,

ich habe mal eine E-Mail an Synology geschrieben und dabei auf ‚böse‘ gemacht. Ich muss sagen, der Kontakt war zumindest feundlich und keineswegs stereotyp. Die Entwicklung hält das Thema für gefixt und hat in folgendem Link eine Lösung im eigenen Forum gepostet.

https://community.synology.com/forum/3/post/123094?page=1

Es wäre schön wenn das Thema dadurch erledigt wäre, da ich mir auch gerne eine Synology zulegen würde. Aber ohne eine entsprechende Funktionalität davon absehen würde.

Grüße
Ralf

1 „Gefällt mir“

Der Aufruf lautet angepasst für unser Script:

$Cam_Stream_URL = 'http://'.$ip.':'.$port.'/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&method=Stream&version=1&cameraId='.$cameraID.'&format=mjpeg&_sid='.$sid;

Allerdings gibt es weiterhin einen Bug im mjpeg Transport, daher geht es noch nicht wieder. Soll mit der kommenden Version (wann auch immer) behoben werden.

Puh,

ich knabber da auch schon seit 2 Tagen rum.
Aber leider bekomme ich kein Bild.

Script (in user/webfront/name wie anleitung) sieht folgendermaßen aus:

<?
// Konfiguration
$user = "XXXX";  // Synology Benutzer mit Berechtigung die Kamera anzuzeigen
$pass = "keineSonderzeichen";  // Passwort zu eben eingegebenem Benutzer
$ip = "192.168.178.121";  // IP-Adresse eures Synology-NAS
$port = "5000";  // default Port der Surveillance Station
$cameraID = "1";  // ID der Kamera, welche angezeigt werden soll

// *** Eventuell müsst ihr die URLs von HTTP auf HTTPS anpassen, sofern ihr HTTPS aktiviert habt!

// Authentifizierung an Synology Surveillance Station WebAPI und auslesen der SID
$json = Sys_GetURLContent('http://'.$ip.':'.$port.'/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account='.$user.'&passwd='.$pass.'&session=SurveillanceStation&format=sid');
$obj = json_decode($json, true);
@$sid = $obj["data"]["sid"];

//$Cam_Stream_URL = 'http://'.$ip.':'.$port.'/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId='.$cameraID.'&format=mjpeg&_sid='.$sid;
$Cam_Stream_URL = 'http://'.$ip.':'.$port.'/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&method=Stream&version=1&cameraId='.$cameraID.'&format=mjpeg&_sid='.$sid;

echo '<div class=\"centered\"><img src=$Cam_Stream_URL style=\"width:auto;height:auto;\" /></div>';
?>

Die Kamera ID habe ich herausgefunden, es ist die 1.

Der Inhalt meiner String Variablen mit HTML Profil:

<iframe width="400pixel" height="300pixel" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://192.168.178.102:3777/user/synology_cam1.php"></iframe>

Die Kamera kann kein MJPEG, sondern nur H.264.

Ich wollte nicht gleich am ersten Tag schreiben, aber jetzt gehen mir langsam die Ideen aus.

Eventuell habt ihr ja noch eine Idee ?

Ganz liebe Grüße
Sascha

Hallo Zusammen!

Hab nun ne weile gelesen, komme aber nicht zum Erfolg.
Mein Ziel ist das Bild meiner IPcam (FOSCAM FI9901EP - H.264) auf meinem iPhone im IPS App zu sehen.
Ich habe ein Qnap TVS-882 mit Surveillance Station 5.1.3.4.1.
Besteht die Möglichkeit des Erfolges, oder ist meine Hardware dafür nicht geeignet?

Bis jetzt bekomme ich jedenfalls kein Bild in das Webfront.
(Per RTSP-Stream hab ich es geschafft direkt von der Cam das Bild in Chrome im Webfront darzustellen - ich hatte es aber gerne auf meinem iPhone :rolleyes:)

Freue mich auf eure Rückmeldung.

Dieses Skript ist für NAS von Synology, mit QNAP wird es nicht funktionieren.

Ok. Schade. Da hab was wesentliches nicht bemerkt.
Danke für die Info.

Hast du oder jemand anderes eine Idee wie ich das Bild auf die App im IPhone bringen kann?

Gesendet von iPhone mit Tapatalk

Hi,
ein Bild bekomme ich. Ich versuche jetzt entweder meine 4 Cams oder die gesamte Überwachung aus- bzw. einzuschalten. Folgendes habe ich versucht:

//$json = Sys_GetURLContent('http://'.$ip.':'.$port.'/webapi/entry.cgi?api="SYNO.SurveillanceStation.ActionRule"&idList="1,2"&version="1"&method="Disable"&_sid='.$sid);
$json = Sys_GetURLContent('http://'.$ip.':'.$port.'/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&method=Disable&version=3&cameraIds=1,2,3,4&_sid='.$sid);

bei mir tut sich dann aber in der Surveilance-Station nichts. Wo ist der Fehler?

Ralf

Hi,
ich antworte mir mal selbst. Ich habe es geschafft den HomeMode ein- und auszuschalten. Folgendes Script macht es bei mir:

<?php
// Konfiguration
$user = "Benutzer";  // Synology Benutzer mit Berechtigung die Kamera anzuzeigen
$pass = "Passwort";  // Passwort zu eben eingegebenem Benutzer
$ip = "192.168.178.2";  // IP-Adresse eures Synology-NAS
$port = "5000";  // default Port der Surveillance Station

//authentification
 $response = get_web_page("http://".$ip.":".$port."/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=".$user."&passwd=".$pass."&session=SurveillanceStation&format=sid");
//echo $response; 
  $resArr = array();
   $resArr = ($response);

   $resArr = json_decode($response,true);

//sid in the array

$sid=array();
$sid=$resArr["data"]["sid"];
echo $sid."
";

//send Start record
$response = get_web_page("http://".$ip.":".$port."/webapi/entry.cgi?api=SYNO.SurveillanceStation.HomeMode&version=1&method=Switch&on=false&_sid=".$sid);
echo $response."
"; 

function get_web_page($url) {
      $options = array (CURLOPT_RETURNTRANSFER => true, // return web page
    CURLOPT_HEADER => false, // don't return headers
    CURLOPT_FOLLOWLOCATION => true, // follow redirects
    CURLOPT_ENCODING => "", // handle compressed
    CURLOPT_USERAGENT => "test", // who am i
    CURLOPT_AUTOREFERER => true, // set referer on redirect
    CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
    CURLOPT_TIMEOUT => 120, // timeout on response
    CURLOPT_MAXREDIRS => 10 ); // stop after 10 redirects


      $ch = curl_init ( $url );
      curl_setopt_array ( $ch, $options );
      $content = curl_exec ( $ch );
      $err = curl_errno ( $ch );
      $errmsg = curl_error ( $ch );
      $header = curl_getinfo ( $ch );
      $httpCode = curl_getinfo ( $ch, CURLINFO_HTTP_CODE );

      curl_close ( $ch );

      $header ['errno'] = $err;
      $header ['errmsg'] = $errmsg;
      $header ['content'] = $content;
      return $header ['content'];
     }
?>

So wird HomeMode ausgeschaltet. Mit Switch&on=true wird es eingeschaltet. Getestet mit 8.2.3-5828.

Vielleicht nützt es ja außer mir noch jemanden.

Ralf

So wird HomeMode ausgeschaltet. Mit Switch&on=true wird es eingeschaltet. Getestet mit 8.2.3-5828.

Vielleicht nützt es ja außer mir noch jemanden.

Ralf

Genau das habe ich gerade gesucht.

Vielen Dank für Deine Arbeit!

Nico