Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. [gelöst] Widget für RTSP Stream

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    SOLVED [gelöst] Widget für RTSP Stream

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      SidM last edited by SidM

      @paeppi

      Hallo Patrick, bei der Umstellung auf go2rtc musste ich auch erst ein wenig probieren.
      Wenn ich dir ein Rat geben kann, versuche andere Kameras als Reolink zu nutzen. Versuche welche von Dahua, Hikvision, and Amcrest zu nehmen, wie es der Entwickler vorschlägt.

      Ich habe 3 Reolinks (hatte ich vor Frigate NVR) und eine davon ( RLC-510A ) hat bei den aufnahmen immer mal Aussetzer (Ton läuft noch Bild friert aber ein, oder auch mal komplett Schwarzes Bild).

      Meine Konfig sieht so aus:

      mqtt:
        # Optional: Enable mqtt server (default: false)
        enabled: True
        # Required: host name
        host: 192.168.188.40
        # Optional: port (default: shown below)
        port: 1886
        # Optional: topic prefix (default: frigate)
        # NOTE: must be unique if you are running multiple instances
        topic_prefix: frigate
        # Optional: client id (default: frigate)
        # NOTE: must be unique if you are running multiple instances
        client_id: frigate
        # Optional: interval in seconds for publishing stats (default: 60)
        stats_interval: 5
      
      
      detectors: # <---- add detectors
        coral:
          type: edgetpu
          device: usb
      
      
      ffmpeg:
        hwaccel_args: preset-vaapi
        output_args:
          # Optional: output args for detect streams (default: shown below)
          detect: -f rawvideo -pix_fmt yuv420p
          # Optional: output args for record streams (default: shown below)
          record: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy
          # Optional: output args for rtmp streams (default: shown below)
          
      
      go2rtc:
        streams:
          Hof:
            - http://192.168.188.38/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=**********&password=**********
            - "ffmpeg:Hof#audio=opus" # <- copy of the stream which transcodes audio to the missing codec (usually will be opus)
          Hof_Sub:
            - http://192.168.188.38/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=**********&password=**********
          Werkstatt:
            - http://192.168.188.23/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=**********&password=**********
            - "ffmpeg:Werkstatt#audio=opus" # <- copy of the stream which transcodes audio to the missing codec (usually will be opus)
          Werkstatt_Sub:
            - http://192.168.188.23/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=**********&password=**********
          Flur:
            - http://192.168.188.36/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=**********&password=**********
            - "ffmpeg:Flur#audio=opus" # <- copy of the stream which transcodes audio to the missing codec (usually will be opus)
          Flur_Sub:
            - http://192.168.188.36/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=**********&password=**********
        webrtc:
          candidates:
            - 192.168.188.40:8555
            - stun:8555
      
      
      
      cameras:
        Hof: # <------ Name the camera
          ffmpeg:
            output_args:
              record: preset-record-generic-audio-copy
            inputs:
              - path: rtsp://127.0.0.1:8554/Hof?video=copy&audio=aac # <--- the name here must match the name of the camera in restream
                input_args: preset-rtsp-restream
                roles:
                  - record
              - path: rtsp://127.0.0.1:8554/Hof_Sub?video=copy # <----- The stream you want to use for detection
                input_args: preset-rtsp-restream
                roles:
                  - detect
          detect:
            enabled: True # <---- disable detection until you have a working camera feed
            width: 2560 # <---- update for your camera's resolution
            height: 1920 # <---- update for your camera's resolution
          record: # <----- Enable recording
            enabled: True
          snapshots: # <----- Enable snapshots
            enabled: True
          motion:
            mask:
              - 2024,238,1528,171,1330,189,1124,214,1081,342,751,336,748,379,379,385,0,407,0,192,0,0,837,0,2560,0,2560,157,2560,360
              - 1194,1920,1041,1783,0,1791,0,1920
          zones:
            Bewegung Hofeinfahrt:
              coordinates: 747,396,0,437,0,566,117,548,122,743,412,699,715,671,718,515,743,512
            Bewegung Innenhof:
              coordinates: 0,1920,0,580,112,551,122,749,746,682,737,346,1086,336,1086,221,1544,163,1704,176,2130,253,2560,362,2560,1920
            Bewegung Doppelgarage:
              coordinates: 2378,1892,2180,1822,2102,1718,2226,1316,2390,1018,2560,1082,2560,1552
      
      
        Werkstatt:
          ffmpeg:
            output_args:
              record: preset-record-generic-audio-copy
            inputs:
              - path: rtsp://127.0.0.1:8554/Werkstatt?video=copy&audio=aac # <--- the name here must match the name of the camera in restream
                input_args: preset-rtsp-restream
                roles:
                  - record
              - path: rtsp://127.0.0.1:8554/Werkstatt_Sub?video=copy # <----- The stream you want to use for detection
                input_args: preset-rtsp-restream
                roles:
                  - detect
          detect:
            enabled: True # <---- disable detection until you have a working camera feed
            width: 2560 # <---- update for your camera's resolution
            height: 1920 # <---- update for your camera's resolution
          record: # <----- Enable recording
            enabled: True
          snapshots: # <----- Enable snapshots
            enabled: True
          motion:
            mask:
              - 1828,42,1827,133,730,123,730,39
          zones:
            Bewegung Werkstatt:
              coordinates: 0,1920,0,0,2560,0,2560,1920
      
      
      
        Flur:
          ffmpeg:
            output_args:
              record: preset-record-generic-audio-copy
            inputs:
              - path: rtsp://127.0.0.1:8554/Flur?video=copy&audio=aac # <--- the name here must match the name of the camera in restream
                input_args: preset-rtsp-restream
                roles:
                  - record
              - path: rtsp://127.0.0.1:8554/Flur_Sub?video=copy # <----- The stream you want to use for detection
                input_args: preset-rtsp-restream
                roles:
                  - detect
          detect:
            enabled: True # <---- disable detection until you have a working camera feed
            width: 2560 # <---- update for your camera's resolution
            height: 1920 # <---- update for your camera's resolution
          record: # <----- Enable recording
            enabled: True
          snapshots: # <----- Enable snapshots
            enabled: True
          motion:
            mask:
              - 1828,133,1823,25,715,34,716,139
          zones:
            Bewegung Flur:
              coordinates: 0,1920,0,0,2560,0,2560,1920
      
      
      # Optional: Object configuration
      # NOTE: Can be overridden at the camera level
      objects:
        # Optional: list of objects to track from labelmap.txt (default: shown below)
        track:
          - person
          - car
          - cat
          - dog
          - bird
        # Optional: mask to prevent all object types from being detected in certain areas (default: no mask)
        # Checks based on the bottom center of the bounding box of the object.
        # NOTE: This mask is COMBINED with the object type specific mask below
        mask: 0,0,1000,0,1000,200,0,200
        # Optional: filters to reduce false positives for specific object types
        filters:
          person:
            # Optional: minimum width*height of the bounding box for the detected object (default: 0)
            min_area: 0
            # Optional: maximum width*height of the bounding box for the detected object (default: 24000000)
            max_area: 24000000
            # Optional: minimum score for the object to initiate tracking (default: shown below)
            min_score: 0.5
            # Optional: minimum decimal percentage for tracked object's computed score to be considered a true positive (default: shown below)
            threshold: 0.7
            # Optional: mask to prevent this object type from being detected in certain areas (default: no mask)
            # Checks based on the bottom center of the bounding box of the object
            mask: 0,0,1000,0,1000,200,0,200
            
      
      
      # Optional: in-feed timestamp style configuration
      # NOTE: Can be overridden at the camera level
      timestamp_style:
        # Optional: Position of the timestamp (default: shown below)
        #           "tl" (top left), "tr" (top right), "bl" (bottom left), "br" (bottom right)
        position: "tl"
        # Optional: Format specifier conform to the Python package "datetime" (default: shown below)
        #           Additional Examples:
        #             german: "%d.%m.%Y %H:%M:%S"
        format: "%d/%m/%Y %H:%M:%S"
        # Optional: Color of font
        color:
          # All Required when color is specified (default: shown below)
          red: 255
          green: 255
          blue: 255
        # Optional: Line thickness of font (default: shown below)
        thickness: 2
        # Optional: Effect of lettering (default: shown below)
        #           None (No effect),
        #           "solid" (solid background in inverse color of font)
        #           "shadow" (shadow for font)
        effect: solid
        
      
      
      # Optional: birdseye configuration
      # NOTE: Can (enabled, mode) be overridden at the camera level
      birdseye:
        # Optional: Enable birdseye view (default: True)
        enabled: True
        # Optional: Restream birdseye via RTSP (default: False)
        # NOTE: Enabling this will set birdseye to run 24/7 which may increase CPU usage somewhat.
        restream: False
        # Optional: Width of the output resolution (default: 1280)
        width: 2560
        # Optional: Height of the output resolution (default: 720)
        height: 1920
        # Optional: Encoding quality of the mpeg1 feed (default: 8)
        # 1 is the highest quality, and 31 is the lowest. Lower quality feeds utilize less CPU resources.
        quality: 8
        # Optional: Mode of the view. Available options are: objects, motion, and continuous
        #   objects - cameras are included if they have had a tracked object within the last 30 seconds
        #   motion - cameras are included if motion was detected in the last 30 seconds
        #   continuous - all cameras are included always
        mode: motion
      
      
      
      # Optional: Record configuration
      # NOTE: Can be overridden at the camera level
      record:
        # Optional: Enable recording (default: False)
        # WARNING: If recording is disabled in the config, turning it on via
        #          the UI or MQTT later will have no effect.
        enabled: True
        # Optional: Number of minutes to wait between cleanup runs (default: 60)
        # This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o
        expire_interval: 60
        # Optional: Retention settings for recording
        retain:
          # Optional: Number of days to retain recordings regardless of events (default: 0)
          # NOTE: This should be set to 0 and retention should be defined in events section below
          #       if you only want to retain recordings of events.
          days: 0
          # Optional: Mode for retention. Available options are: all, motion, and active_objects
          #   all - save all recording segments regardless of activity
          #   motion - save all recordings segments with any detected motion
          #   active_objects - save all recording segments with active/moving objects
          # NOTE: this mode only applies when the days setting above is greater than 0
          mode: all
        # Optional: Event recording settings
        events:
          # Optional: Number of seconds before the event to include (default: 5)
          pre_capture: 15
          # Optional: Number of seconds after the event to include (default: 5)
          post_capture: 15
          # Optional: Objects to save recordings for. (default: all tracked objects)
          objects:
            - person
            - car
            - dog
            - cat
            - bird
      
          # Optional: Restrict recordings to objects that entered any of the listed zones (default: no required zones)
          required_zones: []
          # Optional: Retention settings for recordings of events
          retain:
            # Required: Default retention days (default: 10)
            default: 10
            # Optional: Mode for retention. (default: motion)
            #   all - save all recording segments for events regardless of activity
            #   motion - save all recordings segments for events with any detected motion
            #   active_objects - save all recording segments for event with active/moving objects
            #
            # NOTE: If the retain mode for the camera is more restrictive than the mode configured
            #       here, the segments will already be gone by the time this mode is applied.
            #       For example, if the camera retain mode is "motion", the segments without motion are
            #       never stored, so setting the mode to "all" here won't bring them back.
            mode: motion
            # Optional: Per object retention days
            objects:
              person: 15
              car:    15
              dog:    15
              cat:    15
      
      
      
      # Optional: Configuration for the jpg snapshots written to the clips directory for each event
      # NOTE: Can be overridden at the camera level
      snapshots:
        # Optional: Enable writing jpg snapshot to /media/frigate/clips (default: False)
        enabled: True
        # Optional: save a clean PNG copy of the snapshot image (default: True)
        clean_copy: True
        # Optional: print a timestamp on the snapshots (default: False)
        timestamp: False
        # Optional: draw bounding box on the snapshots (default: False)
        bounding_box: True
        # Optional: crop the snapshot (default: False)
        crop: False
        # Optional: height to resize the snapshot to (default: original size)
        height: 0
        # Optional: Restrict snapshots to objects that entered any of the listed zones (default: no required zones)
        required_zones: []
        # Optional: Camera override for retention settings (default: global values)
        retain:
          # Required: Default retention days (default: 10)
          default: 10
          # Optional: Per object retention days
          objects:
            person: 15
            car:    15
            dog:    15
            cat:    15
      
      
      # Optional
      ui:
        # Optional: Set the default live mode for cameras in the UI (default: mse)
        live_mode: mse
        # Optional: Set a timezone to use in the UI (default: use browser local time)
         #timezone: America/Denver
        # Optional: Use an experimental recordings / camera view UI (default: false)
        use_experimental: False
        # Optional: Set the time format used.
        # Options are browser, 12hour, or 24hour (default: browser)
        time_format: browser
        # Optional: Set the date style for a specified length.
        # Options are: full, long, medium, short
        # Examples:
        #    short: 2/11/23
        #    medium: Feb 11, 2023
        #    full: Saturday, February 11, 2023
        # (default: short).
        date_style: short
        # Optional: Set the time style for a specified length.
        # Options are: full, long, medium, short
        # Examples:
        #    short: 8:14 PM
        #    medium: 8:15:22 PM
        #    full: 8:15:22 PM Mountain Standard Time
        # (default: medium).
        time_style: medium
        # Optional: Ability to manually override the date / time styling to use strftime format
        # https://www.gnu.org/software/libc/manual/html_node/Formatting-Calendar-Time.html
        # possible values are shown above (default: not set)
        #strftime_fmt: "%Y/%m/%d %H:%M"
      

      Dank der Integration von go2rtc kann man jetzt auch auf dem iPhone problemlos sich den Live Stream anzeigen lassen ohne eine weiter App nutzen zu müssen.

      In der VIS dann einfach ein iFrame-Widget einsetzten und als Quelle folgendes eingeben:

      http://192.168.188.40:5002/live/webrtc/webrtc.html?src=Flur
      

      Die IP und Port entspricht dabei den von Frigate.

      P K 2 Replies Last reply Reply Quote 1
      • bahnuhr
        bahnuhr Forum Testing Most Active last edited by

        Hallo,

        hatte ich aber detailliert beschrieben:

        widget: jqui-mfd - cam/snapshot

        Dort trägst du unter icon url deinen Befehl ein um ein Bild von der Kamera zu holen, bei mir:

        http://192.168.xxx.xx:88/cgi-bin/CGIPro … xx&pwd=xxx

        Und dann unter Updateintervall: 5000 ms

        1 Reply Last reply Reply Quote 0
        • S
          SidM @Wal last edited by

          @wal

          Ich hatte zu beginn auch keine Google Coralle und hab aber bei 2 Streams eine Auslastung von ca 30-35% im Hinterkopf. (Xeon E-2176G)
          Mittlerweile wird ja auch wie du schon angesprochen hast, OpenVino unterstützt also CPU und GPU von Intel.
          Auch gibt es regelmäßige Updates von Frigate.
          Man kann ja erstmal schauen, ob es für eine etwas ist und falls ja, was die Auslastung des Systems macht.

          Der Stick ist ja dann schnell nachgeordert.

          1 Reply Last reply Reply Quote 0
          • P
            paeppi @SidM last edited by

            @sidm Vielen Dank. Die Config werde ich gleich mal testen.

            Ja das mit der Reolink habe ich auch gelesen. Die steht aktuell eh nur im Kinderzimmer und ist nicht wirklich wichtig. Die war eher zu testen und spielen Gedacht.
            Da ich aktuell ein Gerüst ums Haus stehen habe war eben jetzt die Überlegung gleich 2-3 Kameras anzubringen. Dass der Entwickler Dahua oder Hikvision vorschlägt habe ich schon gesehen und auch schon angeschaut. Sind interessante Produkte. Nur hatte ich noch keine Zeit mich damit auseinander zu setzen ob evtl. PTZ geht.

            Grüße
            Patrick

            1 Reply Last reply Reply Quote 0
            • Wal
              Wal Developer @paeppi last edited by Wal

              @paeppi ,
              hier meine minimale, du must nur unter go2rtc deine rtsp-Url eintragen:

              detectors:
                ov:
                  type: openvino
                  device: AUTO
                  model:
                    path: /openvino-model/ssdlite_mobilenet_v2.xml
               
              model:
                width: 300
                height: 300
                input_tensor: nhwc
                input_pixel_format: bgr
                labelmap_path: /openvino-model/coco_91cl_bkgr.txt
              
              mqtt:
                host: 192.168.122.20
                user: user
                password: 012345678
                port: 1234
              
              go2rtc:
                streams:
                  rtsp_cam:
                    - rtsp://admin:12345678@192.168.122.100:554/h264Preview_01_main
                    - "ffmpeg:rtsp_cam#audio=opus"
              
              cameras:
                rtsp_cam:
                  ffmpeg:
                    inputs:
                      - path: rtsp://127.0.0.1:8554/rtsp_cam
                        input_args: preset-rtsp-restream
                        roles:
                          - record
              

              diese Ports müssen in der docker yml freigeschaltet werden:

                  ports:
                    - "5000:5000"
                    - "1935:1935" # RTMP feeds
                    - "1984:1984"
                    - "8555:8555/tcp" # WebRTC over tcp
                    - "8555:8555/udp" # WebRTC over udp
              

              danach kannst du unter http://ip:1984 das aufrufen:
              Screenshot 2023-05-10 212807.png
              und die htmlstreams unter links für die Vis testen

              S 1 Reply Last reply Reply Quote 3
              • S
                SidM @Wal last edited by

                @wal

                Du hast doch auch ne Coralle. Hast du mal beides getestet? Also die Google Coralle und OpenVino in der Config,yml? Sollte doch gehen? Ob es etwas bringt 🤷‍♂️

                Wal 1 Reply Last reply Reply Quote 0
                • Wal
                  Wal Developer @SidM last edited by Wal

                  @sidm ,
                  das kann ich erst richtig bei mehr als 2 Kameras testen, die ich i.M. nicht habe.
                  Mit Vino habe ich auch nur 10ms Inference Speed, mit der Coral Dual TPU 6,56ms und die CPU Last ist fast gleich.
                  Wenn es der Gelbeutel zu lässt und ich die richtige Kamera gefunden habe, werde ich das Haus ausstatten. 😉
                  Die Reolink 810A die ich refurbished gekauft habe ist schon super, ich liebäugele aber mit der 812A Nachtfarbversion.
                  Die Probleme die manche mit Reolinkkameras unter frigate haben, kann ich auch nicht bestätigen.

                  Edit: Gleichzeitig geht nicht.

                  S 1 Reply Last reply Reply Quote 1
                  • S
                    SidM @Wal last edited by

                    @wal

                    Danke für die Info sehr interessant, muss ich bei Gelegenheit auch mal ausprobieren. Vino unterstützung gibt es ja erst mit Version 0.12.0
                    Ich wünschte meine Erfahrung mit Reolink wäre auch auch besser, das Bild was meine machen ist schon gut, nur die Aussetzer zwischen drinnen sind halt extrem nervig.

                    Ich habe ja oben meine Config gespeichert, sieht deine auch so aus, also was den Kamerastream bestrifft?
                    Nutzt du den RTSP Stream oder den HTTP stream. RTMP gibt es ja auch noch,

                    Am Anfang hab ich den RTSP genutzt, war aber auch nicht besser als HTTP. Ob ich den RTMP genutzt habe, weiß ich gar nicht mehr 🤦‍♂️

                    Wal 1 Reply Last reply Reply Quote 0
                    • Wal
                      Wal Developer @SidM last edited by

                      @sidm ,
                      wir haben ja verschiedene Cams, es wird daran liegen.

                      1 Reply Last reply Reply Quote 0
                      • S
                        SidM last edited by

                        @wal

                        Ich habe eben auch nochmal gespielt.

                        Weder RTSP noch RTMP funktioniert mit go2rtc zuverlässig. Da ist wirklich HTTP am besten geeignet...

                        Ich werde irgendwann werde ich mal Dahua probieren.

                        1 Reply Last reply Reply Quote 1
                        • K
                          Kopterframe @SidM last edited by

                          @sidm
                          Servus,
                          ich habe deine config mal ausprobiert.
                          Die Streams gehen im Iobroker und auf allen Geräten (PC IPhone …) aber nicht auf einem android 13 Tablet.
                          Ich habe keine Ahnung warum das so ist?????
                          Grüße Heiko

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          706
                          Online

                          31.6k
                          Users

                          79.5k
                          Topics

                          1.3m
                          Posts

                          27
                          66
                          45132
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo