• 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.
  • 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
                • S Offline
                  shbatm Module Developer
                  last edited by Sep 23, 2018, 6:56 PM

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

                  /user=USERNAME&password=PASSWORD&channel=1&stream=0.sdp

                  Looking at the logs it looks like it’s trying to launch everything correctly. Just to confirm:

                  1. The stream works correctly in VLC using the URL you have above.
                  2. Since you’re using OMXPlayer – you are testing on the mirror with the RPi connected (not with VNC/Remote Desktop, etc). You won’t see playback from OMXPlayer on anything but the monitor connected to the RPi.

                  You can try:

                  1. Make sure the stream works with OMXPlayer by testing with the command line (shut down Magic Mirror first):
                    omxplayer --avdict rtsp_transport:tcp --win 800, 421, 1120, 661 --live --video_queue 4 --fps 30 rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=0.sdp
                    
                  2. Test the above with and without .sdp at the end of the path. I noticed in your log above for some reason it didn’t pass the extension .sdp. I don’t know if this is the issue or not. You can also try without the --win argument to test it full screen.
                  3. Using UDP instead of TCP, put protocol: "udp" in your stream config (to test from command line, remove the rtsp_transport:tcp argument.
                  4. Using stream=1 to test the lower resolution sub-stream. Sometimes OMXPlayer just refuses to do anything (without any errors) if it doesn’t have enough video memory–I’ve only seen it happen trying to play 3 streams at once though.
                  5. Try adding a ? at the end of the stream url. Just something I saw while googling your url format to find out what kind of camera you have.
                  E 1 Reply Last reply Sep 23, 2018, 11:10 PM Reply Quote 0
                  • E Offline
                    epi
                    last edited by Sep 23, 2018, 11:06 PM

                    This post is deleted!
                    1 Reply Last reply Reply Quote 0
                    • E Offline
                      epi @shbatm
                      last edited by Sep 23, 2018, 11:10 PM

                      @shbatm

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

                      Looking at the logs it looks like it’s trying to launch everything correctly. Just to confirm:

                      1. The stream works correctly in VLC using the URL you have above.
                      2. Since you’re using OMXPlayer – you are testing on the mirror with the RPi connected (not with VNC/Remote Desktop, etc). You won’t see playback from OMXPlayer on anything but the monitor connected to the RPi.
                      1. Yes, it does work in VLC.
                      2. I control RPi via SSH & VNC, but it is connected via HDMI to monitor and I don’t see any output on the actual screen neither via VNC, nor actual screen.

                      Testing:

                      1. By making tests I encounter an error:
                      pi@raspberrypi:~ $ sudo reboot
                      login as: pi
                      pi@192.168.2.111's password:
                      Linux raspberrypi 4.14.50-v7+ #1122 SMP Tue Jun 19 12:26:26 BST 2018 armv7l
                      
                      The programs included with the Debian GNU/Linux system are free software;
                      the exact distribution terms for each program are described in the
                      individual files in /usr/share/doc/*/copyright.
                      
                      Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
                      permitted by applicable law.
                      Last login: Mon Sep 24 01:55:35 2018
                      
                      SSH is enabled and the default password for the 'pi' user has not been changed.
                      This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
                      
                      pi@raspberrypi:~ $ pm2 stop mm
                      [PM2] Applying action stopProcessId on app [mm](ids: 0)
                      [PM2] [mm](0) ✓
                      ┌──────────┬────┬──────┬─────┬─────────┬─────────┬────────┬─────┬────────┬──────┬──────────┐
                      │ App name │ id │ mode │ pid │ status  │ restart │ uptime │ cpu │ mem    │ user │ watching │
                      ├──────────┼────┼──────┼─────┼─────────┼─────────┼────────┼─────┼────────┼──────┼──────────┤
                      │ mm       │ 0  │ fork │ 0   │ stopped │ 0       │ 0      │ 0%  │ 0 B    │ pi   │ disabled │
                      └──────────┴────┴──────┴─────┴─────────┴─────────┴────────┴─────┴────────┴──────┴──────────┘
                       Use `pm2 show <id|name>` to get more details about an app
                      pi@raspberrypi:~ $ omxplayer --avdict rtsp_transport:tcp --win 800, 421, 1120, 661 --live --video_queue 4 --fps 30 rtsp://192.168.2.237:554/user=USER&password=PASS&channel=1&stream=0.sdp
                      [1] 1084
                      [2] 1085
                      [3] 1086
                      pi@raspberrypi:~ $ File "421," not found.
                      pi@raspberrypi:~ $
                      
                      
                      1. Did not work
                      2. Also did not work, this time another file is not being found
                      omxplayer --avdict 421, 1120, 661 --live --video_queue 4 --fps 30 rtsp://192.168.2.237:554/user=USER&password=PASS&channel=1&stream=0
                      [7] 1213
                      [8] 1214
                      [9] 1215
                      [4]   Exit 1                  omxplayer --avdict 421, 1120, 661 --live --video_queue 4 --fps 30 rtsp://192.168.2.237:554/user=USERNAME
                      [5]   Done                    password=PASSWORD
                      [6]   Done                    channel=1
                      pi@raspberrypi:~ $ File "1120," not found.
                      
                      
                      1. 5., Did not work
                      pi@raspberrypi:~ $ File "421," not found.
                      
                      1 Reply Last reply Reply Quote 0
                      • 1
                      • 2
                      • 9
                      • 10
                      • 11
                      • 12
                      • 13
                      • 60
                      • 61
                      • 11 / 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