A simple desktop screen recorder built with Python, Tkinter, OpenCV, and Pillow.
It allows you to record full screen or selected area, choose video quality (480p, 720p, 1080p), and optionally record audio.
β
Record full screen or custom area
β
Choose video quality: 480p, 720p, or 1080p
β
Simple GUI built with Tkinter
β
Saves video as screen_record.mp4
β
Optional audio recording (via PyAudio)
β
Works on Windows, macOS, and Linux
Install dependencies using pip:
pip install -r requirements.txttkinter
opencv-python
numpy
Pillow
pyaudio
π Note:
tkinteris built-in with Python (no need to install manually on most systems).On Linux, install additional tools:
sudo apt install python3-tk scrot xclip portaudio19-devThen reinstall PyAudio if needed:
pip install pyaudio
-
Clone the repository
git clone https://github.com/SajjadTalks/Screen-Recorder.git cd screen-recorder -
Run the app
python main.py
-
Select what to record
- Click Record Full Screen to capture the entire screen
- Or Select Screen Area to draw a rectangle and record that part only
-
Adjust settings
- Choose video quality (480p, 720p, or 1080p)
- (Optional) Enable Record PC Audio
-
Start Recording
- Click Start Recording to begin
- Click Stop Recording to end
-
The video will be saved automatically as:
screen_record.mp4
screen-recorder/
βββ main.py # Main application
βββ requirements.txt # Python dependencies
βββ README.md # This file
- The app uses Pillow (ImageGrab) to take screenshots repeatedly.
- Converts images to frames using NumPy and OpenCV.
- Writes frames to an MP4 file via cv2.VideoWriter.
- (Optional) Records system audio using PyAudio.
- The Tkinter GUI controls start, stop, and area selection.
- Audio recording may not work on some systems (especially Linux without proper PulseAudio/ALSA setup).
- High resolutions (1080p+) may result in lower frame rates on older CPUs.