Webiopi inkl MJPG Stream

  • Hallo Zusammen


    Ich brauche bitte eure Hilfe.....:helpnew:


    Ich bin gerade dabei einen kleinen R2D2 zu bauen.

    zur Steuerung verwende ich WebiOpi mit einer kleinen Website, dies funkt schon sehr gut.

    Nun möchte ich auch einen Livestream über die Raspicam einbinden. Dazu verwende ich MJPEG

    Da ich das ganze auch außerhalb des heimischen Netzwerks verwenden will habe ich eine Port-Weiterleitung eingerichtet.


    Nun mein Problem:

    Solange ich im eigenen WLAN bin funktioniert alles wunderbar (Webiopi & Stream -> Latenzzeit ist sehr gering)

    Sobald ich außerhalb des WLan`s bin funkt nur mehr Webiopi


    Den Stream starte ich mit:

    LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer -i "input_raspicam.so -fps 7 -q 70 -x 640 -y 480" -o "output_http.so -p 9000 -w /opt/mjpg-streamer/www"


    eingebunden habe ich das ganze in die Website über:

    <iframe src="http://192.***.*.**:9000/stream_simple.html" width="660" height="500" frameborder="0" scrolling="no" id="ImgStream"></iframe>


    es funktioniert nur ...stream_simple.html

    <img src="./action=stream" /> od

    <iframe src="http://192.***.*.**:9000/javascript_simple.html" ....

    funktionieren nicht im Webiopi HTML.

    Gebe ich "http://192.***.*.**:9000/javascript_simple.html" in den Webbrowser ein, funkts.


    bzgl Portweiterleitung habe ich folgendes eingestellt:

    öffentlicher Port: Ziel Port:

    8000 8000

    9000 9000

    8000 9000


    Ich kann direkt auf 8*.***.**.**:9000/stream_simple.html vom Handy ect zugreifen. (Ruckelt stark, und hat eine Verzögerung, aber funkt)

    wenn ich 8*.***.**.**:8000 öffne, wird mir die Webiopi-Seite angezeigt, die Buttons die ich da drauf habe funken, Stream wird mir jedoch keiner angezeigt

    und die Seite ladet ewig.


    Ich bin hier langsam echt schon am verzweifeln. :wallbash:

    Wie kann ich einen Livestream in meine Webiopi Seite einbinden, soll im und außerhalb des heimischen WLAN´s funken und ohne lange Latenzen sein.

    Ich bin euch für jede Hilfe, Tutorial ect Dankbar


    Cool wäre auch wenn ich über einen Button ein 5min langes Video des Streams aufzeichnen könnte, aber das wäre Step 2, jz sollte mal der Livestream funken


    Vielen Dank

    VG

  • Schön dass die Bilder bei dir funktionieren. Mit denen hatte ich so meine Probleme:

    Bilder werden in Webseite von Webiopi nicht angezeigt


    Was mir überhaupt bei deinen Post nicht klar ist. Wenn du außerhalb deines lokalen Netzwerkes bist. Wie hast du dann eine Verbindung zu deinem Pi? Wo hast du welche Portweiterleitung eingrichtet?

  • Hallo,


    ersteinmal: Es wäre gut, wenn du für diverse HTML-Schnipsel inline code verwenden würdest. Desweiteren musst du keine IP-Adressen aus deinem Heimnetz (192.168...) maskieren und anstatt deine öffentliche IP dauernd zu maskieren wäre etwas wie <IP>:8000/bla.html meiner Meinung nach leichter zu lesen, verstehen tun das alle an einer Beteiligung Interresierten.


    Zu deinem Problem: das ganze über iframes zu lösen halte ich für etwas unelegant, wenn du doch eh einen MJPG-Stream in einem img Tag wahrscheinlich hast. Da brauchst du keinen extra Rahmen drumherum. Das nur nebenbei.


    eingebunden habe ich das ganze in die Website über:

    <iframe src="http://192.***.*.**:9000/stream_simple.html" width="660" height="500" frameborder="0" scrolling="no" id="ImgStream"></iframe>

    Denkanstoß: außerhalb deines Heimnetzes kannst du nicht mit deiner lokalen IP auf den Stream zugreifen, sondern du brauchst die öffentliche IP. Mit einem reverse-Proxy wäre das Ganze IMHO um Längen eleganter, neben der Vermeidung von Iframes.


    Als letzter Tipp: in den meisten Browsern gibt es Entwickler-Tools, die Fehler in die Konsole loggen und der Netzwerk-Tab ist ebenfalls extrem hilfreich. Für die Zukunft.

  • ich hab bei meinem Routereinstellungen eine Portweiterleitung eingerichtet.

    Daher greife ich doch dann mit meiner öffentlichen IP (84.***:8000) zu.


    Ich habe doch versucht, das ganze über <img src="./action=stream" /> einzubinden, dann wird mir nur leider weder im Heimnetz noch außerhalb etwas angezeigt.

    Bin was HTML und co angeht leider ein noob.

  • <iframe src="http://192.***.*.**:9000/stream_simple.html" width="660" height="500" frameborder="0" scrolling="no" id="ImgStream"></iframe>

    Ersetze erst einmal die Adresse 192.****************** mit 8.*********************, dann neu testen. Wenn's nicht geht, in der Browser-Konsole schauen, dann im Netzwerktab was da so steht.


    Ich habe doch versucht, das ganze über <img src="./action=stream" /> einzubinden

    Und wie soll das gehen, wenn der Webserver auf Port 8000 lauscht und dein Stream auf 9000 läuft? ./action=stream ist relativ zur URL deiner Seite, also schon mal Port 8000. Nimm besser überall absolute URLs.


    Bin was HTML und co angeht leider ein noob.

    Das bringt uns nicht weiter, schaue dir bitte mal parallel hierzu die Basics an. Es wird dir niemand alles vorkauen, ein gewisses Verständnis muss schon da sein. Siehe die Sache mit den Iframes...

  • Hallo,


    bin an einem ähnlichen Projekt und hatte dasselbe Problem.


    Versuch mal in der Webseite die IP-Adresse auf den (logischen?) Namen "raspberrypi" zu ändern.


    Viele Grüße

    Olli