Überwachungskamera (RTSP-Stream) in FTUI anzeigen

Begonnen von aloz77, 04 Februar 2016, 17:10:44

Vorheriges Thema - Nächstes Thema

jbraeu

Vorweg mein CAM ist total sch... aber funzt einwandfrei mit folgender FTUI config:
<div style="position:absolute; left:00px; top:750px">
<iframe width="358" height="245" src="http://192.168.178.2/goform/stream?cmd=get&channel=0"></iframe>
</div>


Der Spaß dabei ist die richtige URL zu finden..


juemuc

Hallo,

ich habe eine Reolink C1 pro. Funktioniert bestens. Allerdings nutze ich diese im Zusammenspiel mit einer Synology Diskstation mit "DS CAM".

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

neyzen

Hmm, ja ich hab kein Synology. Aber auf der Seite von Reolink sind die Zieladressen der Streams aufgelistet und auch erklärt wie man den in den VLC Player anzeigen lassen kann. Für FHEM gibt es ja auch den VLC als server. Da mach ich mir Hoffnung.

StephanFHEM

nur zur Info und vielleicht alternativen Lösungsansatz: nachdem ich viel rumgebastelt habe um RTSP zum Laufen zu bringen hab ich es aufgegeben und nutze jetzt wieder MotionEye. Läuft auf dem selben RPI und wandelt das RTSP in einen normalen MPEG-Stream um der dann überall angezeigt werden kann

neyzen

Zitat von: StephanFHEM am 01 Juni 2020, 21:54:54
nur zur Info und vielleicht alternativen Lösungsansatz: nachdem ich viel rumgebastelt habe um RTSP zum Laufen zu bringen hab ich es aufgegeben und nutze jetzt wieder MotionEye. Läuft auf dem selben RPI und wandelt das RTSP in einen normalen MPEG-Stream um der dann überall angezeigt werden kann

auch auf FTUI fully?

StephanFHEM

jap klar. Das nutze ich auch damit

Hier meine Darstellung einer Cam mit kleinem Live-Bild und PopUp zur großen Ansicht (ich habe hier imagecover und etwas komische Einstellungen gewählt damit ich nur einen für mich interessanten Bildbereich davon in größer Darstellung sehen kann und der Rest abgeschnitten wird. Normal data-height auf 100 und data-width auf auto stellen und anstatt imagecover einfach image verwenden):


<header class="bg-darkblue">Kamera</header>
<div data-type="popup" data-height="95%" data-width="90%" data-draggable="false" style="overflow:hidden" class="centered">
<div data-type="imagecover" data-url="http://IP:PORT" data-height="calc(90vh)" data-width="100%" data-opacity="1" style="margin-top:-200px" class="nocache"></div>
<div class="dialog">
                <header class="bg-darkblue">Kamera</header>
<div class="card items-center centered">
<div data-type="image"
data-url="http://IP:PORT/"
data-size="100%" data-opacity="1" class="nocache">
</div>
</div>
            </div>
</div>

neyzen

Ich interesiere mich für die Reolink lumus. Die kann anscheinend rtsp. Aber auf deren Seite kann die Kamera nicht z. B. Mit dem vlc player angezeigt werden. Deine Antwort macht mir jetzt wieder Hoffnung

micky0867

Ich habe eine alte Medion Kamera, die per "http://<ip>/videostream.cgi" ein Image zur Verfügung stellt, das sich selbst aktualisiert.
Es wird auch einfach per <img src=... /> in eine Webseite eingebunden.

Der Trick besteht darin, dass man eine mehr oder minder schnelle Abfolge von Snapshots von der Kamera bekommt, die der Browser an der immer gleichen Stelle immer wieder überschreibt.

Der Stream sieht als HTTP/HTML-Code so aus:

HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: multipart/x-mixed-replace;boundary=ipcamera
Server: mcdhttpd/1.2
Connection: close

--ipcamera
Content-Type: image/jpeg
Content-Length: <Bildgrösse in Bytes>
<Binärdaten von Bild 1>

--ipcamera
Content-Type: image/jpeg
Content-Length: <Bildgrösse in Bytes>
<Binärdaten von Bild 2>

--ipcamera
Content-Type: image/jpeg
Content-Length: <Bildgrösse in Bytes>
<Binärdaten von Bild ...>

etc.


Zwar sind meine aktuelle Webcams viel schöner, schneller, besser, bunter und teurer als die alten, aber leider können sie einen Livestream eben auch nur als rtsp/rtmp ausgeben.

Deshalb habe ich mir meinen Apache-Webserver genommen und dort ein CGI-Script erstellt, das das obige Verhalten nachstellt.
Funktioniert ziemlich gut!

Script:

#! /bin/bash

exec 2>/dev/null

export WIDTH=640
export HEIGHT=480

for one in $(echo "$QUERY_STRING" | sed 's/&/ /g')
do
  k=$(echo "$one" | cut -f1 -d=)
  v=$(echo "$one" | cut -f2 -d=)
  export $k=$v
