Skip to content

BleedingCodes/pyqt-camera-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyQt Camera Dashboard

Python PyQt5 OpenCV License Platform

A multi-camera RTSP dashboard built with Python, OpenCV, and PyQt5.

This application allows you to:

  • View multiple RTSP camera feeds
  • Record camera streams
  • Automatically reconnect disconnected cameras
  • Store camera settings in a JSON configuration file
  • Add new cameras directly from the GUI
  • Automatically organize recordings by date and hour
  • Automatically clean up old recordings when disk usage becomes too high

Main Dashboard

Dashboard


First-Time Setup

Setup Dialog


Add Camera Dialog

Add Camera


Features

First-Time Setup Wizard

When the application launches for the first time:

  • A PyQt setup dialog appears
  • You enter:
    • Camera IP
    • Camera name
    • Username
    • Password
  • The application automatically creates camera_config.json

Passwords are masked during entry.


GUI Features

  • Live camera dashboard
  • Individual recording controls
  • Start/Stop all recording buttons
  • Dynamic camera addition using the + button
  • Dark theme UI
  • Automatic camera tile removal on repeated failures

Installation

Linux / Ubuntu

Install system dependencies:

sudo apt update
sudo apt install python3 python3-pip python3-venv git

Clone the repository:

git clone https://github.com/BleedingCodes/pyqt-camera-dashboard.git
cd pyqt-camera-dashboard

Create and activate a virtual environment:

python3 -m venv venv
source venv/bin/activate

Install Python dependencies:

pip install -r requirements.txt

Run the app:

python camera_dashboard.py

Windows

Clone the repository:

git clone https://github.com/BleedingCodes/pyqt-camera-dashboard.git
cd pyqt-camera-dashboard

Create and activate a virtual environment:

py -m venv venv
venv\Scripts\activate

Install dependencies:

pip install -r requirements.txt

Run the app:

python camera_dashboard.py

First-Time Launch

On first launch, the app creates:

camera_config.json

You will be prompted to enter:

  • Number of cameras
  • Camera IP address
  • Camera display name
  • Username
  • Password

Passwords are masked in the setup dialog.

Do not upload camera_config.json to GitHub.


Configuration File

The application stores camera settings in:

camera_config.json

Example structure:

[
  {
    "name": "Front Door",
    "ip": "192.168.1.100",
    "username": "admin",
    "password": "password123"
  }
]

Recording Storage

Recordings are automatically organized like this:

recordings/
└── YYYY-MM-DD/
    └── HH/

Example:

recordings/
└── 2026-05-17/
    └── 14/

Security Notice

Do NOT upload camera_config.json to GitHub.

The .gitignore file is configured to prevent accidental uploads of credentials and recordings.


Future Improvements

Ideas for future versions:

  • Motion detection
  • GPU acceleration
  • H.265 support
  • PTZ controls
  • Web dashboard
  • Docker support
  • Encrypted credential storage
  • Multi-monitor support

License

MIT License

About

PyQt5 + OpenCV RTSP camera dashboard with recording, JSON camera configuration, and dynamic camera management.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages