Usage Scenarios

Calin Crisan edited this page Oct 4, 2015 · 1 revision


motionEye is the web user interface (the frontend) that you access with your browser to manage your camera(s).

motionEyeOS is the operating system that uses motionEye as frontend and that makes it easy for you to make a surveillance device from a single-board computer. Wherever you use a motionEyeOS device, you could just as well use motionEye installed on a distro of your preference. See this guide if you want to install motionEye on a Linux machine.

A device is, in this context, a computer that runs motionEye or motionEyeOS. A device can have zero, one or more cameras attached.

A hub is a device configured to remotely manage other motionEye devices. Hubs usually have no cameras attached.

A network camera (also called an IP camera) is a camera that can stream over the IP protocol. Network cameras can be either standalone camera units designed to stream over IP, or they can be motionEye-based devices configured for streaming.


A single device with a single camera

This is the simplest scenario that will help you get started and will, in many cases, be sufficient:


  • simple setup


  • users need to separately visit the address of each of the devices (i.e. to open one browser tab per device)
  • accessing the cameras from the Internet requires a separate port forwarding for each of the devices

A single device with multiple cameras

This scenario is suitable for places where two or more cameras can be mounted in a common spot, preferably facing different angles:


  • the cameras can be controlled by a single motionEye device
  • only one IP address and only one port forwarding are required for all the connected cameras


  • the board controlling all the cameras has to be powerful enough to handle all the streams
  • all the cameras can be killed at once by killing the controlling device

Multiple devices with a hub

A local motionEye setup can remotely control another motionEye camera. Particularly, you can simply designate one of your motionEye devices as a hub and add all of your other motionEye-based cameras to this hub as remote motionEye cameras.


  • you can manage all of your cameras from one single place (i.e. one browser tab)
  • only one IP address and only one port forwarding are required for all the cameras
  • the hub device doesn't need to be any more powerful than the others, maybe just to have a better network connection, as it only relays the traffic between your browser and the rest of the devices


  • all the cameras must be motionEye-based
  • all the devices must be reachable by the hub (in the HTTP sense)
  • media files (pictures and movies), if used, must travel through the hub when downloaded
  • media files (pictures and movies), are not centralized (they are created and stored individually by each device)

Multiple devices with a central server

The main difference from the hub case is that the rest of the devices are used as simple network cameras rather than as remote motionEye cameras.

When using Raspberry PIs, the Fast Network Camera function should be enabled, for a considerably better performance.

The server can be motionEyeOS-based (preferably running on a multicore board) or it can be a regular Linux system that runs motionEye:


  • you can view and manage all of your cameras from one single place (i.e. one browser tab)
  • other MJPEG network cameras which are not motionEye-based can be added to the central server
  • only one IP address and only one port forwarding are required for all the cameras
  • the media files can be saved on a hard drive directly attached to the server, thus increasing the available space and download throughput


  • all the media files are stored in one place, making it easier for attackers to destroy the recordings
  • the server must be powerful enough to process the streams from all the cameras
  • all the devices must be reachable by the server