Stream von Kamera speichern

Schau dir das Script mal genau an der Befehl steht schon im Script :slight_smile:

Du musst es nur anpassen :slight_smile:

ahhhhhhhhhhh

ich habs danke :wink:

Hallo,
habe mit viel Interesse eure Beiträge gelesen und hab mal ne Frage.
http://drapple.dyndns.org:901/videostream.cgi?user=username&pwd=password
Kann mir vielleicht einer von euch den richtigen Syntax für den Username und Pwd geben?
Habe gestern alles mögliche probiert und es nicht geschafft. Aus der Kommandozeile fordert der VLC immer wieder mit einem gesonderten Fenster zur Eingabe von user und pwd auf.
Also folgende Kommandozeile vlc.exe http://192.168.0.190:81/videostream.cgi???
Danke Michael:loveips:

Üblicherweise

http://user:passwort@192.168.0.190:81/videostream.cgi

geht leider nicht
:confused:

Hallo wbo,

ich habe Deine geniale Idee mit dem VLC-Mediaplayer zur Streamaufzeichnung aufgegriffen. Leider funktionieren die Funktionen IPS_Execute und IPS_ExecuteEx bei mir überhaupt nicht. Ich habe alle Varianten durchprobiert, alle Rechte-Möglichkeiten durchgespielt, alles negativ. So habe ich mir folgenden Ausweg überlegt, nicht übertrieben elegant, aber es funktioniert:
Ich habe mir ein kleines Delphi-Programm – vlcstarter.exe - geschrieben, das in Aktion tritt, wenn eine bestimmte Datei in ein bestimmtes Verzeichnis geschrieben wird. Das Schreiben einer Datei gelingt ja problemlos aus IPS heraus.
Um konkret zu werden: Ich habe eine Kamera an der Haustüre und einen IR-Melder. Sobald der IR-Melder anspricht, wird über ein Skript die Datei Front.cin in das Verzeichnis c://cin geschrieben. Die Datei Front.cin enthält nur zwei Integers: eine fortlaufende Videonummer nnn und die gewünschte Länge der Aufzeichnung in s. Mein Programm startet darauf den VLC-Player zur Streamaufzeichnung, löscht die Datei Front.cin und schreibt in das gleiche Verzeichnis eine Datei Front_nnn.cin, die nur den aktuellen Zeitstempel enthält. Spricht während der Aufzeichnung der IR-Melder erneut an, wird die Aufzeichnung um die festgelegte Aufzeichnungszeit verlängert. VLC-Starter schreibt dann eine Datei Front_nnn.— in das Verzeichnis c://cin. Die gespeicherte Videodatei erhält den Namen Front_nnn.mp4. Über die Dateien im Verzeichnis c://cin kann ich nachverfolgen, welche Ereignisse eine Videoaufzeichnung ausgelöst haben.
Das Programm kann auch für mehrere Kameras eingesetzt werden, es läuft nun seit Anfang August mit drei Kameras ohne Probleme.

Hallo drapple,

mein Skript hängt in der Zeile

IPS_ExecuteEx("C:/Program Files (x86)/VideoLAN/VLC/vlc.exe", $params, false, false, 1);

mit der Fehlermeldung

Warning:  There were no token found for specified session: 1 in F:\IP-Symcon\scripts\57727.ips.php on line 12

Irgendeine Idee? (VLC in der Version 2.08/WHS 2011)
Möglicherweise ein Rechteproblem?

Joachim

Nachtrag:
Wenn ich den Parameter „1“ in eine „0“ ändere kommt folgende Fehlermeldung:

Warning:  A call to an OS function failed in F:\IP-Symcon\scripts\57727.ips.php on line 12

Irgendeine Idee?

Nachtrag 2: So sieht meine Parameterzeile aus:

$params = "http://192.168.178.11/videostream.cgi?user=user&pwd=password --sout=#duplicate{dst=std{access=file,mux=mp4,vcodec =mp4v,vb=768,acodec=mp4a,ab=128,dst=F:\\IP-Symcon\\camsvideo\\Test.mp4}} --run-time 30 vlc://quit";

Gebe ich im VLC den ersten Teil (bis zum Passwort) als Quelle an, bekomme ich einen Video-Stream…

…kann mir jemand mal einen Tipp geben wie ich verifizieren kann, ob es sich um einen Fehler in den übergebenen Parameter handelt oder eine WHS 2011 Rechte-Problem?

Joachim

Das ist ne super Idee mit der Stream-Aufzeichnung über den VLC. Ich möchte nun auch von Einzelbildern auf Video wechseln.:slight_smile:
Nur habe ich Probleme mich in der schier unendlichen Vielfalt der VLC Kommandozeilen-Parametern zurecht zu finden.
Prinzipiell funktioniert das Speichern des Streams über folgenden Befehl

vlc.exe http://<user>:<pw>@192.168.1.136/videostream.cgi?rate=0  --sout #duplicate{dst=std{access=file,mux=mp4,dst=C:\Tools
\mencode\vlc_einfahrt.mpg} --run-time 20 vlc://quit

Nun möchte ich aber das Datum und die Uhrzeit der Aufnahme als Overlay mit speichern. Ich habe alle möglichen Varianten versucht. Angezeigt bekomme ich das Overlay im direkten Stream, aber es wird nicht gespeichert

