RP

RPi Cam Web Interface

Web-based control and streaming for the Raspberry Pi camera

Video Surveillance ★ 1.6k stars Easy setup MIT

RPi Cam Web Interface is a web-based control panel for the Raspberry Pi camera module, offering live streaming, recording, and motion detection. It is a popular choice for simple DIY surveillance projects.

Key features

  • Live camera streaming
  • Recording and snapshots
  • Motion detection
  • Web control panel

Pros & cons

Strengths

  • Easy DIY setup
  • Lightweight

Trade-offs

  • Raspberry Pi camera only
  • Single-camera use

RPi Cam Web Interface replaces

Last reviewed Sep 13, 2026 · 749 words

RPi Cam Web Interface depends on the Raspberry Pi's legacy MMAL camera stack, which means it works on a Pi 4 or earlier with the legacy camera option enabled, and does not work on a Raspberry Pi 5 at all, because the Pi 5 dropped that stack in favour of libcamera. That single fact decides most installs before the first git clone. On hardware where it runs, it is still the simplest way to get a live stream, motion-triggered recording and a timelapse out of a Pi camera module, which is why a 2013 project at 1,598 stars is still on people's lists.

The hardware and OS matrix, honestly

The interface wraps raspimjpeg, a small C program that talks to the camera through the same MMAL interface the old raspistill used. On Raspberry Pi OS Buster, that stack is the default and everything works. On Bullseye and Bookworm, the default is libcamera and you must enable legacy camera support in raspi-config, which works on Pi Zero through Pi 4 with the original and v2 camera modules; the Camera Module 3 and the HQ camera's newer sensors are libcamera-only and out of reach. On a Pi 5 there is no legacy mode to enable. If you are buying hardware today for this project, that is the wrong order of operations; buy a Pi 4 and an older module second-hand, or pick different software.

What you get when it does run

A PHP web page served by Apache, Nginx or Lighttpd, whichever the installer offers you, showing a live MJPEG preview at up to 1080p, with buttons for still capture, video recording and timelapse. Motion detection is built in, either the interface's own internal detector or the external motion package, with configurable sensitivity, a mask, and actions on trigger. A scheduler runs different settings by time of day or sunrise and sunset, which is how people set up "record at night, preview by day" without scripting. Captured files land in a media browser with thumbnails, and everything is a plain file on the SD card or a mounted USB drive. Memory use sits well under the catalogue's 256 MB, and a Pi Zero W copes if you keep the resolution modest.

Install: one script, and it takes over the web server

git clone https://github.com/silvanmelchior/RPi_Cam_Web_Interface.git
cd RPi_Cam_Web_Interface
./install.sh

The script installs the web server you pick, drops the interface into its document root, and starts raspimjpeg on boot. Because it owns the web server, running it alongside anything else on port 80 needs a subfolder, which the installer asks about, or a reverse proxy in front. The default install has no password. Set one through the installer's security option or with an .htaccess file, and never forward the port; reach it over your VPN or Tailscale like every other camera on this site.

One camera, one Pi, no NVR

The interface manages the single camera module attached to the Pi it runs on. There is no multi-camera view, no central recorder, and no object detection. For a baby monitor, a bird box, a 3D printer or a workshop door, that is exactly right and anything more is overhead. For a house with four cameras, you want an NVR: MotionEye can collect several Pi cameras and USB webcams into one view, and Frigate adds object detection and works with the modern libcamera stack through go2rtc, which is the route for Pi 5 owners. The video surveillance category compares the field, and the Pi vs mini PC piece is worth reading before committing a Pi to camera duty at all.

What I'd do

If I already had a Pi 3 or Pi 4 with a v1 or v2 camera module, I would put Raspberry Pi OS with legacy camera enabled on it, run the install script, set a password, and use RPi Cam Web Interface for a single-camera job, because nothing else gets a Pi camera onto a web page with motion recording in ten minutes. For any new purchase or a Pi 5, I would skip it entirely and stream the camera with the modern rpicam-vid tools into go2rtc and Frigate, which is more setup and buys a system that will still be maintained in five years. It is a fine project whose hardware has moved on without it.

Compare RPi Cam Web Interface

10 head-to-head comparisons.

Similar video surveillance apps