Ankündigung

Einklappen
Keine Ankündigung bisher.

RTSP-Livestream in Edomi anzeigen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [Funktionen] RTSP-Livestream in Edomi anzeigen

    Hallo Leute,

    ich habe mehrere Reolink-Kameras im Haus und diese geben leider keinen MJPEG-Stream aus, sondern "nur" einen RTSP-Stream bzw. natürlich auch einen Snapshot. Den Snapshot stelle ich schon immer im Edomi dar und das reicht auch für die meisten Dinge. Der Wunsch den RTSP-Stream live darzustellen war aber schon immer da und ich habe mehrere Wochen daran rumgebastelt und alles mögliche versucht mit FFMPEG-Kodierung, VLC-Transcoding,MotionEye, etc. und hatte bei allen Lösungen kein Ergebnis mit dem ich wirklich leben konnte.

    Nun habe ich aber eine Lösung gefunden, die für mich richtig gut funktioniert und ich dachte mir, dass ich sie euch ja mal vorstellen könnte. In 1-2 anderen Threads war ja auch schon die Frage danach. Und im Grunde ist es damit sogar recht einfach.

    Es geht um das Projekt "RTSPtoWeb". Hiermit kann man in nur wenigen Befehlen (sind auf der Webseite zu sehen) einen Converter installieren, der den RTSP-Stream nimmt und ihn in Web-Formate umwandelt. Ich habe das ganze unter einem eigenen Proxmox-Container laufen, da ich das getrennt vom Edomi haben wollte. Bin auch nicht ganz sicher, ob das direkt auf dem Edomi laufen sollte, da RTSPtoWeb eine Weboberfläche hat und ich nicht getestet habe, wie gut sich der mit dem Edomi-Webserver dann verträgt.

    Grundsätzlich kann man über das Dashboard von RTSPtoWeb seine Streams einrichten und dann auch die verschiedenen Ausgabearten direkt testen. Da Edomi selbst nur MJPEG anbietet, habe ich dann einfach eine kleine Webseite pro Kamera erstellt, die ich dann im Edomi in einem IFRAME aufrufe.

    Beispiel:
    HTML-Code:
    <!doctype html>
    <html lang="de">
    <head>
    <meta charset="utf-8">
    <title>Kamera</title>
    <style>
    * {
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    overflow-y: hidden;
    }
    
    div {
    width: 100%;
    height: 100%;
    }
    </style>
    </head>
    <body>
    <input type="hidden" name="mse-url" id="mse-url" value="ws://192.168.0.15:8083/stream/ID_DER_KAMERA/channel/0/mse?uuid=ID_DER_KAMERA&channel=0">
    <div>
    <video id="mse-video" autoplay muted playsinline style="pointer-events: none; max-width: 100%; max-height: 100%;"></video>
    </div>
    <script src="main_mse.js"></script>
    </body>
    </html>
    Ich habe festgestellt, dass jeder Browser auf jedem Berät sich etwas anders verhält, weshalb man etwas gucken muss, welche Streaming-Technologie hier am Besten funktioniert. RTSPtoWeb hat folgende Möglichkeiten für die Ausgabe:
    MSE
    WebRTC
    HLS
    HLSLL
    und noch 2-3 weitere

    Auf meinen Androids (FireHD und Samsung) mit Fully funktioniert die MSE-Variante mit abstand am Besten. Keine Ruckler/Aussetzer und wenn WLAN mal kurz weg ist, dann läuft das auch schnell weiter. Auf dem gleichen Samsung-Tablet mit WallPanel als Browser war es WebRTC.

    Vorteile:
    - Verschiedene Ausgabemöglichkeiten mit Beispiele
    - Konvertierung on Demand (Es wird wirklich nur umgewandelt, wenn ein Client etwas braucht)
    - Niedrige Prozessorlast gegenüber MotionEye, VLC, etc....

    Nachteile:
    - Eventuell auf eigenem Server/Instanz (nicht getestet)
    - Auf den Androiden kann immer nur ein Stream angezeigt werden. Ich habe es bisher nicht geschafft alle Kameras auf einer Seite anzuzeigen. Ich denke aber, dass das ein Android-Problem ist. Hier gucke ich weiter.

    Vielleicht ist es ja wirklich für irgendwen von euch auch interessant und er kann damit seinen Livestream anzeigen.

    Viele Grüße
    Dustin

    #2
    Ich mache das wie hier beschrieben via ffserver
    https://knx-user-forum.de/forum/proj...tream-in-edomi

    Das könnte man auf dem Edomi Server mitlaufen lassen, ich habe es aber auf einem seperaten Server laufen.

    Kommentar


      #3
      Es kann sein, dass ich das überlesen habe, aber für mich hat die FFServer-Variante ein paar Nachteile.
      - FFServer gibt es seit 4 Jahren nicht mehr
      - Es muss die ganze Zeit im Hintergrund konvertieren
      - Die Konvertierung der gleichen Cam verursacht mit FFServer 20-35% CPU-Last und mit dem RTSPtoWeb-Server nur 1-2% auf der gleichen Hardware (i5-6500T)

      Ich hätte das ganze auch total gerne in MJPEG umgewandelt, um das direkt anzuzeigen, aber das für 5-6 Kameras zu machen ist für mich bei der Last über den FFServer einfach nicht praktikabel.

      Kommentar


        #4
        Ich verwende auch seit einem Jahr RTSPtoWeb in einem Docker Container.
        Einrichtung sehr einfach und wie erwähnt kaum Ressourcenverbrauch

        Kommentar


          #5
          Hallo,
          ich habe nun auch mal RTSPtoWeb installiert und versuche gerade meine HIKVISION einzubinden.
          Dazu benutze ich folgende Adresse:
          rtsp://userpassword@xx.x.x.xxx:554/streaming/channels/101

          Wenn ich den Stream über den VLC aufrufe funktioniert es auch einwandfrei.
          Jedoch bekomme ich in RTSPtoWeb kein Bild...

          Folgender Fehler wird angezeigt:
          Stream error restart stream RTSP Client Unauthorized 401 call=Restart

          Hat jemand ne idee wo der Fehler liegt?

          Viele Grüsse
          Eric

          Kommentar


            #6
            Zitat von eric4980 Beitrag anzeigen
            rtsp://userpassword@xx.x.x.xxx:554/streaming/channels/101
            Hast du keinen Doppelpunkt zwischen user und password?

            Kommentar


              #7
              Zitat von jonofe Beitrag anzeigen
              Hast du keinen Doppelpunkt zwischen user und password?
              Doch, aber das Forum mach dann einen Smiley draus :-)
              rtsp://userassword@xx.x.x.xxx:554/streaming/channels/101

              rtsp://user : password@xx.x.x.xxx:554/streaming/channels/101

              Kommentar


                #8
                Wie sieht denn deine config.json aus? In der Konfig kann man glaube ich etwas einstellen dazu. Ich habe das "Authorization play video" nicht aktiviert, weil ich keine Lust auf irgendwelche Tokens hatte. ;-)

                Kommentar


                  #9
                  Hallo Zusammen,
                  manchmal hilft ein Neustart und schon funktionierts :-)

                  Nun habe ich aber eine weitere Frage:
                  Wie binde ich den Stream nun in Edomi ein damit ich mjpeg bekomme?
                  Hier würde ich vermuten das es der WebRTC Stream ist?

                  Woher bekomme ich die Stream_ID?

                  Viele Grüsse
                  Eric

                  Kommentar


                    #10
                    Hallo zusammen

                    Ich besitze eine Synology Station und möchte dort einen Docker mit RTSPtoWeb einrichten.
                    welchen Docker benötige ich und wie muss ich den Kamerastream einrichten?

                    viele Grüß
                    Guido

                    Kommentar


                      #11
                      Zitat von eric4980 Beitrag anzeigen
                      Wie binde ich den Stream nun in Edomi ein damit ich mjpeg bekomme?
                      So wie ich es verstanden habe, geht das nicht.
                      In Post Home ist ja beschrieben, dass du je Kamera eine Webseite erstellst und diese dann in EDOMI als iframe einbindest.

                      Kommentar


                        #12
                        Zitat von jonofe Beitrag anzeigen

                        So wie ich es verstanden habe, geht das nicht.
                        In Post Home ist ja beschrieben, dass du je Kamera eine Webseite erstellst und diese dann in EDOMI als iframe einbindest.
                        Korrekt. Egal welchen Output-Typ du verwendest, da wird niemals MJPEG rauskommen und das muss immer über ein IFRAME eingebunden werden.


                        Die Stream_ID siehst du über das Dashboard auch immer, wenn du eine Kamera anzeigst oder in der Konfig bist, dann steht die ID oben in der URL mit drin.
                        Zuletzt geändert von DustinR; 29.04.2022, 10:26.

                        Kommentar


                          #13
                          Zitat von Guidokoeller Beitrag anzeigen
                          Hallo zusammen

                          Ich besitze eine Synology Station und möchte dort einen Docker mit RTSPtoWeb einrichten.
                          welchen Docker benötige ich und wie muss ich den Kamerastream einrichten?

                          viele Grüß
                          Guido
                          Ich habe es nicht per Docker installiert und kann da leider nicht helfen. Aber auf der Webseite https://github.com/deepch/RTSPtoWeb steht doch eine Anleitung zur Installation über Docker.

                          Kommentar


                            #14
                            Gerade durch Zufall gefunden vom gleichen Author wie RTSPtoWeb: https://github.com/deepch/RTSPtoImage

                            Mit RTSPtoImage sollte theoretisch die Konvertierung zu MJPEG möglich sein. Und man kann anscheinend dann auch auf "On Demand" umstellen, dass es nicht immer im Hintergrund läuft. Das läuft dann aber auch wieder über FFMPEG und braucht ziemlich viel Prozessorlast. Das liegt vielleicht nicht direkt an FFMPEG, aber mein Kurztest hat ergeben, dass es deutlich mehr CPU braucht als RTSPtoWeb.

                            Kommentar


                              #15
                              Ich habe das jetzt auch mal als Docker Container ausprobiert und meine 5 Kameras eingebunden. Setup war sehr einfach.
                              Meine Reolink und Sunba Cams funktionieren auf Anhieb sehr gut.
                              Meine 3 Hikvisions hingegen nicht. Das Bild läuft ca. 8-10 Sekunden stabil und danach sehe ich nur noch einen sich drehenden Kreis und das Bild wird nicht mehr aktualisiert. Als Streamadresse verwendet ich
                              Code:
                              rtsp://user:password@10.0.xx.xx:554/
                              In VLC läuft der Stream stabil.

                              Hat sowas schon mal jemand beobachtet?

                              Kommentar

                              Lädt...
                              X