OBSRecode is a Python-based GUI tool that simplifies re-encoding OBS (Open Broadcaster Software) video recordings using HandbrakeCLI. It leverages NVIDIA's NVenc AV1 encoder to batch process .mkv, .mp4, and .mov files, reducing file sizes while maintaining quality.
OBSRecode is an essential tool for archiving and storing OBS-recorded content, making it ideal for gamers, streamers, and creators who need to manage their footage efficiently. On-the-fly recordings in OBS often prioritize fast, GPU-efficient encoding to capture video in real-time, producing large file sizes that can overwhelm storage capacity. OBSRecode addresses this by re-encoding your recordings with HandbrakeCLI’s slower, more optimized presets, utilizing advanced compression like NVIDIA’s NVenc AV1 encoder after you're finished gaming. This significantly reduces file sizes for archiving and long-term storage purposes, while maintaining high-quality visuals. With its user-friendly GUI, OBSRecode simplifies the process, ensuring your most valued clips remain compact and preserved without cluttering your drives.
OBSRecode streamlines the re-encoding process for OBS recordings, eliminating the need for manual command-line usage. Key features include:
- Batch processing with optional filename prefix filtering (e.g., "OBS").
- Fire and forget. Option to auto shutdown OS once processing complete.
- Customizable bitrate settings.
- Automatic "RE " prefix for re-encoded files to distinguish them from originals.
- Real-time progress tracking and detailed logging.
Running OBSRecode as an Executable
- Download: Get (OBSRecode.exe) from GitHub Releases.
- Requirements: Install HandbrakeCLI (Download) from handbrake.fr and note its path (e.g., C:\Program Files\HandBrake\HandBrakeCLI.exe).
- Run: Double-click OBSRecode.exe, configure settings, and start processing.
Not required if you are using Standalone executable available above.
-
OS: Windows 10 or 11
-
Hardware: NVIDIA GPU with NVenc support (e.g., GTX 16-series or newer)
-
Software:
- Clone the Repository:
git clone https://github.com/Callidus80/OBSRecode.git
cd OBSRecode
- Install Python: Ensure "Add Python to PATH" is checked during installation.
- Install HandbrakeCLI:
Install to a known location (e.g.,
C:\Program Files\HandBrake\HandBrakeCLI.exe). - Run OBSRecode:
python OBSRecode.py
On first run, a settings file is created at C:\Users\<Username>\AppData\Roaming\OBSRecode\OBSRecodeSettings.json.
- Go to "Settings" > "Configure Settings":
- Set:
- HandbrakeCLI Executable: Path to
HandBrakeCLI.exe. - Source Directory: Where OBS recordings are stored.
- Output Directory: Where re-encoded files will be saved.
- Filename starts with: Optional prefix (e.g., "OBS") or blank for all videos.
- Bitrate (kbps): Optional, defaults to 6000 kbps.
- Click "Save".
- Check "Files found for processing" count.
- Click "Start".
- Confirm "Process All Files" if no prefix is set.
- Re-encoded files are prefixed with "RE " (e.g.,
RE OBS_Game1.mkv).
- Batch Processing: Re-encode multiple
.mkv,.mp4,.movfiles. - Filename Filtering: Target files with a prefix (e.g., "OBS").
- Re-encoding Indicator: "RE " prefix on output files.
- Configurable Bitrate: Adjust compression quality (default: 6000 kbps).
- Options: Overwrite, delete originals, debug logging, and log file output.
- Progress Tracking: Real-time progress bar and logs.
- OBS Integration: In OBS, set File > Settings > Advanced > Filename Formatting to "OBS%CCYY-%MM-%DD %hh-%mm-%ss" (e.g.,
OBS2025-03-01 12-00-00.mkv). Use "OBS" in "Filename starts with" to target these files. - Screenshot below.
To target the files prefixed with OBS enter it here under Settings in OBSRecode
- Performance: Lower bitrate (e.g., 4000 kbps) for smaller files; use an SSD for speed.
- "HandbrakeCLI not found": Verify path in settings; reinstall if missing.
- "Settings not set": Fill required fields and save.
- "No video files found": Ensure source directory has
.mkv,.mp4, or.movfiles.
Report bugs or suggest features via GitHub Issues.
If you would like to support my work: Buy me a beer.
Default copyright laws apply.
- Python: PSF License
- HandbrakeCLI: GNU GPL v2
- tkinter: PSF License
For help or bug reports, use GitHub Issues.