Stream von Kamera speichern

Hallo,

ich bräuchte dringend eure Hilfe da die Sufu nichts ausspuckt.

Ich habe mir eine Elro C903IP zugelegt und an meiner Haustür montiert. Jetzt hätte ich gerne dass bei Trigger am Bewegungsmelder oder der Klingel ein Video mit 2 Minuten aufgenommen wird und bei Bedarf im WF abgespielt werden kann.
Eine alternative wäre wenn man mit den ImageGrabber mehrere Bilder speichern könnte.
Den Kamerastream kann ich mit http://192.168.2.114/videostream.cgi?user=&pwd= abfragen.

Wie habt Ihr das gelöst?

Ich habe bis anhin nur eine Lösung mit Einzelbilder. Einen Stream zbsp mjpeg der sich auch wiedergeben lies könnte ich auch bis jetzt noch nicht über IPS von einer URL lokal abspeichern/senden.

Wie kann ich meine Bilder von einen ftp-Server in IPS speichern?
Hat jemand einen Code-Schnipsel für mich?

ich habe es leider auch nur in Einzelbilder hin bekommen.

Ich habe so etwas ähnliches gemacht für meine nächtliche Katzenjagd mit der Gartenbewässerung.
Ich starte einfach ein Script, was jede Sekunde ein Kamerabild abfragt und dann die Datei umbennt und woanders speichert, da ich die Bilder behalten möchte.

Mit dem Befehl frage ich die Kamera jedes Mal ab, wenn das Skript gestartet wird
IG_UpdateImage(45233 /[Kameras\INSTAR\Image Grabber Webcam INSTAR]/);

Cool daumenkino:-)

Hi!

Vielleicht hilft Dir das weiter: SupervisionCam
Ich hab das neben IPS auch noch am Laufen und es kann mir sowohl Einzelbilder bei Bewegung als auch AVIs aufzeichnen. Ebenso kann in regelmäßigen Abständen oder per Triggerkontakt ein Bild aufgezeichnet werden.
Ich nutze nur einen Bruchteil der Funktionen und habe es auch nicht in IPS integriert. Aber das Potential dafür ist sicher da, vor allem für jemand, der sich programmiertechnisch auskennt.

Grüße
Jörg

ja…genau :Dwie früher…als die Bilder laufen lernten :slight_smile:

Hallo zusammen,

für diejenigen, die noch auf der Suche nach einer entsprechenden Möglichkeit sind. Ich habe es mit dem guten alten VLC gelöst:

Trigger ist bei mir eine HTTP-Meldung der Kamera (Bewegungserkennung), kann natürlich alles mögliche wie z.B. ein Schaltvorgang sein. Ich starte dann per IPS_ExecuteEx den VLC mit den entsprechenden Kommandozeilen-Parametern (sieht ein wenig wüst aus, funktioniert aber einwandfrei). In den Parametern wird auch die Länge der Aufnahme (in Sekunden) übergeben. Vor dem Start prüfe ich zunächst, ob bereits eine Aufnahme läuft (hier Variable 49790).

Hier das Snippet:
$duration = 60;
$params = „-vvv rtsp://192.168.2.199/video.mp4 --sout=#duplicate{dst=std{access=file,mux=asf,dst=Z:\cams\199_“ . date(„YmdHis“) . „.mp4} --run-time " . $duration . " vlc://quit“;
if (GetValueBoolean(49790) == false) {
SetValueBoolean(49790, true);
IPS_ExecuteEx(„C:/Program Files/VideoLAN/VLC/vlc.exe“, $params, false, false, 1);
IPS_SetScriptTimer(12792, $duration + 3);
}

Viele Grüße
Wolfgang

Diese Lösung ist nicht von schlechten Eltern…
…aber wie kommst du zu dem Trigger?
Wenn ich ein Script habe das ich triggern will (ein auslösendes Ereignis hinzufügen), dann kann ich ja nur eine Variable auswählen. Wie verändert eine Http Meldung der Kamera eine Variable, ohne nicht periodisch abgerufen zu werden?

Gruß und danke,
Werner

Hallo Werner,

Du musst dafür einen Server Socket einrichten, der auf die Messages der Kamera lauscht. Dann zu dem Socket eine Register-Variable mit einem entsprechenden Skript definieren. So hast Du einen Trigger, der in diesem Fall mit der Bewegungserkennung der Kamera gekoppelt ist.

Wolfgang

Hallo Wolfgang,
danke für deine Antwort - du hast mir damit so richtig auf die „Sprünge geholfen“.
Ich habe mich schon öfters gefragt, was bei meiner IP-Cam der Punkt: Alamierung per HTTP soll, man findet nämlich in keiner Beschreibung einen Hinweis darauf.
Dank deiner Antwort und dem Thread: http://www.ip-symcon.de/forum/threads/20761-Tonis-Bastelkeller-Bewegungsmelder-mit-Bild-im-Netzwerk, habe ich es geschaft, dass ich mittels IPS auf Alarmmeldungen meiner Kamera reagieren kann und nicht aktiv danach „fragen“ muss.

Gruß Werner
PS.: Besonderen Dank auch an Toni für das ausführliche Tutorial - super!

