MagicMirror² v2.14.0 is available! For more information about this release, check out this topic.

MMM-RTSPStream success

  • I’ve finally gotten a video stream that’s stable on my MM2 using MMM-RTSPStream. I thought I’d share the set-up to give back to this community that has been so helpful to me!
    Webcam - Reolink E1 Pro (
    Raspberry Pi 4 Model B
    OS - Raspberry Pi OS 32-bit
    Magic MIrror 2.13.0 (installed using sdetweil scripts at
    Followed instructions for camera set-up
    Installed MMM_RTSPStream following instructions and config.html link to start
    Could not use vlc, used omxplayer instead
    Install omxplayer if necessary (using Snapcraft at
    Final, working configuration:

        module: "MMM-RTSPStream",
        position: "bottom_right",
        config: {
            autoStart: true,
            rotateStreams: false,
            rotateStreamTimeout: 10,
            moduleWidth: 308,
            moduleHeight: 231,
            localPlayer: 'omxplayer',
            remotePlayer: 'vlc',
            showSnapWhenPaused: false,
            remoteSnaps: false,
            shutdownDelay: 12,
                stream1: {
                name: 'Your Own Label',
                url: 'rtsp://admin:[Your Password]@[Your IP address]:554/h264Preview_01_sub',
                frameRate: '7',
                hdUrl: 'rtsp://admin:[Your Password]@[Your IP address]:554/h264Preview_01_sub',
                snapshotType: 'url',
                snapshotRefresh: 10,
                width: 400,
                height: 350,
    				top: 700,
    				right: 1910,
    				bottom: 1050,
    				left: 1310,

    The “moduleWidth” and moduleHeight" are irrelevant. What sets the size and position of the video window are the “width” and “height” values along with the “absPosition” values for “stream1”. The values that worked for me may not work for you so some trial error will be involved. Unless, of course, you completely understand the screen geometry for your MM2. I don’t so I had to go through a trial and error process to get the position just right. Part of my challenge was a body “zoom” value in my custom.css that added a level of complexity I never quite figured out. No matter, my step-by-step process resulted in a video stream the size I wanted and in the place I wanted. I also set the border width to 0 in MMM-RTSPStream.css file as follows:

    .MMM-RTSPStream .innerWrapper {
      position: relative;
      width: 352px; /* Video width + 2*border + 2*padding */
      height: 242px;
      border: 0px solid white;

    The bottom-line is a stable video feed from my Reolink webcam in the lower-right corner of my MM2. Hope this helps!

  • I’m following up on my own post since my experience has changed just a little bit since I started this. Yes, I got a stable video stream at the beginning and for a few days. After that, however, the feed became less stable and modules in my MM2 would sometimes fail. I don’t know enough about the RPi to diagnose what’s going on, but I associated the problems with either memory issues with the RPi and/or the Wifi connection. I updated/upgraded my RPi and that helped a little. My most recent attempt is to use Watchdog to keep an eye on my Wifi connection and reboot my RPi anytime a Ping test fails. So far, it’s been an improvement, but I won’t know for sure for a couple days or so. If/when I know more I’ll report back here. If someone reading this knows why the stability deteriorated or has suggestions for a solution, please share those. Thanks!

  • @dwburger Watchdog definitely improved the stability of my MM2 and, specifically, the video stream coming from the RTSPStream module. On the couple of occasions my MM2 froze up in the last week, I don’t think it had anything to do with the video stream. I think a daily reboot of the RPi using crontab will help. That’s my next step.

Log in to reply