• 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.6m 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.
  • G Offline
    goprojojo
    last edited by May 22, 2018, 6:04 PM

    I need some help with this module. I can see the RTSP stream without issues BUT when I use it with the MMM-Wallpaper then the stream doesn’t show. Any suggestions?

    1 Reply Last reply Reply Quote 0
    • E Offline
      evroom
      last edited by Jun 16, 2018, 9:11 PM

      Hello,

      I have been playing with MagicMirror for 2 weeks now and am slowly getting the hang of it.
      It was the MMM-RTSPStream that sparked it all and made me decide to dedicate a monitor for all the other nice modules.

      Now I have a question concerning MMM-RTSPStream.
      The streams are ordered from left to right and then from top to bottom, all depending on the size of the windows.
      I would like to have a bit more control, like with tables.
      My goal for now is to have a bigger window on the left and 2 little windows on the right.

      I have no idea how to place a picture, so I try to place a link to a picture.
      This shows the current implementation, with 2 streams.

      Current implementation - 2 streams

      Any idea where and how to achieve that (if possible at all) ??

      I guess the MMM-RTSPStream.css is a place to start, but for the moment I fail to understand it to be able to make the wanted changes.
      Due to a lack of knowledge of css, but I am willing to learn.

      Thanks in advance and best regards,

      Erik-Jan

      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)

      S 1 Reply Last reply Jun 17, 2018, 10:35 PM Reply Quote 0
      • S Offline
        shbatm Module Developer @evroom
        last edited by Jun 17, 2018, 10:35 PM

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

        I guess the MMM-RTSPStream.css is a place to start

        @evroom – First of all welcome to the community.

        You should be able to do what you’re asking by manipulating the CSS (or another way I’ll mention below).

        For CSS:

        First, you should put all customizations in the ~/MagicMirror/css/custom.css file so they don’t get overwritten by any module or MagicMirror updates.

        Try adding this to custom.css:

        .MMM-RTSPStream .innerWrapper {
            float: left;
        }
        

        Without float (original):
        0_1529274362847_Capture.PNG

        With float (and reducing the size of the other two streams by half and the moduleWidth settings in my config):
        0_1529274464031_Capture2.PNG

        Background if needed for further changes: the MMM-RSTPStream draws all of the streams inside of a single, outerdiv with the "MMM-RTSPStream wrapper" classes. Each stream consists of an "MMM-RTSPStream innerWrapper"-classed div block which contains all the controls, canvas, and screenshot for each stream. This is the tag you’ll need to manipulate to get it to do what you want. If you need to override one particular stream’s size/container, you can reference it in CSS by using it’s ID, which ends in the stream number. For example, something like this:

        #iw_stream1 {
            width: 123px;
        }
        

        Additional option If you’re using Raspberry Pi directly attached to the monitor and using OMXPlayer to play the streams, you can also turn off the borders and send exact sizes and locations for each stream on the monitor using the absPosition parameter. See the README on GitHub for more details. This will break any thumbnail or remote playback, though.

        1 Reply Last reply Reply Quote 0
        • E Offline
          evroom
          last edited by Jun 18, 2018, 8:30 PM

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

          .MMM-RTSPStream .innerWrapper {
          float: left;
          }

          @shbatm
          Thanks a lot! Works just fine.
          A bit of calculating and adjusting the margin, and it does what I wanted.

          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 Jun 18, 2018, 10:21 PM

            Hi,

            Quite happy with MMM-RTSPStream so far; thx to those that contributed to it.

            Next thing I am trying to use MMM-RTSPStream for, is streaming sat-tv from a Dreambox & VU+ receivers.
            I am able to stream a channel using:

            omxplayer --vol -3000 --win “0 0 480 320” --live http://192.168.178.28:8001/1:0:19:283D:3FB:1:C00000:0:0:0:

            It is not a rtsp stream, but it can use omxplayer for streaming.
            When I try to use MMM-iFrame, I can add the URL, but then it tries to open a program that can play mpg (and MagicMirror won’t start).
            When I use it to stream using my browser (on my PC), I have it open VLC player, but installing VLC on Raspberry (using HW acceleration) is quite an act, so I would prefer to use omxplayer.

            Could this be done ?

            I am not so familiar with JavaScript and CCS (yet), more a Perl guy, but am willing to assist and test-drive.

            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)

            A 1 Reply Last reply Dec 27, 2018, 5:20 PM Reply Quote 1
            • E Offline
              evroom
              last edited by evroom Jun 19, 2018, 9:40 AM Jun 19, 2018, 9:00 AM

              Hi,

              To come back to my own request.

              The line that works from the command line is:

              omxplayer --vol -3000 --win “0 0 480 320” --live http://192.168.178.28:8001/1:0:19:283D:3FB:1:C00000:0:0:0:

              When I look at the code
              https://github.com/shbatm/MMM-RTSPStream/blob/master/node_helper.js

              I notice following:

              –vol : not present, not really necessary, yet
              –win : present
              –live : present
              –avdict rtsp_transport:tcp : present, needed ?
              -–video_queue 4 : present, needed ?
              –fps 30 : present, needed ?

              When home I will try:

              $ omxplayer --avdict rtsp_transport:tcp --win “0 0 480 320” --live -–video_queue 4 --fps 30 http://192.168.178.28:8001/1:0:19:283D:3FB:1:C00000:0:0:0:

              And I will try:

              node_helper.js :

              if (this.config[s.name].protocol == “http”) {
              args.unshift(“–vol 3000”);
              }

              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 Jun 19, 2018, 6:44 PM

                Okay, it is actually quite simple.
                It works without any modifications.

                stream1: {
                	url: 'http://192.168.178.28:8001/1:0:19:2B66:3F3:1:C00000:0:0:0:', // ZDF HD
                	//url: 'http://192.168.178.28:8001/1:0:19:283D:3FB:1:C00000:0:0:0:', // ARD HD
                	protocol: "tcp",
                	width: 590,
                	height: 332
                }
                
                
                2|mm       | Starting stream stream1 with args: [
                2|mm       |     "--avdict",
                2|mm       |     "rtsp_transport:tcp",
                2|mm       |     "--win",
                2|mm       |     "4, 608, 594, 940",
                2|mm       |     "--live",
                2|mm       |     "--video_queue",
                2|mm       |     "4",
                2|mm       |     "--fps",
                2|mm       |     "30",
                2|mm       |     "http://192.168.178.28:8001/1:0:19:2B66:3F3:1:C00000:0:0:0:"
                2|mm       | ]
                2|mm       | Starting PM2 for omx_stream1
                2|mm       | PM2 started for omx_stream1
                
                

                It is just that the Raspberry Pi 3 Model 3 and omxplayer only can handle 1 TS stream, as it appears to be the case.
                Simular like the max. 3 RTSP camera streams.

                So, if you do not use omxplayer for something else and you want to use MMM-RTSPStream for streaming just the one TS channel, it can be used.

                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
                  epi
                  last edited by epi Sep 18, 2018, 12:32 AM Sep 16, 2018, 10:56 PM

                  Hi @shbatm & others! After install (followed your guide here https://github.com/shbatm/MMM-RTSPStream), I see a black frame with a white border, without the stream. I tried both mine stream url and samples. My sample works great via VLC. Can you help me to find an issue?

                  {
                  module: 'MMM-RTSPStream',
                  position: 'middle_center',
                  config: {
                      autoStart: true,
                      moduleWidth: 354,
                      moduleHeight: 240,
                      localPlayer: 'omxplayer',    
                      stream1: {
                          name: 'Test Stream',
                          url: 'rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=0.sdp',
                          snapshotUrl: '',
                          snapshotRefresh: 10, // Seconds
                          frameRate: "30",
                          port: 9999,
                      }
                  }
                  },
                  

                  update, after a few commas in the config I managed to get test stream up&running, but not my webcam. Any solution available? :)

                  1 Reply Last reply Reply Quote 0
                  • E Offline
                    epi
                    last edited by Sep 18, 2018, 11:29 PM

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

                    rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=0.sdp

                    I assume issue is in my stream URL either localPlayer. Any suggestions?

                    1 Reply Last reply Reply Quote 0
                    • E Offline
                      epi
                      last edited by Sep 21, 2018, 5:52 PM

                      pi@raspberrypi:~ $ pm2 logs

                      [TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option)
                      /home/pi/.pm2/pm2.log last 15 lines:
                      PM2        | [2018-09-21T20:42:51.125Z] PM2 log: App [omx_stream1] with id [1] and pid [6551], exited with code [1] via signal [SIGI                                              NT]
                      PM2        | [2018-09-21T20:42:51.132Z] PM2 log: Starting execution sequence in -fork mode- for app name:omx_stream1 id:1
                      PM2        | [2018-09-21T20:42:51.159Z] PM2 log: App name:omx_stream1 id:1 online
                      PM2        | [2018-09-21T20:42:53.221Z] PM2 log: App [omx_stream1] with id [1] and pid [6582], exited with code [1] via signal [SIGI                                              NT]
                      PM2        | [2018-09-21T20:42:53.234Z] PM2 log: Starting execution sequence in -fork mode- for app name:omx_stream1 id:1
                      PM2        | [2018-09-21T20:42:53.253Z] PM2 log: App name:omx_stream1 id:1 online
                      PM2        | [2018-09-21T20:42:59.249Z] PM2 log: Stopping app:mm id:0
                      PM2        | [2018-09-21T20:42:59.562Z] PM2 log: App [mm] with id [0] and pid [6136], exited with code [0] via signal [SIGINT]
                      PM2        | [2018-09-21T20:42:59.632Z] PM2 log: pid=6136 msg=process killed
                      PM2        | [2018-09-21T20:42:59.635Z] PM2 log: Starting execution sequence in -fork mode- for app name:mm id:0
                      PM2        | [2018-09-21T20:42:59.651Z] PM2 log: App name:mm id:0 online
                      PM2        | [2018-09-21T20:43:35.020Z] PM2 log: Stopping app:omx_stream1 id:1
                      PM2        | [2018-09-21T20:43:35.054Z] PM2 error: Process with pid 6613 already exists
                      PM2        | [2018-09-21T20:43:35.174Z] PM2 log: App [omx_stream1] with id [1] and pid [6613], exited with code [1] via signal [SIGI                                              NT]
                      PM2        | [2018-09-21T20:43:35.193Z] PM2 log: pid=6613 msg=process killed
                      
                      /home/pi/.pm2/logs/omx-stream1-error.log last 15 lines:
                      /home/pi/.pm2/logs/mm-error.log last 15 lines:
                      0|mm       | WARNING! Could not validate config file. Please correct syntax errors. Starting with default configuration.
                      0|mm       | [885:0919/041827.726584:FATAL:bus.cc(1152)] D-Bus connection was disconnected. Aborting.
                      0|mm       | WARNING! Could not validate config file. Please correct syntax errors. Starting with default configuration.
                      0|mm       | [10472:0919/213258.329193:FATAL:bus.cc(1152)] D-Bus connection was disconnected. Aborting.
                      0|mm       | TypeError: `port` or a `server` must be provided
                      0|mm       |     at new WebSocketServer (/home/pi/MagicMirror/modules/MMM-RTSPStream/node_modules/node-rtsp-stream-es6/node_modules/                                              ws/lib/WebSocketServer.js:44:11)
                      0|mm       |     at VideoStream.startListener (/home/pi/MagicMirror/modules/MMM-RTSPStream/node_modules/node-rtsp-stream-es6/src/vid                                              eoStream.js:32:24)
                      0|mm       |     at Class.startListener (/home/pi/MagicMirror/modules/MMM-RTSPStream/node_helper.js:49:32)
                      0|mm       |     at Class.socketNotificationReceived (/home/pi/MagicMirror/modules/MMM-RTSPStream/node_helper.js:257:22)
                      0|mm       |     at Socket.<anonymous> (/home/pi/MagicMirror/modules/node_modules/node_helper/index.js:113:11)
                      0|mm       |     at emitTwo (events.js:126:13)
                      0|mm       |     at Socket.emit (events.js:214:7)
                      0|mm       |     at /home/pi/MagicMirror/node_modules/socket.io/lib/socket.js:513:12
                      0|mm       |     at _combinedTickCallback (internal/process/next_tick.js:131:7)
                      0|mm       |     at process._tickCallback (internal/process/next_tick.js:180:9)
                      
                      /home/pi/.pm2/logs/mm-out.log last 15 lines:
                      0|mm       | Starting stream stream1 with args: [
                      0|mm       |     "--avdict",
                      0|mm       |     "rtsp_transport:tcp",
                      0|mm       |     "--win",
                      0|mm       |     "800, 421, 1120, 661",
                      0|mm       |     "--live",
                      0|mm       |     "--video_queue",
                      0|mm       |     "4",
                      0|mm       |     "--fps",
                      0|mm       |     "30",
                      0|mm       |     "rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=0"
                      0|mm       | ]
                      0|mm       | PM2: omx_stream1 already running. Stopping old instance...
                      0|mm       | Starting PM2 for omx_stream1
                      0|mm       | PM2 started for omx_stream1
                      
                      
                      
                      
                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 8
                      • 9
                      • 10
                      • 11
                      • 12
                      • 60
                      • 61
                      • 10 / 61
                      • 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