Skip to content

Sourav-x-3202/RoyalRecorder

Repository files navigation

Royal Recorder

An advanced screen + webcam recorder with built-in trimming and FFmpeg integration.
Professional • Polished • Stylish • Cinematic

Royal Recorder Logo
“Record it like royalty.”

Where performance meets presentation.


Python FFmpeg License Platform Status


Table of Contents


Preview

🎬 See Royal Recorder in Action

Watch Demo

Click the image above to watch the live demo — record, trim, and export in seconds.


Screenshots

Royal Recorder UI Preview


Overview

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.


How It Works

How Royal Recorder Works

  1. Capture — Records screen + webcam simultaneously
  2. Process — Uses FFmpeg to merge and sync audio/video
  3. Export — Auto-saves your polished recording

Key Features

  • 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.

Tech Stack

Component Library
UI / Controls Tkinter
Screen + Camera OpenCV
Audio PyAudio
Processing FFmpeg
Encoding ffmpeg-python
Build PyInstaller

Installation

1. Clone this repository

git clone https://github.com/<your-username>/RoyalRecorder.git
cd RoyalRecorder

2. Create and activate virtual environment

python -m venv venv
venv\Scripts\activate   # on Windows

3. Install dependencies

pip install -r requirements.txt

requirements.txt includes:

  • opencv-python
  • pyaudio
  • ffmpeg-python
  • pillow
  • pyinstaller
  • tkinter (preinstalled with Python)

FFmpeg Setup

This app requires FFmpeg.

  1. Download FFmpeg and place the binary (ffmpeg.exe on Windows) in the same folder as this script, or add it to your system PATH.
  2. The app will automatically detect and use it at runtime.

Usage

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.)


Build to EXE (Optional)

To build as a standalone Windows .exe:

pyinstaller recordit.spec

Your executable will appear in:

dist/
└── recordit.exe

Folder Structure

│
├── recordit.py
├── recordit.spec
├── royal_version.txt
├── logo.png
├── preview.gif
├── ffmpeg.exe
├── requirements.txt
├── .gitignore
└── venv/



Quick Start

  1. Launch the app:

    python recordit.py
  2. Choose:

    • Screen only or Screen + Camera
    • Your Microphone
  3. Hit Start Recording

  4. Trim and export your final clip instantly.

Your videos are auto-saved with timestamps for easy access!


Add a “Config Example”

Below your Config Table:

Example config.json

{
  "ffmpeg_path": "C:/Tools/FFmpeg/bin/ffmpeg.exe",
  "output_path": "D:/Recordings/",
  "camera_index": 1,
  "resolution": "1920x1080",
  "frame_rate": 60
}

Developer Notes

  • 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)

Core Configuration

  • Default FFmpeg PathBASE_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 the config.json file.

    Example:

    {
      "ffmpeg_path": "C:/Tools/FFmpeg/bin/ffmpeg.exe"
    }

Output Handling

  • 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/"
    }

Camera & Input Configuration

  • 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 in config.json:
{
"camera_index": 1
}
  • Fallback Logic: If the specified camera index fails, Royal Recorder falls back to index 0 automatically 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.

🧩 Config File Summary (config.json)

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

Runtime Behavior

  • 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).

Extensibility

  • The config.json structure is modular — you can easily extend it for:
  • Custom overlays
  • Hotkey bindings
  • Auto-upload destinations (future roadmap)
```

Roadmap

  • Auto-update system
  • AI-powered smart editing (auto highlight removal)
  • Cloud backup integration
  • Mac/Linux support
  • UI dark/light theme toggle

Contribute

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!


Cinematic Design Philosophy

( “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.


Acknowledgments

  • Inspired by open-source screen recorders and UI frameworks.
  • Built by Sourav Sharma.

License

Licensed under the MIT License. Feel free to use, modify, or distribute with attribution.


Royal Recorder
“Crafted with precision. Recorded with pride.”

About

A high-performance screen + webcam recorder built in Python with FFmpeg, OpenCV, and PyAudio. Includes real-time merging, trimming, and export automation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages