How motioneye-project/motioneye works
motionEye is a web interface for configuring and operating motion-based video surveillance. A browser request enters the Tornado server, is dispatched to a handler, and can return the live interface or camera media; configuration and camera-control operations are distinct from media browsing and playback. The repository also includes peripheral capabilities for remote cameras, uploads, notifications, and system controls. The graph follows documented routes and sampled call sites; unsampled subsystem wiring is omitted where it cannot be established.
Main entry points: server.py HTTP server · config.py Camera configuration · main.py Main page · picture.py Picture and movie API
Components 20
Web interface
- HTTP server
motioneye/server.py - Main page
motioneye/handlers/main.py - Configuration API
motioneye/handlers/config.py - Camera actions
motioneye/handlers/action.py - Web UI
motioneye/static/js/main.js
Camera runtime
- Camera configuration
motioneye/config.py - Motion process control
motioneye/motionctl.py - MJPEG client
motioneye/mjpgclient.py
Media management
- Picture and movie API
motioneye/handlers/picture.py - Movie API
motioneye/handlers/movie.py - Movie playback
motioneye/handlers/movie_playback.py - Media files
motioneye/mediafiles.py
Integrations and controls
- Remote cameras
motioneye/remote.py - Upload services
motioneye/uploadservices.py - Notifications
motioneye/sendmail.py - Telegram notifications
motioneye/sendtelegram.py - Device controls
motioneye/controls - Webhook caller
motioneye/webhook.py
Other components
- Browser user
- Camera streams
Connections 21
- Browser user → HTTP server: HTTP requests
- HTTP server → Main page: dispatches page
- HTTP server → Configuration API: dispatches config
- HTTP server → Camera actions: dispatches actions
- HTTP server → Picture and movie API: dispatches media
- HTTP server → Movie API: dispatches movies
- HTTP server → Movie playback: dispatches playback
- Main page → Web UI: renders interface
- Main page → Camera configuration: reads structure
- Main page → Motion process control: queries motion
- Configuration API → Camera configuration: handles configuration
- Camera actions → Camera configuration: reads camera settings
- Camera actions → Motion process control: controls motion
- Picture and movie API → Camera configuration: checks cameras
- Picture and movie API → Media files: reads or deletes media
- Picture and movie API → Remote cameras: requests remote media
- Web UI → HTTP server: requests media
- HTTP server → Motion process control: starts motion
- HTTP server → MJPEG client: starts collector
- MJPEG client → Camera streams: reads streams
- Device controls → Camera configuration: supports device settings