Read the statement by Michael Teeuw here.
[MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras
-
@shbatm said in [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras:
pm2 Status pi@raspberrypi:~ $ pm2 status ┌─────────────┬────┬──────┬────────┬─────────┬─────┬────────┬──────────┐ │ Name │ id │ mode │ status │ ↺ │ cpu │ memory │ ├─────────────┼────┼──────┼────────┼─────────┼─────┼────────┼──────────┤ │ mm │ 0 │ N/A │ fork │ online │ 0 │ 0% │ 2.6 MB │ │ omx_stream1 │ 1 │ N/A │ fork │ stopped │ 0 │ 0% │ 0 B │ │ omx_stream2 │ 2 │ N/A │ fork │ online │ 0 │ 0% │ 2.7 MB │ └─────────────┴────┴──────┴────────┴─────────┴─────┴────────┴─
/home/pi/.npm/_logs/2018-12-25T13_58_40_969Z-debug.log
0 info it worked if it ends with ok 1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'start' ] 2 info using npm@6.4.1 3 info using node@v10.14.2 4 verbose run-script [ 'prestart', 'start', 'poststart' ] 5 info lifecycle magicmirror@2.5.0~prestart: magicmirror@2.5.0 6 info lifecycle magicmirror@2.5.0~start: magicmirror@2.5.0 7 verbose lifecycle magicmirror@2.5.0~start: unsafe-perm in lifecycle true 8 verbose lifecycle magicmirror@2.5.0~start: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/pi/MagicMirror/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games 9 verbose lifecycle magicmirror@2.5.0~start: CWD: /home/pi/MagicMirror 10 silly lifecycle magicmirror@2.5.0~start: Args: [ '-c', 'sh run-start.sh' ] 11 silly lifecycle magicmirror@2.5.0~start: Returned: code: 1 signal: null 12 info lifecycle magicmirror@2.5.0~start: Failed to exec start script 13 verbose stack Error: magicmirror@2.5.0 start: `sh run-start.sh` 13 verbose stack Exit status 1 13 verbose stack at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16) 13 verbose stack at EventEmitter.emit (events.js:182:13) 13 verbose stack at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14) 13 verbose stack at ChildProcess.emit (events.js:182:13) 13 verbose stack at maybeClose (internal/child_process.js:962:16) 13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:251:5) 14 verbose pkgid magicmirror@2.5.0 15 verbose cwd /home/pi/MagicMirror 16 verbose Linux 4.14.79-v7+ 17 verbose argv "/usr/bin/node" "/usr/bin/npm" "start" 18 verbose node v10.14.2 19 verbose npm v6.4.1 20 error code ELIFECYCLE 21 error errno 1 22 error magicmirror@2.5.0 start: `sh run-start.sh` 22 error Exit status 1 23 error Failed at the magicmirror@2.5.0 start script. 23 error This is probably not a problem with npm. There is likely additional logging output above. 24 verbose exit [ 1, true ]
-
@evroom said in [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras:
Next thing I am trying to use MMM-RTSPStream for, is streaming sat-tv from a Dreambox & VU+ receivers.
I am able to stream a channel using:
omxplayer --vol -3000 --win “0 0 480 320” --live http://192.168.178.28:8001/1:0:19:283D:3FB:1:C00000:0:0:0:@evroom
Maybe my new module is something for you:
MMM-DreamboxRegards
AxLED
-
@axled woah gonna try it now! :thumbs_up_medium-light_skin_tone:
-
@axled
Interesting. Will give it a try. -
-
i have the same problem like @djuscha
The second stream does not show up.
Can it be a layering issue? Maybe its underneath the other one and just needs to moved down via a
or something?
As soon as i turn autorotate=on i can see both streams , but the delay between the switch is useless. I see 10 sec the stream1 than for 10 sec black and then for 10sec the other stream2.
(if i watch the pm2 status while in rotate mode, it stops the whole stream, thats why it takes forever to load, i guess. shutdowndelay option seems not to change something)I would like to see them in parallel if possible.
Any idea or suggestion? -
@barnosch said in [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras:
the delay between the switch is useless.
I agree, unfortunately this is a an OMXPlayer problem – it takes anywhere from 5-10s to actually open and play a stream, so rotating the streams with OMXPlayer is limited unless you’re willing to accept the delay. I’ve played with everything I can think of to leave a stream open in the background–but nothing worked. The shutdown delay option only affects FFMPEG.
@djuscha For some reason only 1 stream is being started (the PM2 status is showing STOPPED for the other stream). I think I must have broken something in one of the last releases, try reverting back to an old version and see if it works:
cd ~/MagicMirror/modules/MMM-RTSPStream git checkout f583553
I will work on troubleshooting and see what I broke.
-
@shbatm said in [[MMM-RTSPStream] - Video Streaming from Live Feeds & Security
@djuscha For some reason only 1 stream is being started (the PM2 status is showing STOPPED for the other stream). I think I must have broken something in one of the last releases, try reverting back to an old version and see if it works:
cd ~/MagicMirror/modules/MMM-RTSPStream
git checkout f583553I will work on troubleshooting and see what I broke.
Name │ id │ mode │ status │ ↺ │ cpu │ memory │
├─────────────┼────┼──────┼────────┼────────┼─────┼────────┼──────────┤
│ mm │ 0 │ N/A │ fork │ online │ 0 │ 0% │ 2.6 MB │
│ omx_stream1 │ 1 │ N/A │ fork │ online │ 6 │ 0% │ 2.8 MB │
│ omx_stream2 │ 2 │ N/A │ fork │ online │ 0 │ 0% │ 2.8 MB │
└─────────────┴────┴──────┴────────┴────────┴─────┴────────┴──It works!!
Many Thanks!! -
STATUS UPDATE
Just wanted to give everyone a quick status update about this module.
Bad news first: the current version in the master branch is malfunctioning. Please revert to a previous version (see post above) until I get time to undo the commit.
EDIT - I’ve reverted the changes that I think broke the master channel. Please try updating your module to the current master branch and test.Good news! The reason I haven’t fixed the main branch yet is because the most recent version of the Raspbian image (Nov '18) has introduced a native version of VLC with hardware acceleration. I am actively working on a version of this module that will abandon OMXPlayer in favor of VLC, and have a working prototype in the develop branch for anyone interested in testing!
Requirements:
- Must have the most recent version of Raspbian with Desktop (> Nov '18). Google how to upgrade, but you may be better off starting with a fresh image.
- Enable OpenGL (Fake KMS) driver in
raspi-config
- Increase GPU/CPU Memory Split to at least 128 (do this after enabling OpenGL because it will reset it to 64).
- Upgrade Electron to v3.0.13 (v2.0.16 in MM v2.6 is not working with OpenGL–see MM Issue #1500:
cd ~/MagicMirror # Remove the node_modules folder to start fresh rm -R ./node_modules # Either manually update the required electron version in package.json to 3.0.13 or use the sed command below sed -i 's/electron": "\^2\.0\..*",/electron": "^3.0.13",/g' package.json # Re-install the MM node modules npm install
- Delete your MMM-RTSPStream module directory and use the new installer script to install everything:
rm -R ~/MagicMirror/modules/MMM-RTSPStream bash -c "$(curl -s https://raw.githubusercontent.com/shbatm/MMM-RTSPStream/develop/scripts/installer.sh)"
- Update your config.js section to use VLC:
localPlayer: 'vlc'
Working:
- VLC windows “placed” on top of the main Electron window inside the module’s box
- Plays quickly, minimal lag, low CPU usage (4 streams @ ~35%)
- Visible in VNC client (couldn’t do this with OMXPlayer)
- Fast switching between streams – all VLC windows will remain open, and
wmctrl
utility used to toggle which one is on top.- Make sure to set a
shutdownDelay
for in your module config section make it longer than it takes to rotate back to that stream time (e.g. if you haverotateStreamTimeout: 10
, and 3 streams, then it will take 20s to get back to the first stream, so you should setshutdownDelay: 22
– 20s + 2s buffer).
- Make sure to set a
- Suspend/Restore functions
- New version of Raspbian also has a hw-accelerated version of FFMPEG; I’ve added a
hwAccel: true
option forffmpeg
users to use HW-accelerated decoding. FFMPEG still has a big CPU impact for the encoder though.
Not-yet-tested / left to-do:
- Test if sound works
- Figure out what I broke in the OMXPlayer version
Not-gonna-happen:
- Embedding VLC into Electron window (NPAPI-plugins are no longer supported and this is the only way I know how to do that).
- Using VLC as the viewer for “remote” windows (other web browser instances of the MM) – same reason as above.
Known Bugs:
- When VLC windows are first created, you see them move around the screen. After they’re “put in the box” it they won’t fill up the box right away. After ~7 secs they should fill the box.
- I am using
devilspie2
to remove window decorations and move the VLC windows; however, for some reason I have to call it twice (~7s apart) to get VLC to resize it’s video properly. Shouldn’t be an issue in the long-term, unless you are hiding/showing the module often.
- I am using
-
@shbatm I can confirm that this method works. I tried to apply it to my original installation however during the ’ sed -i ‘s/electron": “^2.0…*”,/electron": “^3.0.13”,/g’ package.json’ command my installation failed half way through and seemed to mess my installation up. I have an open issue and you’ll see about 10+ responses from me as I tried to troubleshoot but its irrelevant as long as your Pi doesn’t lock up during this process.
The only issue I seem to be having now is when I add the MMM-GoogleMapsTraffic module I see the Live feed box but the video doesn’t appear.
I’m fairly new to this so I am not sure what could be causing it?
Thanks again for all of your help!