A powerful, user-friendly GUI application for video enhancement, upscaling, and format conversion using OpenCV and FFmpeg.
- Multiple Enhancement Methods:
- Unsharp Mask (fast sharpening)
- CLAHE (contrast enhancement)
- Bilateral Filter (noise reduction)
- Combined (balanced enhancement)
- Advanced AI-like processing
- Scaling Options: 0.1x to 10x resolution scaling
- Interpolation Methods:
- Bicubic (recommended)
- Lanczos (highest quality)
- Linear (fast)
- Nearest (fastest)
- Supported Formats: AVI, MP4, MOV, MKV, WMV
- Fast conversion using FFmpeg
- Audio preservation during processing
- Preserve original audio during enhancement/upscaling
- Automatic audio merging using FFmpeg
- Format-specific audio codecs
- Operation Modes:
- Enhance only (improve quality)
- Upscale only (increase resolution)
- Both (enhance + upscale)
- Convert (format conversion only)
- Frame-based range: Process specific frame ranges
- Time-based range: Process specific time segments
- Real-time synchronization between frame and time values
- Pause/Resume/Stop processing
- Real-time progress monitoring
- Comprehensive logging with file export
- Format-specific codec optimization
- Python: 3.8 or higher
- Operating System: Windows, macOS, or Linux
- Memory: 4GB RAM minimum (8GB recommended)
- Storage: Space for input and output videos
- OpenCV (opencv-python)
- PySide6 (Qt6 GUI framework)
- NumPy (numerical operations)
- FFmpeg (optional, for audio preservation and format conversion)
git clone https://github.com/yourusername/advanced-video-enhancer.git
cd advanced-video-enhancerpip install -r requirements.txt- Download FFmpeg from ffmpeg.org
- Extract and add to PATH, or use:
# Using chocolatey
choco install ffmpeg
# Using winget
winget install ffmpeg# Using Homebrew
brew install ffmpeg# Ubuntu/Debian
sudo apt update
sudo apt install ffmpeg
# CentOS/RHEL/Fedora
sudo dnf install ffmpegpython video_enhancer_gui.py- Select Input Video: Click "Browse" to choose your video file
- Choose Output Format: Select desired output format (MP4, AVI, etc.)
- Select Operation: Choose enhancement, upscaling, both, or conversion
- Configure Settings: Adjust enhancement method and scaling options
- Set Range (Optional): Process entire video or specific segments
- Enable Audio Preservation: Check "Preserve Audio" if desired
- Start Processing: Click "Start" and monitor progress
- Improves video quality without changing resolution
- Faster processing, maintains file size
- Good for sharpening, noise reduction, contrast improvement
- Increases resolution using interpolation
- Creates larger, potentially clearer images
- May introduce artifacts with poor source quality
- Enhances quality first, then upscales
- Best quality results but slower processing
- Maximum improvement for most videos
- Format conversion only using FFmpeg
- Fastest option, preserves original quality
- Perfect for format compatibility
| Method | Speed | Quality | Best For |
|---|---|---|---|
| Unsharp Mask | โกโกโก | โญโญ | Slightly blurry videos |
| CLAHE | โกโก | โญโญโญ | Dark/bright area enhancement |
| Bilateral | โก | โญโญโญ | Noise reduction |
| Combined | โกโก | โญโญโญโญ | General purpose (recommended) |
| Advanced | โก | โญโญโญโญโญ | Maximum quality |
Input: 720x480 AVI video
Operation: Enhance (Combined method)
Output: 720x480 MP4 with improved quality
Input: 480p video
Operation: Upscale 2x (Bicubic)
Output: 960p video with doubled resolution
Input: Old 320x240 AVI
Operation: Both (Combined + 3x Lanczos)
Output: 960x720 MP4 with enhanced quality and audio
- Enable/Disable: Use checkbox in GUI
- Auto-save: Logs saved to same directory as input video
- Manual save: Export logs using "Save Log" button
- Requires FFmpeg: Install FFmpeg for audio features
- Automatic detection: GUI shows FFmpeg availability
- Format support: Works with all supported video formats
- Use "Combined" enhancement for best quality/speed balance
- Choose appropriate scaling factors (2x-4x recommended)
- Process shorter segments for testing settings
- Enable logging for troubleshooting
- Solution: Install FFmpeg and enable "Preserve Audio"
- Check: FFmpeg status indicator in GUI
- Check: Log display for detailed error messages
- Try: Different output format (MP4 recommended)
- Verify: Input video file is not corrupted
- Use: Lower enhancement methods for speed
- Reduce: Scaling factor if not needed
- Process: Smaller time ranges for testing
- Application handles codec compatibility automatically
- Warnings don't affect output quality
- Check logs for detailed codec information
- Check logs for detailed error information
- Try different formats (MP4 is most compatible)
- Test with shorter videos first
- Verify FFmpeg installation for audio features
We welcome contributions! Please feel free to submit:
- Bug reports with detailed logs
- Feature requests for new functionality
- Pull requests with improvements
- Documentation updates
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenCV for powerful computer vision capabilities
- PySide6/Qt for the modern GUI framework
- FFmpeg for audio processing and format conversion
- NumPy for efficient numerical operations
If you find this project helpful, please:
- โญ Star the repository
- ๐ Report bugs in Issues
- ๐ก Suggest features
- ๐ Share with others
