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.
    • K Offline
      kasperb
      last edited by

      Hello,

      @shbatm thanks for the great module!

      In order to make my camera work in omxplayer, I need to enter the following command before the RTSP streaming URL in Terminal:

      omxplayer --avdict rtsp_transport:tcp 
      

      The RTSP stream works fine with the added command in omxplayer. Full working command for reference:

      omxplayer --avdict rtsp_transport:tcp rtsp://admin:admin@192.168.0.130:10554/tcp/av0_1
      
      

      Is there a way to add the command to the config in order for the camera to work?

      When looking at node helper.js I see the following reference:

          if (this.config[payload.name].protocol !== "udp") {
              args.unshift("--avdict", "rtsp_transport:tcp");
      

      I’ve tried to switch the protocol in the config to ‘udp’ (as well as ‘tcp’) to no avail. I hope you could point me in the right direction in order to solve this issue.

      Full config below for reference:

      
         {
                  module: 'MMM-RTSPStream',
                  position: 'middle_center',
                  config: {
                      autoStart: true,
                      rotateStreams: false,
                      rotateStreamTimeout: 10,
                      showSnapWhenPaused: false,
                      moduleWidth: 354,
                      moduleHeight: 240,
                      moduleOffset: 0,
                      localPlayer: 'omxplayer',    
                      stream1: {
                          name: '360 Cam',
                          url: 'rtsp://admin:admin@192.168.0.130:10554/tcp/av0_1',
                          protocol: 'udp',
                          snapshotUrl: '',
                          snapshotRefresh: 10, // Seconds
                          frameRate: "5",
                          port: 9999,
                      }
                  }  
      

      Thanks in advance!

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

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

        Is there a way to add the command to the config in order for the camera to work?

        Adding protocol: 'tcp' should have done the trick. You can also try just removing the protocol line completely since the default protocol is TCP. The default command for omxplayer is:

        omxplayer --avdict rtsp_transport:tcp --win 'x y w h' --live --video_queue 4 --fps 30 {{url}}
        

        The bit of code you referenced is to not include --avdict rtsp_transport:tcp when using a UDP stream.

        Also, check the console log to see what command was used to start OMXPlayer. It should print the list of arguments.

        1 Reply Last reply Reply Quote 0
        • K Offline
          kasperb
          last edited by

          @shbatm Thanks for clarifying. I’ve removed protocol: 'tcp' from the config.

          When executing the default command in Terminal, the video displays properly on my screen.

          The MM logs indicate that the stream is started accordingly as well (see below), but unfortunately still nothing is visible on my Mirror.

          0|mm       | Starting stream stream1 with args: [
          0|mm       |     "--avdict rtsp_transport:tcp",
          0|mm       |     "--win",
          0|mm       |     "379.5, 841.5, 731.5, 1083.5",
          0|mm       |     "--live",
          0|mm       |     "--video_queue",
          0|mm       |     "4",
          0|mm       |     "--fps",
          0|mm       |     "30",
          0|mm       |     "rtsp://admin:admin@192.168.0.130:10554/tcp/av0_1"
          0|mm       | ]
          
          
          1 Reply Last reply Reply Quote 0
          • S Offline
            shbatm Module Developer
            last edited by

            @kasperb - I have a suspicion – I think this is the same issue @Niggich was having where OMXPlayer doesn’t like non-integer window dimensions.

            Please try changing the moduleOffset: 0, setting to 0.5 and see if the video will work. If it works, you can change the offset back to 0 and try updating the module with the patch I just pushed:

            cd ~/MagicMirror/modules/MMM-RTSPStream
            git fetch --all
            git pull
            

            If you experience issues with the stream stopping after running for a few days, I am still finalizing work on another branch to resolve this: wip_patch which runs OMXPlayer through pm2 so it will automatically restart feed and hopefully be more stable.

            B K 2 Replies Last reply Reply Quote 0
            • B Offline
              barnosch @shbatm
              last edited by

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

              If you experience issues with the stream stopping after running for a few days, I am still finalizing work on another branch to resolve this: wip_patch which runs OMXPlayer through pm2 so it will automatically restart feed and hopefully be more stable.

              Great! Looking forward to it.

              1 Reply Last reply Reply Quote 0
              • K Offline
                kasperb @shbatm
                last edited by

                @shbatm I’ve tried changing the moduleOffset to 0.5, as well as some other experimental values, but unfortunately that didn’t do the trick.

                The configuration itself should work, as I had it working with a different RTSP cam previously.

                K 1 Reply Last reply Reply Quote 0
                • J Offline
                  Johans
                  last edited by

                  Hi,
                  Can’t get this up and running.
                  tried to figure out the problem but as i’m newbie i’m missing the skills to locate the problem.
                  what I have done so far:
                  Tested my Foscam stream with VLC. This didn’t worked either. error message:

                  //Uw invoer kan niet geopend worden:
                  VLC kon de MRL 'rtsp://garden:garden1000%@192.168.1.241:1052/Videomain' niet openen. Controleer het logboek voor details.
                  
                  

                  then tested VLC with default stream - and this is working fine.
                  Next installed omxplayer and applied my camera stream as follows.

                  //sudo omxplayer -o hdmi rtsp://garden:garden1000%@192.168.1.241:1052/videoMain
                  
                  Video codec omx-h264 width 1280 height 720 profile 66 fps 8.333333
                  Audio codec pcm_mulaw channels 1 samplerate 8000 bitspersample 8
                  Subtitle count: 0, state: off, index: 1, delay: 0
                  V:PortSettingsChanged: 1280x720@8.33 interlace:0 deinterlace:0 anaglyph:0 par:1.00 display:0 layer:0 alpha:255 aspectMode:0
                  
                  
                  

                  This works perfect, getting full image on the display.
                  conclusion: software is OK - just weird that my stream is not working on VLC.
                  could it because password has special char ‘%’ in it?

                  as omxplayer seams to work, I went back to config and added omxplayer.
                  switched to the wip branch.
                  started mirror - nothing happens - i get a blank screen. - below my config

                  //{
                  		            module: 'MMM-RTSPStream',
                  			    classes: 'default everyone',
                  		            position: 'middle_center',
                  		            config: {
                  		                autoStart: true,
                  		                rotateStreams: false,
                  		                rotateStreamTimeout: 10,
                  		                showSnapWhenPaused: false,
                  		                moduleWidth: 354,
                  		                moduleHeight: 240,
                  				localPlayer: 'omxplayer',
                  		                stream1: {
                  		                    name: 'Webcam 1 Test Stream',
                  		                    url: 'rtsp://garden:garden1000%@192.168.1.241:1052/videoMain',
                  		                    snapshotUrl: '',
                  		                    snapshotRefresh: 10, // Seconds
                  		                    frameRate: "25",
                  		                    port: 9999,
                  		                }
                  		            }
                        		  },
                  

                  without omxplayer and master branch active, I see the video play icon on the mirror, but nothing is displayed.

                  any ideas help to get this running would be great.

                  Also installed MMM-IP webcam but also no image from the webcam.

                  J K 2 Replies Last reply Reply Quote 0
                  • J Offline
                    Johans @Johans
                    last edited by

                    Switched back to master branch
                    started in dev mode.
                    error info see picture
                    0_1507669789919_Error RTSPStream.png

                    S 1 Reply Last reply Reply Quote 0
                    • K Offline
                      kasperb @kasperb
                      last edited by

                      @shbatm I did a fresh install of the module, and am pleased to inform you that it’s working fine now. Thanks for your help!

                      1 Reply Last reply Reply Quote 0
                      • K Offline
                        kasperb @Johans
                        last edited by

                        @Johans I had a similar issue, and was able to resolve it by re-installing the module.

                        I just realized that I also added the cam’s ip to the IP whitelist and moved this module to the top of the config; not sure if that did anything, but mine is working now, so it might be worth a shot.

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

                          @Johans Which other modules are you using? It looks like you may be using something like MMM-ProfileSwitcher, there may be a conflict between these modules or it may be because of the % symbol in the password.

                          Also, when you switched to the wip branch, did you remember to re-run npm install in that folder? There are some additional dependencies for the wip branch.

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

                            @shbatm

                            re-installed module, changed IPcams password and removed the ‘%’
                            Result: No live stream.
                            swiched module to wip branch for usage with omxplayer:
                            Result OK, I can see the live stream from the IPCAM - so that is working.

                            so thanks for the feedback.

                            1 Reply Last reply Reply Quote 0
                            • J Offline
                              Johans @kasperb
                              last edited by

                              @kasperb
                              Re-installed - loaded wip branch and now it’s working - thx

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

                                Version 1.2.1 (Updated 15 Oct 2017) Now Available on ‘master’ branch

                                • Now uses hardware-accelerated OMXPlayer as default player for local video
                                • Resolved latency issues
                                • Uses PM2 to control stream playback – automatically restarts streams when they close
                                • Fullscreen, custom window and offset options now available.
                                • Important - please update your configurations after updating this module. as some settings have changed. This new version includes a new configuration tool for building your configuration section.

                                Fresh Install:

                                See the installation instructions on the README.

                                To switch back from the ‘wip’ branch:

                                (Only necessary if you want to, the ‘wip’ and ‘master’ are the same currently, but I will update the ‘wip’ with new features and bug-fixes first for testing. If you want to beta test, stay on ‘wip’)

                                cd ~/MagicMirror/modules/MMM-RSTPStream
                                git checkout master
                                git pull
                                npm install
                                http-server -p 9999
                                # From a web browser, navigate to http://mirror-ip:9999/config.html
                                # Once your config is made, press Ctrl+C to exit the config builder
                                # Restart your mirror and test!
                                
                                J N 2 Replies Last reply Reply Quote 1
                                • J Offline
                                  Johans @shbatm
                                  last edited by

                                  @shbatm

                                  Nice work man.
                                  One small question: white box is not in line with the video window.
                                  I added this line in the config

                                  //      autoStart: true,
                                  	rotateStreams: false,   //changed true to false		           
                                          rotateStreamTimeout: 10,    // seconds
                                  	moduleWidth: 354,
                                  	moduleHeight: 240,
                                  moduleOffset: { top: 20, left: -20 },		
                                          localPlayer: 'omxplayer',
                                          remotePlayer: 'none',
                                          showSnapWhenPaused: true,
                                          remoteSnaps: true,
                                  

                                  but this doesn’t change anything, position of video window isn’t moved.
                                  how can I change the position?

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

                                    @Johans I just tried this on my mirror and was able to get the video feed to move without a problem. Did you try restarting the mirror & video feed after you made the change? You can also try making larger changes to make sure it’s actually moving : moduleOffset: { left -200, top: 200} or try just moduleOffset: 50 to make sure it works.

                                    An alternative is to watch the console log for the parameters used:

                                    Starting stream stream1 with args: [
                                        "--avdict",
                                        "rtsp_transport:tcp",
                                        "--win",
                                        "731, 439, 1259, 799",  # --- this is the position it tries to draw the video
                                        ...
                                    

                                    And then add the following inside the stream1: { section to specify the exact position you want the video to show using the numbers from the log and your desired offset:

                                    absPosition: { top: XX, right: XX, bottom: XX, left: XX },
                                    J 1 Reply Last reply Reply Quote 0
                                    • B Offline
                                      barnosch
                                      last edited by

                                      i updated the module from work, but did not start the server thing to get the server config page.
                                      Later at home i could not start the server anymore to reach the config page.
                                      Is that mandatory?

                                      The stream runs good, without any changes in the config. Hopefully it does not crash so often anymore.
                                      I saw that it launches now another pm2 session just for the stream. thats nice.
                                      So i can restart both sessions (stream and mirror) with a script and do not need to reboot the whole pi anymore, when i change something.

                                      S 1 Reply Last reply Reply Quote 0
                                      • J Offline
                                        Johans @shbatm
                                        last edited by

                                        @shbatm
                                        Made some larger changes and saw the video moves. Now it’s perfect within the box.
                                        I’ve noticed that when video is out of the box window, the omxplayer is not stopped or killed. Video still remains visible even MM has stopped.
                                        At moment the video was perfect within the box, it also kills perfect the video stream.
                                        Just wanted to let you know this.
                                        thanks for the support.
                                        J.

                                        S 1 Reply Last reply Reply Quote 0
                                        • N Offline
                                          Niggich @shbatm
                                          last edited by Niggich

                                          @shbatm At first, thx for your great work. I finally tried to update the module but after npm installI get an Error message like this.

                                          > MMM-RTSPStream@1.2.1 postinstall /home/pi/MagicMirror/modules/MMM-RTSPStream
                                          > ./install_sd_patch.sh && sudo npm i -g http-server
                                          
                                          Applying Graceful Shutdown patch to MagicMirror.
                                          error: Anwendung des Patches fehlgeschlagen: js/electron.js:96
                                          error: js/electron.js: Patch konnte nicht angewendet werden
                                          
                                          npm ERR! Linux 4.9.48-v7+
                                          npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
                                          npm ERR! node v4.3.2
                                          npm ERR! npm  v2.14.12
                                          npm ERR! code ELIFECYCLE
                                          npm ERR! MMM-RTSPStream@1.2.1 postinstall: `./install_sd_patch.sh && sudo npm i -g http-server`
                                          npm ERR! Exit status 1
                                          npm ERR! 
                                          npm ERR! Failed at the MMM-RTSPStream@1.2.1 postinstall script './install_sd_patch.sh && sudo npm i -g http-server'.
                                          npm ERR! This is most likely a problem with the MMM-RTSPStream package,
                                          npm ERR! not with npm itself.
                                          npm ERR! Tell the author that this fails on your system:
                                          npm ERR!     ./install_sd_patch.sh && sudo npm i -g http-server
                                          npm ERR! You can get their info via:
                                          npm ERR!     npm owner ls MMM-RTSPStream
                                          npm ERR! There is likely additional logging output above.
                                          
                                          npm ERR! Please include the following file with any support request:
                                          npm ERR!     /home/pi/MagicMirror/modules/MMM-RTSPStream/npm-debug.log
                                          
                                          

                                          I tried to update and a Fresh install but at both ways I get the same Error.

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

                                            @Niggich It appears it is installing correctly and the post-install is not working, please try to run the following commands and see which one fails:

                                            # Change directory
                                            cd ~/MagicMirror/modules/MMM-RTSPStream 
                                            # Install the "Graceful Shutdown" patch on MM core (Issue #1056)
                                            ./install_sd_patch.sh
                                            # Install the Node.js http-server module
                                            sudo npm i -g http-server
                                            
                                            N 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
                                            • 9
                                            • 10
                                            • 11
                                            • 12
                                            • 13
                                            • 30
                                            • 31
                                            • 11 / 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