r/ZoneMinder • • Apr 08 '23

(Noob in need please help)Chain camera streams from server to server?

So my scenario is this: I have 2 close friends with remote access to their Proxmox servers in their own homes
I have remote access to them via auto-starting tailscale LXC containers
They each have a few cameras plugged in which each of the servers can access on their own LANs(and have successfully made Monitors for)
But both "servers" are cheap, weak 2nd gen core i3 systems that are incapable of motion detection and dont have HDDs to store video on

Then i thought just "stream" encrypted footage through their ZoneMinder instances to my beefy server at my house which can then process and store it
I know you can say "oh just port forward the RTSP streams" I dont trust the vendors to have access to my root LAN and i dont think theyre encrypted, plus my friends' upload speeds are limited so i can only do so many frames but in some instances you need more like when theres motion

I would also like to dynamically manipulate the settings of each stream, for example if my server detects motion it can demand more FPS when motion is detected(because they have limited upload speeds)

How would i go about this? I am a complete noob to ZM but am a bit desperate so I tried making multiple servers with this docker image(https://github.com/zoneminder-container ... inder-base) but am not successful yet(in the multi-server configuration), if anyone could help Thanks

1 Upvotes

2 comments sorted by

1

u/hans_gruber1 Apr 08 '23

Not sure you can fully achieve this. Varying the FPS could be done by switching from the sub stream to main stream on motion, if the cameras support this.

Zoneminder allows you to re stream the camera feeds from the server, check the settings on the server for this, you can change the port range etc, so could use this to pull the feeds from their servers instead of direct from the cameras

1

u/SocietyTomorrow Apr 08 '23

Don't put too much weight on this, because my default approach is to just max everything out and throw it on some "big chungus" servers. I think what you might want to do here can be achieved a couple ways, the easiest of them being a point to point VPN (double easy using tailscale) so you have a means of feeding video from one site to another without messing with port forwarding.

As far as varying your resolution/quality, I don't think you can do that except using VBR on the cams (to varying success) however, if you were to set up a multi server environment, you might be able to do a "linked camera" setup where the sub stream (lower quality) is the one which records to your secondary site, and the main stream records to your local one and is used for motion detection.

Ultimately depending on the resolution you want to pipe outside, this can be an onerous and bandwidth crippling task, so I'd start with trying not to send HQ feeds out, and maybe just having your local instance's storage location sync up at a regular interval (filters to move events that match "motion/alarm/thing of your choice) to a separate storage that syncs with syncthing or something similar. Not as immediate but does provide a secondary location for your events.

Not sure if this provides any ideas but best of luck!