Seite 1 von 1

cgi auslesen

Verfasst: 25.05.2016 22:27
von LCD
Hallo. Ich will meine IP-Kamera auslesen, und stoße da auf ein Problem.

Code: Alles auswählen

URL$="http://xxx.xxx.xxx.xxx:port/anon/mjpg.cgi"
*memoryBuffer=AllocateMemory(10000000)

If InitNetwork()
  MessageRequester("Netwoek","Init OK")
  *Puffer=ReceiveHTTPMemory(URL$)
  MessageRequester(Str(*Puffer),Str(MemorySize(*Puffer)))
  
  FreeMemory(*Puffer)
EndIf
Im Browser sehe ich die bewachte Räumlichleit (Das Haus steht in einer anderen Ortschaft). Normalerweise müßte ich mit dem Programm den Inlalt der CGI-Datei in ein Memorybuffer hineinbekommen, aber wenn ich es starte, bleibt er bei ReceiveHTTPMemory(URL$) stecken und tut nichts weiter. Woran liegt das?
Sorry wenn es eine dumme Frage ist. Mit PureBasic kenn ich mich gut aus, aber mit CGI und Webtransfer habe ich nie etwas gemacht, bis jetzt.

Re: cgi auslesen

Verfasst: 25.05.2016 22:50
von NicTheQuick
Vermutlich ist das ein Videostream und ReceiveHTTPMemory() hört niemals auf, weil der Stream eben nicht endet. Oder bist du sicher, dass da nur ein JPG oder ähnliches übertragen wird?
Und was ist mit Login-Daten? Oder ist deine Kamera ohne Passwort im Netzwerk erreichbar? :shock:

Re: cgi auslesen

Verfasst: 25.05.2016 23:49
von LCD
NicTheQuick hat geschrieben:Vermutlich ist das ein Videostream und ReceiveHTTPMemory() hört niemals auf, weil der Stream eben nicht endet. Oder bist du sicher, dass da nur ein JPG oder ähnliches übertragen wird?
Und was ist mit Login-Daten? Oder ist deine Kamera ohne Passwort im Netzwerk erreichbar? :shock:
Ja, es ist ein Videostream, aber die Frames sollten doch einzeln übertragen werden, oder? Zumindest will Firefox manchmal eine CGI speichern, und darin finden sich die Bildinformationen nach dem Header als JPG.
Das soll für einen Freund sein. Ich habe ihm schon gesagt, dass da ein Passwort reingehört, sonst kann jeder da reinsehen (deshalb poste ich die IP nicht).

Re: cgi auslesen

Verfasst: 26.05.2016 00:23
von NicTheQuick
MJPEG ist ein Videostream, der einfach aus aneinandergereihten JPEGs besteht. Im Grunde die einfachste Weise eines Videostreams für schwache Hardware und einem Kamera-Modul, das selbst schon JPEGs ausgeben kann.
Vermutlich erkennt Firefox das manchmal nicht und hört nach dem Empfang eines einzelnen JPEGs einfach aus. Purebasic hingegen macht einfach weiter.

Versuch besser den Datenstrom direkt am Stück mit ReceiveNetworkData zu empfangen und selbst zu zerlegen. Das stelle ich mir allerdings auch nicht so einfach vor, aber wir sind hier ja auch nicht im Anfänger-Forum. :)

Re: cgi auslesen

Verfasst: 26.05.2016 18:20
von LCD
NicTheQuick hat geschrieben:MJPEG ist ein Videostream, der einfach aus aneinandergereihten JPEGs besteht. Im Grunde die einfachste Weise eines Videostreams für schwache Hardware und einem Kamera-Modul, das selbst schon JPEGs ausgeben kann.
Vermutlich erkennt Firefox das manchmal nicht und hört nach dem Empfang eines einzelnen JPEGs einfach aus. Purebasic hingegen macht einfach weiter.

Versuch besser den Datenstrom direkt am Stück mit ReceiveNetworkData zu empfangen und selbst zu zerlegen. Das stelle ich mir allerdings auch nicht so einfach vor, aber wir sind hier ja auch nicht im Anfänger-Forum. :)
Das erklärt einiges. Danke. Das werde ich versuchen.