An advanced screen + webcam recorder with built-in trimming and FFmpeg integration.
Professional • Polished • Stylish • Cinematic
Where performance meets presentation.
- See Royal Recorder in Action
- Screenshots
- Overview
- How It Works
- Key Features
- Tech Stack
- Installation
- Usage
- Build to EXE (Optional)
- Folder Structure
- Developer Notes
- Roadmap
- Contribute
- Cinematic Design Philosophy
- License
- Acknowledgments
Click the image above to watch the live demo — record, trim, and export in seconds.
Royal Recorder is a premium screen and webcam recording app built in Python.
It blends power and simplicity — record your screen, capture webcam overlays, and merge them with crystal-clear audio in real-time.
Designed for creators, professionals, and developers who value both performance and presentation.
- Capture — Records screen + webcam simultaneously
- Process — Uses FFmpeg to merge and sync audio/video
- Export — Auto-saves your polished recording
- Screen + Webcam Capture — Record both seamlessly with PiP (Picture-in-Picture).
- Audio Recording — Capture microphone or system audio with perfect sync.
- Trim & Edit — Built-in FFmpeg-powered trimming for precision cuts.
- Auto Merge — Smart post-processing for flawless exports.
- Pause & Resume — Full control during long sessions.
- Overlay & Timer Display — Real-time duration and FPS overlay.
- Cinematic UI — Minimalist, dark-themed design for professionals.
- Offline Ready — No cloud dependency, everything runs locally.
| Component | Library |
|---|---|
| UI / Controls | Tkinter |
| Screen + Camera | OpenCV |
| Audio | PyAudio |
| Processing | FFmpeg |
| Encoding | ffmpeg-python |
| Build | PyInstaller |
git clone https://github.com/<your-username>/RoyalRecorder.git
cd RoyalRecorderpython -m venv venv
venv\Scripts\activate # on Windowspip install -r requirements.txtrequirements.txt includes:
- opencv-python
- pyaudio
- ffmpeg-python
- pillow
- pyinstaller
- tkinter (preinstalled with Python)
This app requires FFmpeg.
- Download FFmpeg and place the binary (
ffmpeg.exeon Windows) in the same folder as this script, or add it to your system PATH. - The app will automatically detect and use it at runtime.
Run the application:
python recordit.py- Select Screen Only or Screen + Camera mode
- Choose your microphone
- Click Start Recording
- Stop when ready — your video and audio are auto-merged
( Tip: Trim your final recording directly inside the app — no need for extra tools.)
To build as a standalone Windows .exe:
pyinstaller recordit.specYour executable will appear in:
dist/
└── recordit.exe│
├── recordit.py
├── recordit.spec
├── royal_version.txt
├── logo.png
├── preview.gif
├── ffmpeg.exe
├── requirements.txt
├── .gitignore
└── venv/
-
Launch the app:
python recordit.py
-
Choose:
- Screen only or Screen + Camera
- Your Microphone
-
Hit Start Recording
-
Trim and export your final clip instantly.
Your videos are auto-saved with timestamps for easy access!
Below your Config Table:
{
"ffmpeg_path": "C:/Tools/FFmpeg/bin/ffmpeg.exe",
"output_path": "D:/Recordings/",
"camera_index": 1,
"resolution": "1920x1080",
"frame_rate": 60
}- Default FFmpeg path →
bash BASE_DIR/ffmpeg.exe - Default output folder → project root
- Camera URL & configs → handled in
bash config.json(ignored in .gitignore) - Supports multiple webcam fallback indexes
Developer Notes (Click to expand)
-
Default FFmpeg Path →
BASE_DIR/ffmpeg.exe
The app automatically looks for the FFmpeg executable in the project’s root directory.
If it’s not found, it will attempt to use the system-wide FFmpeg installation (if added to PATH).
You can override this by specifying a custom path in theconfig.jsonfile.Example:
{ "ffmpeg_path": "C:/Tools/FFmpeg/bin/ffmpeg.exe" }
-
Default Output Directory → Project root (
BASE_DIR) All recordings (video, audio, and merged files) are saved automatically in the main project directory unless otherwise specified. The app also creates timestamped filenames to prevent accidental overwriting.Example output file:
Royal_Recording_2025-11-08_14-32-07.mp4 -
You can modify the output folder by adding this in
config.json:{ "output_path": "D:/Recordings/" }
- Webcam Indexing:
The app dynamically scans connected cameras using OpenCV (
cv2.VideoCapture) and automatically picks the first available webcam. If your system has multiple cameras, you can specify which one to use inconfig.json:
{
"camera_index": 1
}
-
Fallback Logic: If the specified camera index fails, Royal Recorder falls back to index
0automatically to ensure recording continuity. -
Microphone Selection: Audio input is handled through PyAudio. The app lists available devices in the dropdown menu — you can select your preferred mic at runtime.
| Key | Description | Example |
|---|---|---|
ffmpeg_path |
Custom FFmpeg binary location | "C:/Tools/FFmpeg/bin/ffmpeg.exe" |
output_path |
Folder where all recordings are saved | "D:/Recordings/" |
camera_index |
Webcam index (0 = default) | 1 |
resolution |
Output resolution (optional) | "1920x1080" |
frame_rate |
Target FPS (optional, default = 30) | 60 |
- The app checks the validity of paths and devices at startup.
- Missing or invalid paths are handled gracefully — with a notification to the user.
- Temporary files (for trimming/merging) are auto-cleaned after export.
- All video/audio merging is powered by FFmpeg subprocess calls wrapped in Python (
ffmpeg-python).
- The
config.jsonstructure is modular — you can easily extend it for: - Custom overlays
- Hotkey bindings
- Auto-upload destinations (future roadmap)
- Auto-update system
- AI-powered smart editing (auto highlight removal)
- Cloud backup integration
- Mac/Linux support
- UI dark/light theme toggle
Contributions, issues, and feature requests are welcome! Feel free to open a PR or report a bug.
If you like this project, don’t forget to star the repo to support development!
( “It’s not just about recording — it’s about presentation.”)
Minimal motion, clean UI, and fluid transitions — Royal Recorder is built for creators who care about aesthetic experience as much as functionality.
- Inspired by open-source screen recorders and UI frameworks.
- Built by Sourav Sharma.
Licensed under the MIT License. Feel free to use, modify, or distribute with attribution.
Royal Recorder
“Crafted with precision. Recorded with pride.”


