Working RTSP Viewer - Coming Soon!

A sneak peak of what is coming.

Ever wanted to see what was happening down on the factory floor from a dashboard? Nope, didn't think so! So we made it anyways! Currently undergoing heavy testing, but things have been looking great so far and wanted to share.

  • :brick: Multi‑camera grid — drop the component, pick your cameras, done. Click a tile to expand.
  • :electric_plug: No extra ports. A gateway‑managed media sidecar does RTSP→HLS and everything tunnels through the gateway web port you already expose. Locked‑down‑SCADA‑network friendly.
  • :package: Self‑contained .modl. No installing anything on the server, no separate services to babysit. Install, done.
  • :locked_with_key: Credentials never leave the gateway. Cameras are configured server‑side and referenced by name — the browser never sees a single RTSP URL or password.
  • :green_circle: Survives a camera wall — a dozen‑plus streams at once, with tiles that flip to OFFLINE (and auto‑recover) when a camera drops.
  • :unicorn: UniFi Protect friendly — including the rtsps:// endpoint with auto cert‑pinning.

And the part I'm weirdly proud of

A native gateway config page (Connections → RTSP Cameras) to add/edit your cameras — with bulk paste‑import, so you can dump a spreadsheet of Name, rtsp://url and hit go. :tada:

I'm interested to find out if anyone else is excited for something like this. What kind of cameras do you use? How many do you have? (We have over 200 on site) What would you use a tool like this for?

What’s the server load look like with 50 clients and 200 cameras?

I think the answer will be whatever the sidecar tech can handle… ffmpeg? Gstreamer? MediaMTX?

We’ll see.

I'm not in the office today or tomorrow, but come Monday I will do some additional testing and report back here.

We are using MediaMTX :stuck_out_tongue:

I'm curious how you are achieving a single module file delivery when some of MediaMTX's dependencies (like FFmpeg and GStreamer) are LGPL or GPL. Is the sidecar installed/updated dynamically via the internet?

Edit:

MediaMTX appears to mis-state the license of libcamera. It claims libcamera is MIT licensed, but the libcamera docs state that it is LGPL2. libcamera has numerous LGPL and optional GPL dependencies. If you are embedding the MediaMTX binary in your module file, you are taking a big legal risk, IMNSHO.

Seems to be only used by mediamtx-rpicamera though?

The RTSP-to-HLS looks like it's all Go / Go libraries.

OK. That makes sense. If you use the binaries that do not support the RPI, that might mitigate the issue.

I did post an issue for them on GitHub.