vlc.exe" --sub-source="marq{marquee=%%d.%%m.%%Y %%H:%%M:%%S,color=16776960}" http://<user>:<pw>@192.168.1.136/videostream.cgi?rate=0 

Hat jemand ne Idee, wie ich das Overlay in den ersten Befehl zum Speichern einbauen muss?

Warum baust Du nicht den Zeitstempel in den Dateinamen ein, unter dem das Video abgespeichert wird? So siehst Du bei der Wiedergabe im Fenstertitel den Zeitpunkt und Du überschreibst Dir nicht die alten Aufnahmen…

Hallo,

den Stream speichern ist eine Sache die sehr gut funktioniert.

Aber wie kann ich im WF die gespeicherten Aufnahmen anzeigen?

Wie habt ihr das gelöst?

Hallo Bussard013, hallo Martinwk,

was ich speichere sind ja immer kurze Videosequenzen. Diese füge ich ständig mit mencoder zu einer Datei zusammen, welche ich im Frontend anzeigen lasse. Wöchentlich wird dann eine Datei mit allen Sequenzen erstellt und gespeichert, als eine Art Archiv. Ich kann mir denn immer ein Video vom aktuellen Tag und eines pro Woche ansehen. Hier hätte ich natürlich gern den Timecode direkt im Video. Ich wüsste nicht, wie ich den aus dem Dateinamen extrahieren sollte.
Für die Anzeige benutze ich Flexplayer www.video-flash.de » FlexVideoPlayer Dazu müssen die Videos natürlich in flv umgewandelt werden. Auch dazu benutze ich mencoder. Ist natürlich alles noch nicht fertig. :smiley:

Hallo Leute,

ich möchte noch mal auf meine Postings in diesem Thread zurückkommen:
Kann mir jemand einen vlc-Aufruf posten, der auf jeden Fall eine „sichtbare“ Reaktion des VLC-Players generieren sollte? (Damit ich eine WHS2011-Rechte-Probleme ausschließen kann)

Joachim

Hallo,

@JPaeper
Ich habe es mit „Fenster zeigen“ getestet:
IPS_ExecuteEx(„C:/Program Files/VideoLAN/VLC/vlc.exe“, $params, true, false, 1);

@normi
Dein Vorschlag hört sich nicht schlecht an.
Kannst Du mir ein paar ansetze posten?
Vermutlich machst Du das von IPS heraus.

Hallo Christian,

vielen Dank für Deine Antwort!
Leider führt

IPS_ExecuteEx("C:/Program Files (x86)/VideoLAN/VLC/vlc.exe", $params, true, false, 0);

auch zu der Fehlermeldung

Warning:  A call to an OS function failed in [IP-Cam Hausfront\IP-Cam Steuerung\IP-Cam Steuerung\Laufende Aufnahme\Aufnahme] on line 12

Möglicherweise liegt es ja an meinen Parametern?

$params = "http://192.168.178.11/videostream.cgi?user=user&pwd=passwort --sout=#duplicate{dst=std{access=file,mux=mp4,vcodec =mp4v,vb=768,acodec=mp4a,ab=128,dst=F:\\IP-Symcon\\camsvideo\\Test.mp4}} --run-time 30 vlc://quit";

Ist irgendein grundlegender Fehler sichtbar?

Wenn ich im VLC diesen Teil direkt eingebe, dann bekomme ich im VLC den korrekten Stream angezeigt:

http://192.168.178.11/videostream.cgi?user=user&pwd=passwort 

Joachim

Beim mir funktioniert ExecuteEx auch nicht mehr.
Probiert´s mal mit:

IPS_Execute('C:\Program Files (x86)\VideoLAN\VLC\vlc.exe', $params, false, false);

Hallo zusammen,

ich teste es zunächst immer erst ohne IPS, einfach von einer Batch-Datei, also z.B. so:
„C:\Program Files\VideoLAN\VLC\vlc.exe“ -vvv rtsp://192.168.2.xxx:xxx/video.mp4 --sout=#duplicate{dst=std{access=file,vcodec=h264,acodec=mp4a,dst=c: emp\xxx.mp4}} --run-time 10 vlc://quit

Wenn dies dann funktioniert, ziehe ich es in IPS nach.
Bei „IPS_Execute“ ist immer ein wenig problematisch die SessionID, hierzu gibt es auch diverse Threads bei anderern Szenarien, bei mir funktioniert es zuverlässig seit Monaten mit der „2“.

Edit: Meine natürlich „IPS_ExecuteEx“, das nutze ich in meinen Skripts.

Wolfgang

…mit dem Änderungsvorschlag von Christian ist zumindest die Fehlermeldung weg, es wird aber keine Datei erzeugt.

Bei Euch ist teilweise ein „-vvv“ im Parameterstring, und ein „rstp“ statt „http“…

Könnt Ihr noch mal bitte auf meinen Parameterstring schauen?

Joachim

VLC speichert mit diesen Anweisungen Streams, sinnvollerweise also „rtsp“. Versuche es doch erst mal mit dem Batch-File.

Wolfgang

Meine Parameter:

$params = "http://192.168.2.15/videostream.cgi?user=***&pwd=***  --sout=#duplicate{dst=std{access=file,mux=asf,dst=c:\\cam\\haustuer_" . date("Ymd-Hi") . ".mp4}} --run-time " . $duration . " vlc://quit";