Hey everyone!
I’d always wanted my ESPHome ESP32-S3 to be able to actually record videos on its own, without the need for Go2RTC → an NVR like Frigate. I already had microSD cards lying around, and the ESP32 Wi-Fi camera streaming has never been exemplary, so I wondered if I could just have the ESP32 handle recording itself…
So I designed a custom ESPHome component to mount a normal microSD card, record video clips, detect motion, and even classify people. It has a simple and easy web UI for viewing and downloading, with HTTP Basic Auth. All processing and recording happens locally on the ESP, and it can even work without Home Assistant.
For more information and for the YAML setup, check my GitHub repo!
Of course, there are some limitations in processing power and detection, but if you need advanced functions it is possible to use Frigate with the built in MJPEG streaming. I simply chose not to because I prefer letting cameras record and process videos themselves, as well as being able to use auth. Plus, the Wi-Fi on cheap ESP32s is not the fastest for video streaming. Plus, I kind of like the cool factor of an autonomous $10 camera processing everything :)
Disclaimer: the code was generated by GPT-6 Sol, but as I noted in the repo as well, I defined the purpose from the ground up and I tested this exhaustively on real hardware before releasing.
I’d love it if you try it out and provide feedback!