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
.sdp
at 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--win
argument to test it full screen. - Using
UDP
instead ofTCP
, putprotocol: "udp"
in your stream config (to test from command line, remove thertsp_transport:tcp
argument. - Using
stream=1
to 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 timeout
Option 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:0
Option 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 bothurl
and
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 MPG2
It should say “MPG2=enabled”.
License can be bought for a few euro’s: