Open Source security camera on Raspberry Pi
github.com
github.com
What I did instead: I bought a Raspberry Pi camera, hooked it up to a RPi Zero 2W that I already had, bought an LTE hotspot and a $5/mo prepaid SIM from T-Mobile. On the software side, I used imgcomp (https://github.com/Matthias-Wandel/imgcomp) to take a photo every second and save it to a RAM disk. If the two pictures differed (modulo noise), the Pi would upload the changed picture to a directory on my VPS, which would then trigger a notification to my phone via Gotify containing the link to the picture.
It was all very Rube Goldbergian but it worked quite flawlessly for a couple of years.
According to the post, the commercial system demanded a $100 monthly cost for the security services and broadband Internet, vs. $5 monthly cost for a lower-speed Internet access that was enough for the custom solution.
Therefore the reduction in the monthly expenses was worthwhile.
The one-time purchase price of all the hardware was north of $200 with all the sensors and things.
I was living in an apartment while building my house. My idea was to have a camera making a time lapse video with the secondary effect of being able to be accessed by me from the internet so I can take a look at how the crew was doing. Unfortunately every single ideia that I have is already had and developed by anybody else. In this case, china. Ali express have some pretty good cameras that does that and more; with a better finish then a 3D print shitty case...
[0] https://www.onvif.org/specs/stream/ONVIF-WebRTC-Spec.pdf
https://github.com/bluenviron/mediamtx?tab=readme-ov-file#ra...
>If you're self-hosting and you want to access the signaling server remotely via mobile data, you may need to set up DDNS and port forwarding if your ISP provides a dynamic IP.
this also exposes your server to the internet. instead you can use one of the open source solutions which creates a private connection between your Pi and server (so there is no network access to the server - make it unreachable), and doesn't require static IPs or port forwarding.
Why do you think it’s had trouble? Poor software, educational materials etc… always looking for new projects
I'm not sure I get the point of that... they go through the effort for video decoding, but why doesn't it have an encoder?
And maybe the pi5 has enough cpu to do the decoding. But how much would be left over for more interesting AI tasks ?
overlap exist in encode/decode. When working on a Opus codec I did have a fair amount of code distinct to one path still.
Then had this thought, imagine triggering lights and siren gradually as one approaches. That way it can trigger much earlier and give a could-be intruder enough signal to stay away. I suspect gradual adrenaline in a feedback loop is more effective too. A sudden effect only needs to be considered once.
I set it up to record continuously, deleting audio content only once it gets 'stale' as per the users preferences, with options ranging from 1 minute - 5 minutes - 15 minutes - 30 minutes - 1 hour - 3 hours - 5 hours - 24 hours .. and built a front-end to allow the user to Keep the time-period they feel they might have captured something great. This heuristic is somewhat similar to the deadman-switch/security-camera mechanism used in a lot of surveillance products.
It works so well, I kind of wonder why its not really a standard already. I guess there is still a kind of 'economy preference' where folks don't really want to fill up their storage space, but these days 128Gigs can go a long way.
I'm pretty sure this heuristic should become a norm, one of these days. Its so inspiring to set up, forget, and then - after a few hours of jamming - come back and find the stuff you want to keep, having all the rest of the house-keeping done for you.
A WebRTC implementation for my microcontrollers exist https://github.com/sepfy/libpeer it requires more work to use then most want (but it is the perfect building block for higher pieces)
I am trying to make it easier with a SDK for LiveKit https://github.com/sean-der/embedded-sdk
I tried to capture that with webrtcforthecurious.com breaking it down by subsystem.
I should do a companion piece ‘Build yourself a WebRTC’ that shows how to build WebRTC yourself in Python or other popular language.
Early versions of https://github.com/pion/webrtc used lots of cgo its an enjoyable read I find. The glue is higher level (interesting part) but the parts you don’t need the details on (DTLS, SRTP….) are abstracted away