DEV Community

ZhengZhiCong
ZhengZhiCong

Posted on • Originally published at blog.mickeyzzc.tech

Building a Privacy-First Open Source ESP32-S3 Camera with RTSP for MiBee NVR

Introduction

Like many self-hosted enthusiasts, I've been frustrated with the state of affordable IP cameras for years. Most cheap cameras:

  • Phone home to unknown servers
  • Require cloud subscriptions for basic features
  • Don't support standard RTSP streams
  • Run closed-source firmware you can't audit

So I built seeed-esp32s3-cam - a 100% open source, privacy-first camera firmware that works natively with MiBeeNvr, Blue Iris, and every self-hosted NVR system.

The Hardware

This firmware is optimized for the Seeed Studio ESP32-S3 Sense board - an incredibly capable camera module for around $15 USD.

Specs:

  • ESP32-S3 dual-core processor
  • OV2640 2MP camera sensor
  • Built-in WiFi
  • Microphone support
  • SD card slot

Perfect for monitoring garages, sheds, entrances, or anywhere you want an inexpensive camera without sacrificing privacy.

✨ Key Features

Feature Status
📹 Native RTSP Server ✅ Works with MiBeeNvr / Blue Iris / VLC
🌐 HTTP MJPEG Streaming ✅ Low latency browser preview
🔍 On-device Motion Detection ✅ Configurable sensitivity
🌙 Night Mode ✅ Auto exposure adjustment
⚙️ Web Configuration UI ✅ Full settings via browser
Pre-built Binaries ✅ Flash in 2 minutes, no compiling
🔒 100% Local Only ✅ No cloud, no phone home
📄 MIT Licensed ✅ Open source forever

🚀 Getting Started in 5 Minutes

1. Flash the Firmware

No compiling needed! Use the pre-built binaries:

  1. Download the latest release from GitHub
  2. Flash using esptool.py or your favorite flasher:
esptool.py --chip esp32s3 write_flash 0x0 firmware.bin
Enter fullscreen mode Exit fullscreen mode

2. Configure WiFi

  1. Connect to the WiFi hotspot ESP32-CAM-XXXX
  2. Open 192.168.4.1 in your browser
  3. Enter your WiFi credentials
  4. The camera will reboot and connect to your network

3. Access the Web UI

Find your camera's IP address in your router, then open it in a browser. You'll see:

  • Live video preview
  • Stream quality settings
  • Motion detection configuration
  • Network settings

🎯 MiBeeNvr Integration (The Good Stuff)

This is why I built this - native MiBeeNvr compatibility.

Add this to your MiBeeNvr configuration:

cameras:
  esp32_cam:
    url: rtsp://your-camera-ip:8554/stream
    name: Garage Camera
    record: true
    detect_motion: true
Enter fullscreen mode Exit fullscreen mode

That's it! No hacks, no custom scripts, just standard RTSP. Your camera will show up instantly in the MiBeeNvr web UI.

MiBeeNvr GitHub: https://github.com/Mi-Bee-Studio/MiBeeNvr

🔧 Technical Details

Built with ESP-IDF v5.x using:

  • Hardware-accelerated JPEG encoding
  • Optimized memory management for 24/7 operation
  • Lightweight RTSP server implementation
  • Non-blocking WiFi handling

The firmware is designed to run stable indefinitely - I've had cameras running for months without a single reboot.

📖 Full Documentation

For a complete step-by-step guide including:

  • Advanced MiBeeNvr configuration
  • Performance tuning
  • Troubleshooting common issues
  • Motion detection optimization

Check out the full tutorial:
👉 https://blog.mickeyzzc.tech/en/posts/iot/esp32s3-cam-monitor/

💻 Both Projects Are Open Source

Camera Firmware: https://github.com/Mi-Bee-Studio/seeed-esp32s3-cam

MiBeeNvr NVR Server: https://github.com/Mi-Bee-Studio/MiBeeNvr

PRs, feature requests, and bug reports are all welcome! This is a community project - let's build the best open source camera + NVR ecosystem together.

Why This Matters

In an era where every IoT device seems to want your data, having fully open, local-only options is more important than ever. This camera + NVR stack:

  • ✅ Never sends data anywhere
  • ✅ You can audit every line of code
  • ✅ You control all configuration
  • ✅ Works with your existing self-hosted tools

No subscriptions, no accounts, no tracking. Just a complete surveillance system that works.

What's Next?

I'm actively working on:

  • Auto-discovery between cameras and MiBeeNvr
  • MQTT support for Home Assistant
  • SD card recording on cameras
  • Two-way audio
  • ONVIF support

Let me know what features you'd like to see!

Top comments (0)