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.9m 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.
    • 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
                        • 1
                        • 2
                        • 25
                        • 26
                        • 27
                        • 28
                        • 29
                        • 60
                        • 61
                        • 27 / 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