Sending rtsp camera streaming over internet

I made some tests that you may try

  1. Take your rtsp stream and produce jpegs that you publish to your MQTT broker and then subscribe and present them on the dashboard
  2. 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

1 Like