MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras

    Scheduled Pinned Locked Moved Utilities
    602 Posts 67 Posters 2.1m Views 68 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • evroomE Offline
      evroom
      last edited by

      I tried playing with absPosition, but it does not do what is expected.

      First of all:

      absPosition: This overrides the automatic window and moduleOffset settings.

      Second of all:

      Format: { top: XX, right: XX, bottom: XX, left: XX } where XX is the pixel position on the screen.

      This is not quite true.
      The omxplayer options say: --win ‘x1 y1 x2 y2’
      This would translate to: { top: XX, left: XX, right: XX, bottom: XX }
      In principle it is a rectangular with coordinates (x1,y1) - (x2,y2).

      But most important:

      Whatever I do, including the module position, the video window is ALWAYS in the center of the screen, for the FULL width of the screen.

      I will try playing with the other parameters a bit.

      MagicMirror version: 2.33.0
      Raspberry Pi 4 Model B Rev 1.5 (8 GB RAM)
      Raspbian GNU/Linux 12 (bookworm)

      Test environment:
      MagicMirror version: v2.33.0
      Raspberry Pi 3 Model B Plus Rev 1.3 (1 GB RAM)
      Raspbian GNU/Linux 12 (bookworm)

      1 Reply Last reply Reply Quote 0
      • evroomE Offline
        evroom
        last edited by

        You can move the streaming window using

        moduleOffset: { left: XX, top: YY },
        

        left: plus value shifts right, minus value shifts left
        top: plus value shifts down, minus value shifts up

        The width and height value in the stream config determines the streaming window size.

        The name moduleOffset is IMHO a bit misleading, as it does not move the module window.

        I still fail to see the connection between the module position (e.g. “top_left”, “top_right”, “bottom_left”, etc) and the position of the streaming window.
        The streaming window always appears in the middle.
        Except when I use “top_bar” or “bottom_bar”.

        MagicMirror version: 2.33.0
        Raspberry Pi 4 Model B Rev 1.5 (8 GB RAM)
        Raspbian GNU/Linux 12 (bookworm)

        Test environment:
        MagicMirror version: v2.33.0
        Raspberry Pi 3 Model B Plus Rev 1.3 (1 GB RAM)
        Raspbian GNU/Linux 12 (bookworm)

        1 Reply Last reply Reply Quote 0
        • evroomE Offline
          evroom
          last edited by

          My MMM-RTSPStream module comes last.
          So the first modules may shift this module down and therefore my streaming window appears to be always located in the middle.
          In principle I want to have it in the middle, so I leave it there.
          I made sure that MMM-RTSPStream is the only one using “middle_center”.

          The module position will determine where the module window is being placed.
          Exactly where is determined by the main.css and perhaps changes in the custom.css.

          This is what the main.css does to “middle_center”, as example:

          .region.middle.center {
            width: 100%;
            text-align: center;
            -moz-transform: translateY(-50%);
            -o-transform: translateY(-50%);
            -webkit-transform: translateY(-50%);
            -ms-transform: translateY(-50%);
            transform: translateY(-50%);
          }
          

          For “middle_center” I changed my custom.css like this, for example:

          .region.middle.center {
            width: 60%;
          }
          

          This overrules the width in the main.css.
          [I have my monitor in portrait mode (900x1600) and have 2 columns of 60% + 40%]

          The moduleWidth and moduleHeight determine the size of your module and how other module will wrap around it.
          The moduleOffset will move the streaming window relative to the module window.

          The stream1 width and hight determine the streaming window size.
          When sized bigger than the module window, it will simply use this bigger size.
          It will even will cover other modules when too big, those modules will not wrap around it.

          This config works for me:

          {
            module: "MMM-RTSPStream",
            disabled: false,
            position: "middle_center",
            header: "Axis Security Monitor",
            config: {
              autoStart: true,
              rotateStreams: false,
              moduleWidth: 590,
              moduleHeight: 332,.
          //      moduleOffset: { left: 0, top: 0},
              localPlayer: 'omxplayer',
              remotePlayer: 'none',
              showSnapWhenPaused: false,
              remoteSnaps: false,
              stream1: {
                name: 'Axis_M2026_LE_MkII',
                url: 'rtsp://user:password@192.168.178.56/axis-media/media.amp?resolution=640x360',
                width: 590,
                height: 332
              },
          

          With

          $ pm2 logs mm
          

          you can check the streaming window parameters:

          0|mm  | Starting stream stream1 with args: [
          0|mm  |     "--avdict",
          0|mm  |     "rtsp_transport:tcp",
          0|mm  |     "--win",
          0|mm  |     "-2, 656, 588, 988",
          0|mm  |     "--no-osd",
          0|mm  |     "--live",
          0|mm  |     "--video_queue",
          0|mm  |     "4",
          0|mm  |     "--fps",
          0|mm  |     "30",
          0|mm  |     "rtsp://user:password@192.168.178.56/axis-media/media.amp?resolution=640x360"
          0|mm  | ]
          

          I have changed my custom config like this:

          .MMM-RTSPStream header {
              text-align: left;
          }
          .MMM-RTSPStream .innerWrapper {
            border-style: none;
            //border: 1px solid red;
          }
          

          I used solid red in order to see the position of the module window more clear.

          Be sure to use

          cd ~/MagicMirror; npm run config:check
          

          to check the config for errors before restarting mm, it will save you from obvious mistakes.

          Those are my findings, for me the settings work, perhaps it will help other users.

          MagicMirror version: 2.33.0
          Raspberry Pi 4 Model B Rev 1.5 (8 GB RAM)
          Raspbian GNU/Linux 12 (bookworm)

          Test environment:
          MagicMirror version: v2.33.0
          Raspberry Pi 3 Model B Plus Rev 1.3 (1 GB RAM)
          Raspbian GNU/Linux 12 (bookworm)

          J 1 Reply Last reply Reply Quote 1
          • Cr4z33C Offline
            Cr4z33 @shbatm
            last edited by

            @shbatm OK thanks.

            1 Reply Last reply Reply Quote 0
            • citizendevpiC Offline
              citizendevpi
              last edited by

              Have you got the wayze cam to feed to your mirror?

              1 Reply Last reply Reply Quote 0
              • Cr4z33C Offline
                Cr4z33
                last edited by Cr4z33

                @shbatm what if I want to use VLC instead of omxplayer?

                I am going to move to a different SBC called Rock Pi 4B and we know that omxplayer is for the Raspberry Pi family only.

                Would it be quite simple to edit the scripts or does it need a good programming knowledge? :smiling_face_with_smiling_eyes:

                Right now I am using a VLC window in my VMware Debian 8.x based MagicMirror testing session, but it’s not really what I want… :confused_face:

                1 Reply Last reply Reply Quote 0
                • S Offline
                  shbatm Module Developer
                  last edited by

                  @citizendevpi I started looking at VLC as an alternative to OMXPlayer but didn’t make it very far (honestly, just not enough time).

                  The most promising looked to be webchimera.js with VLC built for hardware acceleration, but the original repo for webchimera.js is marked abandoned. It looks like at least 1 fork is still active, but I didn’t get as far as testing anything.

                  If you have the capability to pursue it, I’d love some help. From what I have looked at, it should be a close-to-drop-in replacement for the FFMPEG version of this Module, and if that works, I could eliminate all of the OMXPlayer references (read: headaches).

                  References I’ve found:
                  https://thepi.io/how-to-compile-vlc-media-player-with-hardware-acceleration-for-the-raspberry-pi/
                  https://github.com/limoragni/WebChimera.js

                  Cr4z33C 2 Replies Last reply Reply Quote 0
                  • Cr4z33C Offline
                    Cr4z33 @shbatm
                    last edited by

                    @shbatm unfortunately I am not skilled enough for that sorry. :slightly_frowning_face:

                    Anyway it came out that VLC was not a good idea when using a Rockchip based SBC.
                    Its VPU can be used only if using gst-launch-1.0 like ie.:

                    gst-launch-1.0 uridecodebin uri=file:///usr/local/test.mp4  ! rkximagesink
                    

                    That way 4K streaming/playing looks good too.

                    1 Reply Last reply Reply Quote 0
                    • Cr4z33C Offline
                      Cr4z33 @shbatm
                      last edited by

                      @shbatm I’ve encountered a new issue.

                      While using a profile switching solution when I get to the profile that uses MMM-RTSPStream omxplayer displays the video at full screen! :face_screaming_in_fear:
                      The major problem is that no keyboard or mouse control can be used until I switch to a different profile that is not using your module.

                      Can you please fix this?

                      S 1 Reply Last reply Reply Quote 0
                      • BKeyportB Offline
                        BKeyport Module Developer
                        last edited by

                        That’s sounding more like the profile switcher’s issue - unless you’ve config’d this player to be full screen.

                        The "E" in "Javascript" stands for "Easy"

                        Cr4z33C 1 Reply Last reply Reply Quote 0
                        • Cr4z33C Offline
                          Cr4z33 @BKeyport
                          last edited by Cr4z33

                          @bkeyport nope I didn’t set omxplayer anywhere but in this module. ;)

                          Also profile switching is only ‘telling’ modules to show or hide.
                          Nothing else.

                          It’s done by voice command through MMM-AssistankMk2:

                                "CHANGE_PROFILE_1": {
                                  moduleExec: {
                                    module:[],
                                    exec: (module, params, key) => {
                                      var modules = ["YOUR", "MODULES", "TO", "SHOW", "FOR", "PROFILE1"]
                                      if (modules.indexOf(module.name) >= 0) {
                                        module.show()
                                      } else {
                                        module.hide()
                                      }
                                    }
                                  }
                                },
                                "CHANGE_PROFILE_2": {
                                  moduleExec: {
                                    module:[],
                                    exec: (module, params, key) => {
                                      var modules = ["YOUR", "MODULES", "TO", "SHOW", "FOR", "PROFILE2"]
                                      if (modules.indexOf(module.name) >= 0) {
                                        module.show()
                                      } else {
                                        module.hide()
                                      }
                                    }
                                  }
                                },
                              },
                          
                          1 Reply Last reply Reply Quote 0
                          • S Offline
                            shbatm Module Developer @Cr4z33
                            last edited by

                            @cr4z33 said in [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras:

                            Can you please fix this?

                            Please post your PM2 logs when this happens so I can try and troubleshoot. (Run pm2 logs in an SSH terminal, or post the excerpt from the files in ~/.pm2/logs/).

                            Cr4z33C 2 Replies Last reply Reply Quote 0
                            • Cr4z33C Offline
                              Cr4z33 @shbatm
                              last edited by

                              @shbatm here you go. ;)

                              1 Reply Last reply Reply Quote 0
                              • Cr4z33C Offline
                                Cr4z33 @shbatm
                                last edited by

                                @shbatm you there mate? :hushed_face:

                                S 1 Reply Last reply Reply Quote 0
                                • S Offline
                                  shbatm Module Developer @Cr4z33
                                  last edited by

                                  @cr4z33 Hey, sorry, I’m out of town and don’t have access to test anything related to this module (no easy access to cameras or a RPi) for the next few weeks.

                                  There is definitely a glitch in the calls to stop and restart the streams, but I can’t test right now. You can try backing up to a previous version and see if it was the latest updates to cause the problem: try using git checkout f583553

                                  I will take a look as soon as I can, and on a side note, there is now official support for VLC w/ Hardware Accelerated Decoding on Raspbian, I am planning to see if it would be better to abandon OMXPlayer in favor of VLC.

                                  Cr4z33C 1 Reply Last reply Reply Quote 0
                                  • Cr4z33C Offline
                                    Cr4z33 @shbatm
                                    last edited by Cr4z33

                                    @shbatm alright mate thanks for letting me know and sorry if I was insisting, but I thought you didn’t see my previous reply. :smiling_face_with_open_mouth_cold_sweat:

                                    Gonna try to revert now.

                                    Update
                                    I can confirm that reverting back to that version gets rid of the issue. :thumbs_up_medium-light_skin_tone:

                                    1 Reply Last reply Reply Quote 0
                                    • S Offline
                                      shbatm Module Developer
                                      last edited by

                                      @Cr4z33 No problem, sometimes I need a little prompting…

                                      Glad the revert works. I’ll troubleshoot more when I’m back.

                                      Cr4z33C 1 Reply Last reply Reply Quote 0
                                      • Cr4z33C Offline
                                        Cr4z33 @shbatm
                                        last edited by

                                        @shbatm cheers. :heart:

                                        1 Reply Last reply Reply Quote 0
                                        • BKeyportB Offline
                                          BKeyport Module Developer
                                          last edited by

                                          I’d support trying VLC over OMXPlayer - OMXPlayer barely works - and crashes so much, I had to switch to FFMpeg(?) – and even that crashes on my Pi 3+

                                          The "E" in "Javascript" stands for "Easy"

                                          1 Reply Last reply Reply Quote 0
                                          • richland007R Offline
                                            richland007
                                            last edited by

                                            @shbatm @Cr4z33 Hello guys and let me first wish you happy holidays and say thank you to @shbatm for this module.
                                            I too am using MMM-RTSPStream to stream my TV tuner to the mirror (the streaming is done from a media server running VLC in my network where the TV tuner is installed). Here is whats happening in my case :

                                            Everything is working “fine” per say meaning:

                                            If i go on my Rpi that my MM is installed and on the terminal i type

                                            omxplayer rtsp://192.168.1.254:8554/vlc
                                            

                                            I can see my TV programming playing just fine with minimal resources used on the pi …however when i try to watch it on MM after launching it, it does not work it just displays a gray quadrant!!

                                            If i go on the MM config.js and i change the url on MMM-RTSPStream module from the above to one of my cameras who have a username and password than MagicMirror displays them as expected and beautifully on the assigned page.

                                            So both my MM config of the RTSPStream module and my actual stream work …separately however, but not together!!!

                                            Does MMM-RTSPStream has to have a username and password for it to work???

                                            What do you think is happening in my case??

                                            Any help is always greatly appreciated

                                            Denis

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 5
                                            • 6
                                            • 7
                                            • 8
                                            • 9
                                            • 30
                                            • 31
                                            • 7 / 31
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy