I made some tests that you may try
- Take your rtsp stream and produce jpegs that you publish to your MQTT broker and then subscribe and present them on the dashboard
- Take your rtsp stream and produce a mp4 playlist, then make it available via https and present it on the dashboard. How to do this I'm not able to do myself, maybe @kevinGodell has some insights. Anyway this would mean you would have to open up a port in your FW for the https server so I'm not sure you are willing to do that
The first example could look like the below (here I'm using a public available MQTT broker, test.mosquitto.org) and this would not require you to open any ports in your FW. If you select a good FPS it will provide a pretty useful solution
[{"id":"98f8bbb1.51c528","type":"ffmpeg-spawn","z":"252b9369.44a80c","name":"","outputs":2,"migrate":1e-9,"cmdPath":"ffmpeg","cmdArgs":"[\"-i\",\"https://weather-lh.akamaihd.net/i/twc_1@92006/index_1200_av-p.m3u8?sd=10&rebase=on\",\"-f\",\"image2pipe\",\"-r\",\"1\",\"pipe:1\"]","cmdOutputs":1,"killSignal":"SIGTERM","x":360,"y":4890,"wires":[[],["2bc3438c.6857ac"]]},{"id":"8c8ffea6.74511","type":"inject","z":"252b9369.44a80c","name":"start default","props":[{"p":"action","v":"{\"command\":\"start\"}","vt":"json"}],"repeat":"","crontab":"","once":false,"onceDelay":"1","topic":"","payloadType":"str","x":170,"y":4860,"wires":[["98f8bbb1.51c528"]]},{"id":"88965d3a.398e","type":"inject","z":"252b9369.44a80c","name":"stop default","props":[{"p":"action","v":"{\"command\":\"stop\"}","vt":"json"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"str","x":170,"y":4920,"wires":[["98f8bbb1.51c528"]]},{"id":"7c3c2531.a922cc","type":"mqtt in","z":"252b9369.44a80c","name":"","topic":"jpeg_test","qos":"2","datatype":"auto","broker":"ed237c6b.40d1b","nl":false,"rap":true,"rh":0,"x":730,"y":4890,"wires":[["2f0c0d86.1a2492"]]},{"id":"2bc3438c.6857ac","type":"mqtt out","z":"252b9369.44a80c","name":"","topic":"jpeg_test","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"ed237c6b.40d1b","x":560,"y":4890,"wires":[]},{"id":"30818a40.ae6716","type":"image","z":"252b9369.44a80c","name":"","width":160,"data":"payload","dataType":"msg","thumbnail":false,"active":true,"pass":false,"outputs":0,"x":1150,"y":4760,"wires":[]},{"id":"2f0c0d86.1a2492","type":"switch","z":"252b9369.44a80c","name":"","property":"payload[0]","propertyType":"msg","rules":[{"t":"eq","v":"255","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":890,"y":4890,"wires":[["30818a40.ae6716","32f9bdbb.a5a992"]]},{"id":"5d7e668b.178858","type":"ui_media","z":"252b9369.44a80c","group":"234be070.c446f","name":"","width":"6","height":"4","order":3,"category":"","file":"","layout":"center","showcontrols":false,"loop":false,"onstart":false,"muted":false,"scope":"local","tooltip":"","x":1120,"y":4940,"wires":[[]]},{"id":"32f9bdbb.a5a992","type":"change","z":"252b9369.44a80c","name":"","rules":[{"t":"set","p":"mimetype","pt":"msg","to":"image/jpeg","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":930,"y":4940,"wires":[["5d7e668b.178858"]]},{"id":"ed237c6b.40d1b","type":"mqtt-broker","name":"test.mosquitto.org","broker":"test.mosquitto.org","port":"1883","tls":"ce0f0716.0b63b8","clientid":"","usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""},{"id":"234be070.c446f","type":"ui_group","name":"Default","tab":"8eb8f4e9.390d58","order":2,"disp":false,"width":"6","collapse":false},{"id":"ce0f0716.0b63b8","type":"tls-config","name":"","cert":"","key":"","ca":"","certname":"","keyname":"","caname":"","servername":"","verifyservercert":true},{"id":"8eb8f4e9.390d58","type":"ui_tab","name":"MP4 streaming","icon":"dashboard","order":5,"disabled":false,"hidden":false}]
Additional Nodes to be installed:
node-red-contrib-ffmpeg-spawn
node-red-contrib-ui-media