About this project

ESP32-CAM_MJPEG2SD is an Arduino application for ESP32 and ESP32-S3 camera boards using OV2640, OV3660, OV5640, or PY260 sensors. It stores JPEG frames as AVI files on SD card so recordings can replay at the intended frame rate in standard media players. An installed I2S or PDM microphone can add 16 kHz mono PCM audio, and telemetry can be recorded when supported sensors are present. Recording can start from camera-based motion detection, PIR, radar, accelerometer, another trigger pin, manual browser controls, time-lapse mode, or continuous dashcam-style segmented recording. The web interface supports live MJPEG viewing, AVI playback, folder and file deletion, browser download, storage cleanup, and upload through FTP, HTTPS, or WebDAV. It also provides RTSP streaming with video, audio, and subtitles, streaming to remote NVR systems, Telegram or email notifications, MQTT status and control with Home Assistant integration, NTP or browser time synchronization, mDNS, optional HTTP authentication and HTTPS, OTA updates, and logs in RTC RAM, over websocket, or on SD card. Peripheral support includes pan/tilt servos, lamps and LED strips, H-bridge and stepper motor control, joysticks, battery voltage monitoring, temperature sensors, I2C devices such as BMP280, BME280, MPU6050, MPU9250, SSD1306, and LCD1602, plus an auxiliary board reachable by IP or UART for vehicle, servo, and photogrammetry hardware. ESP32-S3 builds can use a microphone and speaker for an intercom feature, and Ethernet is supported on suitable boards or with an external W5500 controller. A camera hub feature can access other devices running the same firmware. Installation uses the Arduino IDE, arduino-esp32 core v3.1.1 or newer, PSRAM, and board-specific partition settings. Camera model and optional features are selected in the header, and optional functions are enabled with INCLUDE_* defines. On first Wi-Fi setup the device provides an access point and web wizard for network configuration; web UI files can be downloaded to the SD card and updated later. The README notes that ESP32 memory limits prevent all features from running together and recommends newer ESP32-S3 camera boards for fuller functionality. Browser functions have primarily been tested in Chrome.