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 @kasperb
      last edited by

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

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

      @kasperb I actually added some code parts in the voice command module as per suggestion of its developer.

      If you’re using MMM-AssistantMk2 then I can tell you what to do (not if using other modules). :)

      Yes, I’m using MMM-AssistantMk2. Would love to hear your suggestion.

      @Cr4z33 Thank you - this works perfect. Much appreciated.

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

        @kasperb you’re welcome however forgot to say that this was done by @Sean . ;)

        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:

          “RTSP_ACTIVATE”: {
          notificationExec: {
          notification: “RTSP-PLAY”,
          payload: “all”
          }
          },

          Regarding the other issue we’ve been working through – I sent you a chat, but if you have this part in your config with the rest of the TV channels–take it out and see if that fixes the problem you’ve been having with the wrong stream.

          I think this is being called by AssistantMk2 after calling the individual stream.

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

            @shbatm thank you mate deleting that part made everything work brilliantly!

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

              So I am having finally some spare time to explain better how to to switch stream by voice control (think at ie. IP cameras, Internet TV/Radio channels, etc.).

              We are going to use OMXplayer here (can’t say how it will be the result with VLC honestly…) and the good voice command module MMM-AssistantMk2.
              So set it up properly and once you have it up and running come back and go on reading, otherwise contact @Sean (the author of that module) asking for help. :)

              Open config.js with a text editor and go to the MMM-AssistantMk2 module section.
              Replace

              			config: {
              

              with

              			config: {
              					onActivate: {
              							timer: 0,
              							command: "RTSP_DEACTIVATE"
              							},
              					transcriptionHook: {
              								"CHANNEL_1": {
              										pattern: "TV 1",
              										command: "CHANGE_CHANNEL_1"
              										},
              								"CHANNEL_2": {
              										pattern: "TV 2",
              										command: "CHANGE_CHANNEL_2"
              										},
              								"CHANNEL_3": {
              										pattern: "TV 3",
              										command: "CHANGE_CHANNEL_3"
              										},
              								"CHANNEL_4": {
              										pattern: "TV 4",
              										command: "CHANGE_CHANNEL_4"
              										},
              								"CHANNEL_5": {
              										pattern: "Radio 1",
              										command: "CHANGE_CHANNEL_5"
              										},
              								"CHANNEL_6": {
              										pattern: "Radio 2",
              										command: "CHANGE_CHANNEL_6"
              										},
              								"CHANNEL_7": {
              										pattern: "Radio 3",
              										command: "CHANGE_CHANNEL_7"
              										}
              								},
              					command: {
              							"CHANGE_CHANNEL_1": {
              										notificationExec: {
              													notification: "RTSP-PLAY",
              													payload: "stream1"
              													}
              									},
              							"CHANGE_CHANNEL_2": {
              										notificationExec: {
              													notification: "RTSP-PLAY",
              													payload: "stream2"
              													}
              									},
              							"CHANGE_CHANNEL_3": {
              										notificationExec: {
              													notification: "RTSP-PLAY",
              													payload: "stream3"
              													}
              									},
              							"CHANGE_CHANNEL_4": {
              										notificationExec: {
              													notification: "RTSP-PLAY",
              													payload: "stream4"
              													}
              									},
              							"CHANGE_CHANNEL_5": {
              										notificationExec: {
              													notification: "RTSP-PLAY",
              													payload: "stream5"
              													}
              									},
              							"CHANGE_CHANNEL_6": {
              										notificationExec: {
              													notification: "RTSP-PLAY",
              													payload: "stream6"
              													}
              									},
              							"CHANGE_CHANNEL_7": {
              										notificationExec: {
              													notification: "RTSP-PLAY",
              													payload: "stream7"
              													}
              									},
              							"RTSP_DEACTIVATE": {
              										notificationExec: {
              													notification: "RTSP-STOP",
              													payload: "all"
              													}
              									},
              					},
              

              Please note that the aforementioned stream names (ie. “TV 1”) used after pattern: HAVE TO BE the same that we will use below in the MMM-RTSPStream module or it won’t work!
              Of course they are all examples so fit them to your needs, but remember to use then the same naming.

              So let’s go to enter MMM-RTSPStream like the following:

              		{
              			module: "MMM-RTSPStream",
              			position: "bottom_right",
              			disabled: false,
              			config: {
              				autoStart: false, // Streams will start by voice commands only
              				rotateStreams: true,
              				rotateStreamTimeout: 0,
              				shutdownDelay: 0,
              				moduleWidth: 420, // Adjust it to your needs
              				moduleHeight: 236, // Adjust it to your needs
              				localPlayer: 'omxplayer',
              				remotePlayer: 'none',
              				showSnapWhenPaused: false,
              				remoteSnaps: false,
              				stream1: {						
              						name: 'TV 1',
              						url: 'IPofstream1',
              						protocol: "tcp",
              						frameRate: 'undefined',
              						width: 420, // Adjust it to your needs
              						height: 236 // Adjust it to your needs
              		            		},
              				stream2: {						
              						name: 'TV 2',
              						url: 'IPofstream2',
              						protocol: "tcp",
              						frameRate: 'undefined',
              						width: 420, // Adjust it to your needs
              						height: 236 // Adjust it to your needs
              		            		},
              				stream3: {						
              						name: 'TV 3',
              						url: 'IPofstream',
              						protocol: "tcp",
              						frameRate: 'undefined',
              						width: 420, // Adjust it to your needs
              						height: 236 // Adjust it to your needs
              		            		},
              				stream4: {						
              						name: 'TV 4',
              						url: 'IPofstream',
              						protocol: "tcp",
              						frameRate: 'undefined',
              						width: 440, // Adjust it to your needs
              						height: 247 // Adjust it to your needs
              		            		},
              				stream5: {						
              						name: 'Radio 1',
              						url: 'IPofstream',
              						protocol: "tcp",
              						frameRate: 'undefined',
              						width: 420, // Adjust it to your needs
              						height: 236 // Adjust it to your needs
              		            		},
              				stream6: {						
              						name: 'Radio 2',
              						url: 'IPofstream6',
              						protocol: "tcp",
              						frameRate: 'undefined',
              						width: 440, // Adjust it to your needs
              						height: 247 // Adjust it to your needs
              		            		},
              				stream7: {						
              						name: 'Radio 3',
              						url: 'IPofstream7',
              						protocol: "tcp",
              						frameRate: 'undefined',
              						width: 420, // Adjust it to your needs
              						height: 236 // Adjust it to your needs
              		            		}
              

              This should be all.
              You can add as many streams as you want (I don’t see the problem if you run them one by one). ;)

              1 Reply Last reply Reply Quote 0
              • C Offline
                costascontis
                last edited by

                i am using the develop branch of the module with vlc and latest MM.The feed is playing alright but it seems it is over MM and when i click over another module the feed dissapears going under.How can i solve that?

                bheplerB 1 Reply Last reply Reply Quote 0
                • bheplerB Offline
                  bhepler Module Developer @costascontis
                  last edited by

                  @costascontis - There may be a switch in VLC player that tells it to stay on top. I’d start looking at switches there.

                  1 Reply Last reply Reply Quote 0
                  • W Offline
                    website19880927
                    last edited by

                    this is my configuration:
                    {
                    module: “MMM-RTSPStream”,
                    position: “middle_center”,
                    header: “cam”,
                    config: {
                    autoStart: true,
                    rotateStreams: true,
                    rotateStreamTimeout: 10,
                    moduleWidth: 354,
                    moduleHeight: 240,
                    localPlayer: ‘omxplayer’,
                    remotePlayer: ‘none’,
                    showSnapWhenPaused: true,
                    remoteSnaps: true,
                    stream1: {
                    name: ‘c1’,
                    url: ‘rtsp://admin:a1234567@192.168.1.14/Streaming/Channels/1’,
                    frameRate: ‘undefined’,
                    hdUrl: ‘rtsp://admin:a1234567@192.168.1.14/Streaming/Channels/1’,
                    snapshotType: ‘url’,
                    snapshotRefresh: 10,
                    width: 354,
                    height: 240,
                    },
                    }
                    }

                    image
                    no response ,was it the problem of resolution,and how to configure that ,I tried many ways and still not success, and I can use my vlc to get the stream of the camera ,but was anything wrong with other configuration,no idea!
                    image

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

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

                      localPlayer: ‘omxplayer’

                      Try using VLC instead.

                      Replace
                      localPlayer: ‘omxplayer’
                      with
                      localPlayer: ‘vlc’

                      However you will have to use the developer branch of this module.

                      See here for instructions on how to install it:
                      https://github.com/shbatm/MMM-RTSPStream/tree/develop

                      I didn’t test 4K streaming, but it should be OK up to 1080p.

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

                        Hey Guys,

                        any Solution to install the Modul at Ubuntu without Omxplayer? The option with vlc sounds good…

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

                          Believe it or not, I found that OMX is by far the most stable of setups in my use case. Odd, I know.

                          I do restart my Mirror daily, however.

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

                          G 1 Reply Last reply Reply Quote 0
                          • G Offline
                            goprojojo @BKeyport
                            last edited by

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

                            Believe it or not, I found that OMX is by far the most stable of setups in my use case. Odd, I know.

                            I do restart my Mirror daily, however.

                            Are you using a script to auto restart and could you share?

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

                              @goprojojo I guess he just scheduled the reboot command into cron (Google for it). ;)

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

                                @goprojojo

                                Cron.

                                #      m       h        dom    mon     dow     command
                                       15      2        *      *       *       sudo reboot
                                

                                Why 2:15 you might ask? 2 AM daily my camera reboots and usually corrupts the display - takes about 10 minutes for it to restart where it don’t, and 5 more minutes to make sure it’s clear of it’s reboot and upgrade routines.

                                I recommend https://crontab.guru/ to help you build cron tasks.

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

                                1 Reply Last reply Reply Quote 1
                                • P Offline
                                  p4lsec
                                  last edited by

                                  Does anyone know if it’s possible to use moduleOffset from within a single stream (stream3)? I couldn’t get it to work.

                                  I have three streams going. The first two are side-by-side, but the third is centered under them. I would like the third to be left-justified. Any ideas?

                                  J 1 Reply Last reply Reply Quote 0
                                  • J Offline
                                    jngo @p4lsec
                                    last edited by

                                    This post is deleted!
                                    1 Reply Last reply Reply Quote 0
                                    • J Offline
                                      jngo @evroom
                                      last edited by jngo

                                      @evroom
                                      I am a newbie with Magic Mirror and Raspberry world so I would really appreciate if you could provide me a step-by-step instruction.
                                      I have the same challenge like yours: Although I set my stream video window to “bottom_right”, it appears to be in the between of “bottom_center” and “bottom_right”. In another word, it is completely located at the weirdest position: a little bit above the “bottom_center”, too much “left” from the “bottom_right” of the screen, etc…

                                      I follow your post to change the parameter of “moduleOffset” value but as you already stated, the moduleOffset did not work. The stream video window is still way off from where I want it to be. I am not familiar with the “.css” yet so if you are so kind, please point me to how I can make change to it?

                                      So, if possible, could you please kindly provide me a step-by-step instruction on how to align the stream windows with the “bottom_right” where it lines-up with the “current_weather” module (top-right)

                                      Thank you

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

                                        @jngo
                                        Can you post the moduleWidth, moduleHeight and the width and height from the stream?

                                        And if you see it in the pm2 logs, this info:

                                        Starting stream stream1 with args: [
                                            "--avdict",
                                            "rtsp_transport:tcp",
                                            "--win",
                                            "738, 63, 1090, 305",
                                        

                                        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 evroom

                                          Just to make it clear, I am not using any module anymore that uses omxplayer.
                                          For me MMM-RTSPStream stopped to work for my install and use a while ago (reason unknown) and for MMM-Dreambox I do not have place on my screen (but a nice module nevertheless).
                                          I have kept my MagicMirror pretty simple and static, just 5 modules and a video stream from my outdoor IP-camera.
                                          No fancy things with rotating, voice commands, gesture commands, etc.
                                          Everything that really matters in one view.

                                          As an alternative for MMM-RTSPStream, I just use pm2 for my video stream.
                                          The omxplayer is an overlay in all uses anyway, so I just ‘overlay’ it on top of the MM modules.
                                          I left space on the left side of the MagicMirror by only using top and bottom positions.
                                          pm2 controls the processes, like with MM (I enabled it using the same commands for MM, except that I used axis iso mm).

                                          That being said, I can try activating MMM-RTSPStream again to be able support a bit.

                                          pi@MagicPi:~ $ pwd
                                          /home/pi
                                          pi@MagicPi:~ $ cat axis.sh
                                          #!/bin/bash
                                          echo "Starting Axis stream ..."
                                          
                                          # No rotation
                                          #omxplayer --avdict rtsp_transport:tcp --live --video_queue 4 --fps 30 --win "0 625 590 957" rtsp://axisviewer:Trosknurt12@192.168.178.56/axis-media/media.amp?resolution=640x360
                                          
                                          # Rotate to match custom.css rotation
                                          # 640x360 == --win 'x1 y1 x2 y2' == "600 300 960 940" == x2 - x1 & y2 - y1
                                          omxplayer --avdict rtsp_transport:tcp --orientation 270 --live --video_queue 4 --fps 30 --win "600 300 960 940" rtsp://user:password@192.168.178.56/axis-media/media.amp?resolution=640x360
                                          pi@MagicPi:~ $ pm2 list
                                          ┌──────────┬────┬─────────┬──────┬───────┬────────┬─────────┬────────┬─────┬────────────┬──────┬──────────┐
                                          │ App name │ id │ version │ mode │ pid   │ status │ restart │ uptime │ cpu │ mem        │ user │ watching │
                                          ├──────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼────────────┼──────┼──────────┤
                                          │ axis     │ 1  │ 2.5.0   │ fork │ 11127 │ online │ 1066    │ 2h     │ 0%  │ 220.0 KB   │ pi   │ disabled │
                                          │ mm       │ 0  │ 2.5.0   │ fork │ 4658  │ online │ 41      │ 14D    │ 0%  │ 12.0 KB    │ pi   │ disabled │
                                          

                                          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
                                          • J Offline
                                            jngo
                                            last edited by jngo

                                            @evroom
                                            I keep pretty much all modules as default (just like yours): calendar, event, weather now, forecast, news feed, and this stream video from my camera. That’s all I need.
                                            My screen is a 22" Dell monitor and I do not rotate it so it’s horizontal. But because the stream video window appears in the middle of the whole thing, the layout of the modules on the screen looks so bad so I hope I could find the way to aligned it (bottom-right) with the right edge of my weather now (which is at top-right)

                                            My info is below

                                            Starting stream stream1 with args: [
                                            “–avdict”,
                                            “rtsp_transport:tcp”,
                                            “–win”,
                                            “1268, 511, 1620, 753”,
                                            “–live”,
                                            “–video _queue”,

                                            My stream video window size is 640 x 360 px

                                            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
                                            • 11
                                            • 12
                                            • 13
                                            • 14
                                            • 15
                                            • 30
                                            • 31
                                            • 13 / 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