Hallo Werner,

da hast Du Recht. Die Anleitung von Toni ist echt gut und passt wunderbar zu diesem Thema.
Viel Spaß damit

Wolfgang

Hi super deine Idee mit VLC Player, aber wie bekomme ich es hin das ich die Datei auf dem iPhone abspielen kann ?

Ich schätze mal, das dass Zielformat falsch ist :frowning:

Wie kann ich das ändern :frowning:

Hallo,

jupp, so wie sie im Script gespeichert werden, können diese nicht nativ mit iPhone angezeigt werden (es sei denn, man hat noch das iOS-VLC-Safari-Plugin - so wie ich, gibt’s das eigentlich wieder? kA).
Hier mal der Link zu den Infos der div. Einstellmöglichkeiten für VLC:
http://www.videolan.org/doc/streaming-howto/en/ch03.html

Ich schaue es mir gerne auch nochmals an.
Man kann es natürlich auch mit Tools wie z.B. Handbrake on the fly konvertieren.

Gruß
Wolfgang

HI habe mich schon daran versucht, bekomme es aber nicht hin es in x264 umzuwandeln…

Wäre nett wenn du mal schauen kannst, ich verstehe die Syntax überhaupt nicht von VLC…

Hi,

schau mal - so geht’s prinzipiell:

$params = „-vvv rtsp://192.168.2.199/video.mp4 --sout=#duplicate{dst=std{access=file,mux=mp4,vcodec=mp4v,vb=768,acodec=mp4a,ab=128,dst=Z: \cams\199_“ . date(„YmdHis“) . „.mp4} --run-time " . $duration . " vlc://quit“;

bei „vb=xxx“ stellst Du die Video-Bitrate ein, hier also 768 - kann auch z.B. 1024 oder höher sein
bei „ab=yyy“ stellst Du analog die Audio-Bitrate ein, hier 128 Bit.

Da kannst Du ein bisschen rumprobieren, ist ja eine Frage der Qualität <-> Filegröße.

Aufpassen musst Du ggf. noch mit der Bildgröße. Ich selbst verwende eine Reihe HD-Cams, die können natürlich 1280x1024 streamen - geht aber nicht auf dem iPhone.
Normale Auflösung z.B. 640 x 480 ist aber überhaupt kein Problem, habe es gerade mal getestet - geht einwandfrei.

Gruß
Wolfgang

Vielen Dank :slight_smile:

Habe es endlich hinbekommen mit Emailversand :slight_smile:

Ich habe eine Instar Kamera !

Hier mein Script:

<?
$duration = 30;

$params = "http:/url/videostream.cgi?user=*username*&pwd=*password*  --sout #transcode{vcodec=mp4v,vb=50}:duplicate{dst=std{access=file,mux=mp4,dst=c:\\cams\\Tor.mp4}} --run-time " . $duration . " vlc://quit";
$aufnahme=GetValue(38164 /*[Klingel und Türöffner\Tor-Video-Aufnahme]*/ );

if ($aufnahme == false)
{
SetValue(38164 /*[Klingel und Türöffner\Tor-Video-Aufnahme]*/ , true);
IPS_ExecuteEx("C:/Program Files/VideoLAN/VLC/vlc.exe", $params, false, false, 1);
IPS_SetScriptTimer(23560 /*[Klingel und Türöffner\Tor-Video-Aufnahme\kamera aufnahme]*/ , $duration + 3);
}
else
{
IPS_SetScriptTimer(23560 /*[Klingel und Türöffner\Tor-Video-Aufnahme\kamera aufnahme]*/ , 0);
SetValue(38164 /*[Klingel und Türöffner\Tor-Video-Aufnahme]*/ , false);

//*************************Emailversand*************************
$zeit1 = date("H.i");
$zeit2= date("d.m.Y");

  $zeit = date("Y.m.d-H.i.s");
  copy("c:/cams/tor.mp4","c:/cams/".$zeit.".mp4");
$instanzid=44959 /*[Klingel und Türöffner\Aktoren die man nicht sehen soll\E-Mail senden (SMTP)]*/ ;
$betreff= "Es hat geklingelt um $zeit1 Uhr am $zeit2 ....";
$message="Diese Person hat geklingelt: " ;
$file="c:/cams/".$zeit.".mp4";

SMTP_SendMailAttachment($instanzid, $betreff, $message, $file);
}


?>

brauche hilfe !!!

wie kann ich folgenden befehl umbasteln ?

$params = „http://drapple.dyndns.org:901/videostream.cgi?user=username&pwd=password --sout #transcode{vcodec=mp4v,vb=50}:duplicate{dst=std{access=file,mux=mp4,dst=c:\cams\Tor.mp4}} --run-time " . $duration . " vlc://quit“;

ich benötige bei jedem start eine neue aufnahme

zb. tor1.mp4

beim nächsten start soll er mir

zb. tor2.mp4

abspeichern

kann mir jemand einen tip geben `?

Danke Tim

Hi z.B. copy(„c:/cams/tor.mp4“,„c:/cams/“.$neuerename.".mp4");

kann ich den copy befehl einfach ins script schreiben ???