# Sending rtsp camera streaming over internet

**URL:** <https://discourse.nodered.org/t/sending-rtsp-camera-streaming-over-internet/46606>\
**Category:** General\
**Created:** [2 June 2021 15:40 UTC](https://discourse.nodered.org/t/sending-rtsp-camera-streaming-over-internet/46606 "2021-06-02T15:40:07Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![krambriw](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/krambriw/32/5429_2.png) [@krambriw](https://discourse.nodered.org/u/krambriw)\
**Post date:** [3 June 2021 05:49 UTC](https://discourse.nodered.org/t/sending-rtsp-camera-streaming-over-internet/46606/3 "2021-06-03T05:49:57Z")

</div>

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](http://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

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/0/2073bae1f1f65ade8618a0a0e960e36ee64dbc46.png)

```auto
[{"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-ffmpeg-spawn](https://discourse.nodered.org/t/node-red-contrib-ffmpeg-spawn/44427):
>
> The ffmpeg node is ready for testing. It is similar to the exec node to spawn ffmpeg, with additional features. An example flow doing way more than a regular human needs to do: [{"id":"93d74c4e.4c8fe","type":"ffmpeg-spawn","z":"5967c855.68b978","name":"","outputs":5,"migrate":1e-9,"cmdPath":"ffmpeg","cmdArgs":"[\"-loglevel\",\"error\",\"-nostats\",\"-f\",\"hls\",\"-http\_multiple\",\"1\",\"-re\",\"-i\",\"https://weather-lh.akamaihd.net/i/twc\_1@92006/index\_1200\_av-p.m3u8?sd=10&rebase=on\",\"-c:v…

node-red-contrib-ui-media

---

_[View the full topic](https://discourse.nodered.org/t/sending-rtsp-camera-streaming-over-internet/46606)._
