Read the statement by Michael Teeuw here.
MMM-Mplayer video issues
-
Just changed from MMM-RTSPStream to MMM-Mplayer because of issues. That solved the issue with the processor being continuously maxed out. However, video from my ip cam is still delayed and stutters losing a lot of frames. I can play it outside of MagicMirror on another computer using the cameras web interface or with VLC using the same url as MM and both show in real time. Tried a bunch of settings, no luck.
Curious for those that have this working properly, real time, what kind of camera are you using. What is your connection type. . . rtsp, http, resolutions, etc …
-
You may have seen this example config.
I am using this for my Axis P1448-LE.
It works okay, but is sometimes lagging, not stuttering.There is also a section on data gathering:
https://github.com/evroom/MMM-MPlayer?tab=readme-ov-file#data-gathering
You can supply me with this data and your config, then I can have a look at it.
-
Here is what I have at the moment. If interested, I can show a side by side video from the camera, and what is showing on MM.
Config:
{ module: 'MMM-MPlayer', disabled: false, position: "top_center", header: "Driveway", config: { layout: '', streamInterval: 30000, monitorAspect: '0', noAspect: false, noBorder: true, rotate: -1, windowPosition: '', windowSize: '', windowWidth: '', windowWidthNoNewAspect: false, windowHeightNoNewAspect: false, rtspStreamOverTcp: true, rtspStreamOverHttp: true, preferIpv4: true, ipv4onlyProxy: false, videoOutputDriver: 'xv,gl,gl_nosw,vdpau,', noSound: true, mplayerOption: '', windows: [ { windowSize: { width: 990, height: 557 }, windowPosition: { x: 471, y: 20 }, streams: [ 'rtsp://admin:Camadmin@172.16.0.37:554/cam/realmonitor?channel=1&subtype=0' //'http://admin:Camadmin@172.16.0.37/cgi-bin/snapshot.cgi?1' ] } ] } },Data:
pi@raspberrypi:~ $ grep version ~/MagicMirror/package.json "version": "2.30.0", pi@raspberrypi:~ $ cat /proc/device-tree/model; echo Raspberry Pi 4 Model B Rev 1.5 pi@raspberrypi:~ $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm pi@raspberrypi:~ $ uname -a Linux raspberrypi 6.12.47+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.47-1+rpt1~bookworm (2025-09-16) aarch64 GNU/Linux pi@raspberrypi:~ $ free -h -t total used free shared buff/cache available Mem: 3.7Gi 931Mi 1.9Gi 122Mi 1.1Gi 2.8Gi Swap: 199Mi 0B 199Mi Total: 3.9Gi 931Mi 2.1Gipi@raspberrypi:~ $ ps -eaf | grep mplayer | grep -v grep pi 5635 5458 27 19:37 ? 00:01:03 mplayer rtsp://admin:Camadmin@172.16.0.37:554/cam/realmonitor?channel=1&subtype=0 -vf rotate=-1 -monitoraspect 0 -noborder -geometry 471:20 -x 990 -y 557 -rtsp-stream-over-tcp -prefer-ipv4 -vo xv,gl,gl_nosw,vdpau, -nosound pi@raspberrypi:~ $ pm2 flush [PM2] Flushing /home/pi/.pm2/pm2.log [PM2] Flushing: [PM2] /home/pi/.pm2/logs/MagicMirror-out.log [PM2] /home/pi/.pm2/logs/MagicMirror-error.log [PM2] Logs flushed pi@raspberrypi:~ $ pm2 restart MagicMirror Use --update-env to update environment variables [PM2] Applying action restartProcessId on app [MagicMirror](ids: [ 0 ]) [PM2] [MagicMirror](0) ✓ ┌────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐ │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │ ├────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤ │ 0 │ MagicMirror │ default │ 2.30.0 │ fork │ 5704 │ 0s │ 13 │ online │ 0% │ 2.9mb │ pi │ enabled │ └────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘ pi@raspberrypi:~ $ sleep 20 pi@raspberrypi:~ $ grep 'MMM-MPlayer' ~/.pm2/logs/MagicMirror-*.log/home/pi/.pm2/logs/MagicMirror-out.log:[2025-10-28 19:41:36.725] [LOG] Module helper loaded: MMM-MPlayer /home/pi/.pm2/logs/MagicMirror-out.log:[2025-10-28 19:41:37.509] [LOG] Connecting socket for: MMM-MPlayer /home/pi/.pm2/logs/MagicMirror-out.log:[2025-10-28 19:41:37.510] [LOG] Starting MMM-MPlayer module ... /home/pi/.pm2/logs/MagicMirror-out.log:[2025-10-28 19:41:40.746] [INFO] [MMM-MPlayer] (launchMPlayer) - Launch mplayer process for window-0 ... /home/pi/.pm2/logs/MagicMirror-out.log:[2025-10-28 19:41:40.762] [INFO] [MMM-MPlayer] Launched mplayer process for window-0 with PID 5921 /home/pi/.pm2/logs/MagicMirror-out.log:[2025-10-28 19:41:40.762] [INFO] [MMM-MPlayer] DISPLAY=:0 mplayer rtsp://admin:Camadmin@172.16.0.37:554/cam/realmonitor?channel=1&subtype=0 -vf rotate=-1 -monitoraspect 0 -noborder -geometry 471:20 -x 990 -y 557 -rtsp-stream-over-tcp -prefer-ipv4 -vo xv,gl,gl_nosw,vdpau, -nosound /home/pi/.pm2/logs/MagicMirror-out.log:[2025-10-28 19:41:43.181] [INFO] [MMM-MPlayer] [window-0] stdout: [lavf] stream 0: video (h264), -vid 0 pi@raspberrypi:~ $ -
@ge please always config and log info into code block wrappers
I will fix the prior post
Copy the text you wish to share
Paste the text into the editor, blank line above and below
Select the text you just pasted
Hit the </> button on the editor tool barOr triple backtick (us keyboard shifted left of 1 key)
On line by itself above and below your pasted text -
@sdetweil Thanks for letting me know something I should have know.
I will do better in the future. -
I have almost the exact environment and Raspberry Pi.
I am running MM version 2.33.0, but that should not matter IMHO.Btw, have 8Gb, and you ?
vcgencmd get_config total_memCan you open the RTSP URL in VLC and then open Window - Media Information ?
Then the Codec Details tab and please provide the Codec, Video resolution and Frame rate information.
I have H.264, 2560x1440, 25.And can you try to change the config to this (add 2 lines):
windows: [ { windowSize: { width: 990, height: 557 }, windowPosition: { x: 471, y: 20 }, rtspStreamOverTcp: true, noSound: true, streams: [ 'rtsp://admin:Camadmin@172.16.0.37:554/cam/realmonitor?channel=1&subtype=0' ] } ]From looks the RTSP URL you are using a Dahua cam, right ?
Maybe you can trysubtype=1??
Or anotherchannelperhaps.
I do not know the relation between channels and resolutions.
Try to find a lesser resolution to see if it makes it better.Also good to know how many other applications are streaming, for example Synology Surveillance Station.
-
Here we go. The Pi has only 4gb. I bought 8, but I must have accidentally used it elsewhere. I’ll probably get a Pi 5 with 8gb ordered soon and try that.
Codec details:
Codec: H264 - MPEG-4 AVC (part 10) (h264)
Video resolution: 1920x1080
Buffer dimensions: 1920x1088
Frame rate: 10
Orientation: Top left
Color primaries: ITU-R BT.709
Color transfer function: ITU-R BT.709
Color space: ITU-R BT.709 Range
Chroma location: LeftFrame rate is normally at 30. It’s 10 at the moment from when I last changed settings around.
I added the two lines, no change.
Cameras are Amcrest. I’ve tested with the other ones I have, different ages/resolutions, same issues. I have one that is not Amcrest, but it’s down at the moment, and I can’t get to it unless the weather gets better.
Tested lowest resolution and appeared not to work, 352x240 too blurry. Changed to 640x480 not very clear, but still could see the lights on vehicles passing by, delayed, stuttering. May take 10 seconds for the cars to pass though the camera, and if I’m lucky maybe 8 images appear. Sometimes only one or two or none at all.
Channel/Subchannel let me choose the stream from the camera. Main has the high resolutions, sub has the low. Normally I only use the main, and the sub is disabled.
On the old pi 3b, it ran along side with a stream going to Zoneminder using OMXplayer. Ive gone to removing it from Zoneminder, but it makes no change.
With all the changes I’ve attempted from high resolution to low, different frame rates, frame intervals, bit rates it never appears to make a difference. The encode is h.264. It has options for h.264b &h.265. Changing to those other encoding does make matters worse.
I’d say at this time, if your not running into these problems elsewhere, don’t go too deep on this. I’m probably going to get the Pi5 as it is to have a definite performance boost. I’m also looking at setting up Zoneminder to provide a feed out instead of direct from the camera to see if that makes any difference.
It will just take me some time to get to doing that. -
@ge pirmory is soldered on1/2/4/8. Not user adjustable
