Read the statement by Michael Teeuw here.
[MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras
-
Hi @shbatm & others! After install (followed your guide here https://github.com/shbatm/MMM-RTSPStream), I see a black frame with a white border, without the stream. I tried both mine stream url and samples. My sample works great via VLC. Can you help me to find an issue?
{ module: 'MMM-RTSPStream', position: 'middle_center', config: { autoStart: true, moduleWidth: 354, moduleHeight: 240, localPlayer: 'omxplayer', stream1: { name: 'Test Stream', url: 'rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=0.sdp', snapshotUrl: '', snapshotRefresh: 10, // Seconds frameRate: "30", port: 9999, } } },update, after a few commas in the config I managed to get test stream up&running, but not my webcam. Any solution available? :)
-
@epi said in [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras:
rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=0.sdp
I assume issue is in my stream URL either localPlayer. Any suggestions?
-
pi@raspberrypi:~ $ pm2 logs
[TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option) /home/pi/.pm2/pm2.log last 15 lines: PM2 | [2018-09-21T20:42:51.125Z] PM2 log: App [omx_stream1] with id [1] and pid [6551], exited with code [1] via signal [SIGI NT] PM2 | [2018-09-21T20:42:51.132Z] PM2 log: Starting execution sequence in -fork mode- for app name:omx_stream1 id:1 PM2 | [2018-09-21T20:42:51.159Z] PM2 log: App name:omx_stream1 id:1 online PM2 | [2018-09-21T20:42:53.221Z] PM2 log: App [omx_stream1] with id [1] and pid [6582], exited with code [1] via signal [SIGI NT] PM2 | [2018-09-21T20:42:53.234Z] PM2 log: Starting execution sequence in -fork mode- for app name:omx_stream1 id:1 PM2 | [2018-09-21T20:42:53.253Z] PM2 log: App name:omx_stream1 id:1 online PM2 | [2018-09-21T20:42:59.249Z] PM2 log: Stopping app:mm id:0 PM2 | [2018-09-21T20:42:59.562Z] PM2 log: App [mm] with id [0] and pid [6136], exited with code [0] via signal [SIGINT] PM2 | [2018-09-21T20:42:59.632Z] PM2 log: pid=6136 msg=process killed PM2 | [2018-09-21T20:42:59.635Z] PM2 log: Starting execution sequence in -fork mode- for app name:mm id:0 PM2 | [2018-09-21T20:42:59.651Z] PM2 log: App name:mm id:0 online PM2 | [2018-09-21T20:43:35.020Z] PM2 log: Stopping app:omx_stream1 id:1 PM2 | [2018-09-21T20:43:35.054Z] PM2 error: Process with pid 6613 already exists PM2 | [2018-09-21T20:43:35.174Z] PM2 log: App [omx_stream1] with id [1] and pid [6613], exited with code [1] via signal [SIGI NT] PM2 | [2018-09-21T20:43:35.193Z] PM2 log: pid=6613 msg=process killed /home/pi/.pm2/logs/omx-stream1-error.log last 15 lines: /home/pi/.pm2/logs/mm-error.log last 15 lines: 0|mm | WARNING! Could not validate config file. Please correct syntax errors. Starting with default configuration. 0|mm | [885:0919/041827.726584:FATAL:bus.cc(1152)] D-Bus connection was disconnected. Aborting. 0|mm | WARNING! Could not validate config file. Please correct syntax errors. Starting with default configuration. 0|mm | [10472:0919/213258.329193:FATAL:bus.cc(1152)] D-Bus connection was disconnected. Aborting. 0|mm | TypeError: `port` or a `server` must be provided 0|mm | at new WebSocketServer (/home/pi/MagicMirror/modules/MMM-RTSPStream/node_modules/node-rtsp-stream-es6/node_modules/ ws/lib/WebSocketServer.js:44:11) 0|mm | at VideoStream.startListener (/home/pi/MagicMirror/modules/MMM-RTSPStream/node_modules/node-rtsp-stream-es6/src/vid eoStream.js:32:24) 0|mm | at Class.startListener (/home/pi/MagicMirror/modules/MMM-RTSPStream/node_helper.js:49:32) 0|mm | at Class.socketNotificationReceived (/home/pi/MagicMirror/modules/MMM-RTSPStream/node_helper.js:257:22) 0|mm | at Socket.<anonymous> (/home/pi/MagicMirror/modules/node_modules/node_helper/index.js:113:11) 0|mm | at emitTwo (events.js:126:13) 0|mm | at Socket.emit (events.js:214:7) 0|mm | at /home/pi/MagicMirror/node_modules/socket.io/lib/socket.js:513:12 0|mm | at _combinedTickCallback (internal/process/next_tick.js:131:7) 0|mm | at process._tickCallback (internal/process/next_tick.js:180:9) /home/pi/.pm2/logs/mm-out.log last 15 lines: 0|mm | Starting stream stream1 with args: [ 0|mm | "--avdict", 0|mm | "rtsp_transport:tcp", 0|mm | "--win", 0|mm | "800, 421, 1120, 661", 0|mm | "--live", 0|mm | "--video_queue", 0|mm | "4", 0|mm | "--fps", 0|mm | "30", 0|mm | "rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=0" 0|mm | ] 0|mm | PM2: omx_stream1 already running. Stopping old instance... 0|mm | Starting PM2 for omx_stream1 0|mm | PM2 started for omx_stream1 -
@epi said in [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras:
/user=USERNAME&password=PASSWORD&channel=1&stream=0.sdp
Looking at the logs it looks like it’s trying to launch everything correctly. Just to confirm:
- The stream works correctly in VLC using the URL you have above.
- Since you’re using OMXPlayer – you are testing on the mirror with the RPi connected (not with VNC/Remote Desktop, etc). You won’t see playback from OMXPlayer on anything but the monitor connected to the RPi.
You can try:
- Make sure the stream works with OMXPlayer by testing with the command line (shut down Magic Mirror first):
omxplayer --avdict rtsp_transport:tcp --win 800, 421, 1120, 661 --live --video_queue 4 --fps 30 rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=0.sdp - Test the above with and without
.sdpat the end of the path. I noticed in your log above for some reason it didn’t pass the extension.sdp. I don’t know if this is the issue or not. You can also try without the--winargument to test it full screen. - Using
UDPinstead ofTCP, putprotocol: "udp"in your stream config (to test from command line, remove thertsp_transport:tcpargument. - Using
stream=1to test the lower resolution sub-stream. Sometimes OMXPlayer just refuses to do anything (without any errors) if it doesn’t have enough video memory–I’ve only seen it happen trying to play 3 streams at once though. - Try adding a
?at the end of the stream url. Just something I saw while googling your url format to find out what kind of camera you have.
-
This post is deleted! -
@shbatm said in [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras:
Looking at the logs it looks like it’s trying to launch everything correctly. Just to confirm:
- The stream works correctly in VLC using the URL you have above.
- Since you’re using OMXPlayer – you are testing on the mirror with the RPi connected (not with VNC/Remote Desktop, etc). You won’t see playback from OMXPlayer on anything but the monitor connected to the RPi.
- Yes, it does work in VLC.
- I control RPi via SSH & VNC, but it is connected via HDMI to monitor and I don’t see any output on the actual screen neither via VNC, nor actual screen.
Testing:
- By making tests I encounter an error:
pi@raspberrypi:~ $ sudo reboot login as: pi pi@192.168.2.111's password: Linux raspberrypi 4.14.50-v7+ #1122 SMP Tue Jun 19 12:26:26 BST 2018 armv7l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon Sep 24 01:55:35 2018 SSH is enabled and the default password for the 'pi' user has not been changed. This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password. pi@raspberrypi:~ $ pm2 stop mm [PM2] Applying action stopProcessId on app [mm](ids: 0) [PM2] [mm](0) ✓ ┌──────────┬────┬──────┬─────┬─────────┬─────────┬────────┬─────┬────────┬──────┬──────────┐ │ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │ ├──────────┼────┼──────┼─────┼─────────┼─────────┼────────┼─────┼────────┼──────┼──────────┤ │ mm │ 0 │ fork │ 0 │ stopped │ 0 │ 0 │ 0% │ 0 B │ pi │ disabled │ └──────────┴────┴──────┴─────┴─────────┴─────────┴────────┴─────┴────────┴──────┴──────────┘ Use `pm2 show <id|name>` to get more details about an app pi@raspberrypi:~ $ omxplayer --avdict rtsp_transport:tcp --win 800, 421, 1120, 661 --live --video_queue 4 --fps 30 rtsp://192.168.2.237:554/user=USER&password=PASS&channel=1&stream=0.sdp [1] 1084 [2] 1085 [3] 1086 pi@raspberrypi:~ $ File "421," not found. pi@raspberrypi:~ $- Did not work
- Also did not work, this time another file is not being found
omxplayer --avdict 421, 1120, 661 --live --video_queue 4 --fps 30 rtsp://192.168.2.237:554/user=USER&password=PASS&channel=1&stream=0 [7] 1213 [8] 1214 [9] 1215 [4] Exit 1 omxplayer --avdict 421, 1120, 661 --live --video_queue 4 --fps 30 rtsp://192.168.2.237:554/user=USERNAME [5] Done password=PASSWORD [6] Done channel=1 pi@raspberrypi:~ $ File "1120," not found.- 5., Did not work
pi@raspberrypi:~ $ File "421," not found. -
@epi My fault: for command line you have to fix the window command line argument:
... --win 800,421,1120,661 ...or... --win '800 421 1120 661' ...and I think put the URL in quotes.You can test it without that whole argument (should play full screen). This is what I meant in #2 above. Here’s some combos to try:
# Option 1 -- Should be full screen (if it works): omxplayer --avdict rtsp_transport:tcp --live --video_queue 4 --fps 30 "rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=0.sdp" # Option 2: omxplayer --avdict rtsp_transport:tcp --live --video_queue 4 --fps 30 "rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=0" # Option 3 Sub-stream: omxplayer --avdict rtsp_transport:tcp --live --video_queue 4 --fps 30 "rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=1.sdp" # Option 4 UDP: omxplayer --live --video_queue 4 --fps 30 "rtsp://192.168.2.237:554/user=USERNAME&password=PASSWORD&channel=1&stream=0.sdp" -
I did a fresh install of RPI OS & MM all addons
Option one: freeze, then after a wait console available again
pi@raspberrypi:~/MagicMirror/modules/MMM-RTSPStream $ omxplayer --avdict rtsp_transport:tcp --live --video_queue 4 --fps 30 "rtsp://192.168.2.237:554/user=USER&password=PASS&channel=1&stream=0.sdp" Video codec omx-h264 width 1280 height 960 profile 77 fps 30.000000 Audio codec pcm_alaw channels 1 samplerate 8000 bitspersample 8 Subtitle count: 0, state: off, index: 1, delay: 0 V:PortSettingsChanged: 1280x960@30.00 interlace:0 deinterlace:0 anaglyph:0 par:1.00 display:0 layer:0 alpha:255 aspectMode:0 have a nice day ;)Option two: many lines
COMXVideo::Decode timeoutOption three: same as first one, freeze then
Video codec omx-h264 width 704 height 576 profile 77 fps 30.000000 Audio codec pcm_alaw channels 1 samplerate 8000 bitspersample 8 Subtitle count: 0, state: off, index: 1, delay: 0 V:PortSettingsChanged: 704x576@30.00 interlace:0 deinterlace:0 anaglyph:0 par:1.00 display:0 layer:0 alpha:255 aspectMode:0Option four:
pi@raspberrypi:~ $ omxplayer --live --video_queue 4 --fps 30 "rtsp://192.168.2.2 37:554/user=USER&password=PASS&channel=1&stream=0.sdp" Video codec omx-h264 width 1280 height 960 profile 77 fps 30.000000 Audio codec pcm_alaw channels 1 samplerate 8000 bitspersample 8 Subtitle count: 0, state: off, index: 1, delay: 0 -
Hi @shbatm I am playing with your module to see TV programs from a Vu+ Duo² (a DVB-S2+DVB-T Linux/Enigma2 decoder).
The only thing I can’t succed is to see HD TV programs.
I’ve tried to use bothurland
hdUrl, but those streams won’t start (while normal SD programs are working just fine).
This is my current script by the way (the HD channel has been disabled in the meantime):
{ module: "MMM-RTSPStream", position: "bottom_right", // header: "Sky TG24", config: { autoStart: true, rotateStreams: false, rotateStreamTimeout: 10, moduleWidth: 390, moduleHeight: 219, localPlayer: 'omxplayer', remotePlayer: 'none', showSnapWhenPaused: false, remoteSnaps: false, stream1: { // name: 'Sky TG24', // url: 'http://192.168.1.6:8001/1:0:1:5:7918:217C:EEEE0000:0:0:0:', name: 'RAI 3 TGR Puglia', url: 'http://192.168.1.6:8001/1:0:1:D4B:8800:13E:EEEE0000:0:0:0:', // name: 'RAI 3 HD', // hdUrl: 'http://192.168.1.6:8001/1:0:1:2191:5:13E:EEEE0000:0:0:0:', protocol: "tcp", frameRate: 'undefined', width: 390, height: 219, } } }, -
Hi,
Can you check this ?
$ vcgencmd codec_enabled MPG2It should say “MPG2=enabled”.
License can be bought for a few euro’s:
-
@evroom said in [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras:
Hi,
Can you check this ?
$ vcgencmd codec_enabled MPG2It should say “MPG2=enabled”.
License can be bought for a few euro’s:
It is enabled as I followed your advice. ;)
As I said normal SD TV programs work just fine.
The problem is with High Definition programs. -
RAI 3 HD probably is not free-to-air, so I cannot check it.
But to be honest, it seems NOT to work for me too.
Only SD, no HD.
I had it working on v2.4.1 (made notes about it to not to forget) and did not use it after that.You can test it directly, without having to change the MM config all the time:
$ omxplayer --win "0 0 800 480" --live "http://192.168.1.6:8001/1:0:1:D4B:8800:13E:EEEE0000:0:0:0:" $ omxplayer --win "0 0 800 480" --live "http://192.168.1.6:8001/1:0:1:2191:5:13E:EEEE0000:0:0:0:"omxplayer will show the stream details:
Video codec omx-mpeg2 width 720 height 576 profile 4 fps 25.000000 Video codec omx-h264 width 1920 height 1080 profile 100 fps 50.000000On my Pi it seems to run, but nothing appears on the screen.
:-( -
@evroom I am in the same boat (with my Raspberry Pi 3 b+).
However I am 100% sure my Pi can handle HD channel streams as they work perfectly if using VLC!
-
I can stream full HD at 50 fps:
Video codec omx-h264 width 1920 height 1080 profile 100 fps 50.000000
A bit odd.
-
@evroom oops it came out I have to wait at least 30-40 seconds before I can see (succesfully) a 1080i @ 60Fps HD stream. :smiling_face_with_smiling_eyes:
However yesterday I found one more issue…
I connected the RPI for the first time to the TV to see how MagicMirror was looking on it, but I found out that the stream stops as soon as I ask something to Google Assistant (MMM-AssistantMk2 + MMM-Hotword by @Sean ) and it replies.
After that the stream doesn’t resume at all.I don’t know where to start and cannot see why this is going on as the RPI can easily play 2+ media files at a time. :confounded_face:
-
@Cr4z33
As I do not use MMM-AssistantMk2 and/or MMM-Hotword, I cannot help you there.
In principle the streaming should continue.
As a matter of fact, when I stop MM, my cam streams still continue (are listed by pm2 as independent applications).
As soon as there will be a MMM-HotAssistant, I might give it a try :-) -
@evroom no problem mate although it looks like the developer is no more active in this thread my bad. :confused_face:
Do you know by chance what to edit to see the stream in the same position as the white frame (I actually would like to get rid of it)?
-
Looking at the css file of the module, I would try to edit the custom.css and add this:
.MMM-RTSPStream .innerWrapper { border: 0; }Not tested.
-
@cr4z33 said in [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras:
I found out that the stream stops as soon as I ask something to Google Assistant (MMM-AssistantMk2 + MMM-Hotword by @Sean ) and it replies.
Please check the web browser console (ctrl+shift+i) and see if for some reason AssistantMk2 or Hotword are sending a pause/hide command to other modules. You would see something like:
MMM-RTSPSTREAM is suspended.... Also, after the stream disappears, check the status of PM2 (pm2 statusfrom ssh/terminal) and see ifomx_streamXis still running. That will let me know if the module is telling the stream to stop or if omxplayer is giving up.Regarding the border alignment, search this forum and/or the closed issues on GitHub, it’s been answered before. @evroom’s solution looks correct to hide the border, but I can’t remember for sure.
Mini-rant: OMXPLAYER is the lowest resource player I’ve found to use for playing video streams on a Pi, but frankly, it’s a finicky b***h and has terrible logging to inform you of the problem. 90% of the issues raised with this module are caused by omxplayer itself, which, unfortunately I don’t have any better way to solve than any other user. That’s why I use pm2 to manage the streams so it will at least attempt to restart when it crashes.
@evroom, regarding the streams not stopping… Last week I found a bug in PM2’s API, calling
stopon a process from node doesn’t work. I will work on a workaround until the PM2 devs correct the issue. -
I can confirm OMX is a major B.
I had to convert over to FFMPEG to get things to work without crashing the entire system to the point of taking it offline, but not crashing MM other than not updating anymore (Clock and such still work, just it couldn’t get anything off the internet)
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