done

echo "$SERVER_PROTOCOL 200 OK"
echo "Cache-Control: no-cache"
echo "Content-Type: multipart/x-mixed-replace;boundary=ipcamera"
echo "Server: $SERVER_SOFTWARE"
echo "Connection: close"
echo ""
while [ true ]
do
  LEN=$(wget -O /tmp/cam.jpg "http://<webcam-ip>/cgi-bin/api.cgi?cmd=Snap&width=$WIDTH&height=$HEIGHT&channel=0&rs=wuuPhkmUCeI9WG7C&user=admin&password=123456" 2>&1 | grep "Length" | cut -f2 -d' ')
  echo "--ipcamera"
  echo "Content-Type: image/jpeg"
  echo "Content-Length: $LEN"
  echo ""
  cat /tmp/cam.jpg
done


Das Script habe ich im cgi Verzeichnis von Apache unter dem Namen nph-videostream gespeichert.
Dabei ist das nph- wichtig, es zeigt Apache an, dass es ein Non-Parsed-Header Script ist, bei dem der HTTP-Header vom Script selbst und nicht von Apache generiert wird.
Die URL, die von wget geholt wird, muss natürlich auf die jeweilige Snapshot-URL der eigenen Cam angepasst werden.
Im obigen Fall kann die Größe des Snapshots beim Aufruf bestimmt werden, so dass ich z.B. ein Mini-Image in fhem anzeigen lassen kann und beim Klick auf das Bild ein neues Fenster mit der einer höheren Auflösung aufgeht.
<a href=http://192.168.178.1/cgi-bin/nph-videostream?WIDTH=1024&HEIGHT=768 target=_blank><img width=640 height=480 border=1 src=http://192.168.178.1/cgi-bin/nph-videostream></a>




misux

HI!

Diese Idee hatte ich auch schon, aber ich frage mich wie lange das die SD Karte mitmacht... Deshalb habe ich auf einem zweiten Raspi MotionEye drauf der mit einen mjepeg stream ins Netz stellt welchen man problemlos in FTUI einbinden kann als Livestream...

NilsB

Moin!

Also ich habe hier wahrgenommen, dass MJPEG Streams wesentlich weniger Ärger in FTUI machen.
Bin gerade auf einer Suche nach einer Cam für die Außenwand neben der Haustür, welche bei Klingeln als Popup Widget angezeigt werden soll...

Die Unifi G3s sind ja dann auch nur mit MotionEye Umweg zu betreiben, da sie lediglich RTSP ausliefern können.
Hat jemand eine Empfehlung für eine Outdoor Kamera mit POE Versorgung, welche nativ MJPEG ausliefert?

Danke und viele Grüße
Nils

Ulm32b

Ich glaube, das schon ein paar Mal im Forum geschrieben zu haben: Kauft euch eine Instar-Kamera. Deren mjpeg kann man ohne Umwege in FTUI einbinden. Die neueren Modelle haben einen robusten PIR-Sensor, und per MQTT können sie auch Nachrichten (Alarm) versenden. Damit ist es ziemlich einfach, das Bild der Haustür dann einzublenden, wenn der Sensor anschlägt.

Eine bei mir im geschützten Außenbereich angebrachte IN-8003 läuft seit über einem Jahr problemlos. Zwar war die erste Kamera nach ca. 2 Monaten defekt (Bildstörung, Kamera wurde heiß), wurde aber von Instar einwandfrei ersetzt.

Ich stehe mit Instar nur als zahlender Kunde in Beziehung und halte mich ansonsten für jemanden, der keine Zeit und Lust hat, an vermeintlichen Schnäppchen zu verzweifeln. Tut euch den Gefallen und kauft gleich die passende Hardware. Über die Preise kann man eigentlich nicht meckern.

Beachten sollte man lediglich, die Kameras in FTUI nicht einfach nur ein- und auszublenden, sondern den url-Link zu kappen, um den Netzwerktraffic zu begrenzen.

neyzen

Hallo,
ich hab eine Reolink 410 Kamera.
Den RTSP Stream mit entsprechender Adresse kan ich im VLC mir anschauen.
Anscheinend kann man ja auch den RTSP Stream auch in Fully anzeigen lassen.
Wie muss den meine DEF ausschauen? Und brauch ich die Plus (gekaufte) Version damit ich den RTSP Stream anzeigen lassen kann?
Ich hab ein Android 7 Tablet


neyzen

Hi,
wie bekomme ich den meinen RTSP Stream ohne auf einen Link zu klicken in eine Kachel rein?

Aktuell habe ich folgende Def
<div class="large" style="color:white;">CAMERA</div>
<a href="rtsp://user:pw@ip:554//h264Preview_01_main">RTSP Stream</a>


Damit bekomme ich den stream wenn ich auf den link "RTSP Stream" klicke. Das wird aber in Vollbild angezeigt.
Ich würde gerne ohne auf einen link zu klicken das bild in einer kachel anzeigen.


neyzen