• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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 1.7m 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.
  • ? Offline
    A Former User @Cr4z33
    last edited by Nov 19, 2018, 10:13 AM

    @cr4z33
    Frankly said, it might not be due to my config modifying suggestion. (Because IT SHOULD PAUSE AND RESUME, but you said NEVER STOP)
    I think it is due to use HDMI as output. I don’t know about it, but it might be able to mix from multi-sources.

    C 1 Reply Last reply Nov 19, 2018, 10:14 AM Reply Quote 0
    • C Offline
      Cr4z33 @Guest
      last edited by Nov 19, 2018, 10:14 AM

      @sean yeah I actually forgot to mention that the RTSP outputs to HDMI while Google Assistant outputs to a RPI Voice HAT speaker. :grimacing_face:

      ? 1 Reply Last reply Nov 19, 2018, 10:15 AM Reply Quote 0
      • ? Offline
        A Former User @Cr4z33
        last edited by Nov 19, 2018, 10:15 AM

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

        yeah I actually forgot to mention that the RTSP outputs to HDMI while Google Assistant outputs to a RPI Voice HAT speaker.

        That’s how it works. not by my code. :D

        C 1 Reply Last reply Nov 19, 2018, 2:55 PM Reply Quote 0
        • C Offline
          Cr4z33 @Guest
          last edited by Cr4z33 Nov 19, 2018, 2:57 PM Nov 19, 2018, 2:55 PM

          @sean of course. :winking_face:

          To everybody else: I removed the white frame and forgot to ask how to move the streaming windows.

          It is now offset compared to its module position. :confused_face:

          I guess I need to edit something in

          .MMM-RTSPStream .canvas {
            position: absolute;
            z-index: 1;
            left: 50%;
            top: 50%;
            /*width: 352px;
            height: 240px;*/
            -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
              width: 100%;
          height: 100%;
          }
          

          right?

          S 1 Reply Last reply Nov 25, 2018, 5:33 PM Reply Quote 0
          • S Offline
            shbatm Module Developer @Cr4z33
            last edited by Nov 25, 2018, 5:33 PM

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

            It is now offset compared to its module position.

            Play with the moduleOffset and absPosition config options. Search this forum for those and check out the README on GitHub for details of what each one does.

            C 1 Reply Last reply Nov 26, 2018, 10:04 AM Reply Quote 0
            • C Offline
              cowboysdude Module Developer @barnosch
              last edited by Nov 25, 2018, 6:18 PM

              @barnosch Are you getting any console.log errors or PM2 errors?

              1 Reply Last reply Reply Quote 0
              • E Offline
                evroom
                last edited by Nov 25, 2018, 8:10 PM

                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.30.0
                Raspberry Pi 4 Model B Rev 1.5 (8 GB RAM)
                Raspbian GNU/Linux 12 (bookworm)

                Test environment:
                MagicMirror version: v2.30.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
                • E Offline
                  evroom
                  last edited by Nov 25, 2018, 9:34 PM

                  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.30.0
                  Raspberry Pi 4 Model B Rev 1.5 (8 GB RAM)
                  Raspbian GNU/Linux 12 (bookworm)

                  Test environment:
                  MagicMirror version: v2.30.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
                  • E Offline
                    evroom
                    last edited by Nov 25, 2018, 10:39 PM

                    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.30.0
                    Raspberry Pi 4 Model B Rev 1.5 (8 GB RAM)
                    Raspbian GNU/Linux 12 (bookworm)

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

                    J 1 Reply Last reply Mar 17, 2019, 6:30 AM Reply Quote 1
                    • C Offline
                      Cr4z33 @shbatm
                      last edited by Nov 26, 2018, 10:04 AM

                      @shbatm OK thanks.

                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 11
                      • 12
                      • 13
                      • 14
                      • 15
                      • 60
                      • 61
                      • 13 / 61
                      13 / 61
                      • First post
                        128/602
                        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