A professional FFmpeg batch GUI with AviSynth+ support for deinterlacing, PAR/DAR correction, and advanced profile configuration. Designed for frameserving workflows and batch video processing with superior quality.
- QTGMC Deinterlacing - The best deinterlacer in existence, superior to yadif and even AI solutions
- PAR/DAR Support - Full pixel aspect ratio handling with resampling options
- Batch Processing - Queue multiple files with individual progress tracking
- Hardware Acceleration - NVIDIA NVENC support for H.264/H.265
- Modular Architecture - Clean, maintainable codebase split into logical modules
- Preset System - Save and load custom encoding profiles
- Fully Modularized - Split into separate modules to prevent file size limits
- Enhanced UI - Tabbed interface with drag-and-drop support
- Process Management - Improved threading and progress tracking
- File Operations - Timestamp preservation and safe file replacement
-
Pixel Aspect Ratio Handling
- Automatic detection from source files
- Presets for PAL, NTSC, HDV, DVCPRO formats
- Choice between metadata flags or actual pixel resampling
- Convert non-square pixels to square for maximum compatibility
-
Display Aspect Ratio Control
- Standard presets (4:3, 16:9, 21:9, cinema formats)
- Custom ratio input
- Automatic letterboxing/pillarboxing calculations
- 64-bit Implementation - Full 64-bit support
- Multi-threading - Optimized with
SetFilterMTMode
- FFMS2 Support - Better source compatibility
- Container Formats - MKV, MP4, AVI, MOV, WebM support
- Metadata Preservation - Maintains timestamps and chapters
- Python 3.8+
- FFmpeg (must be in system PATH or application directory)
- PySide6 -
pip install PySide6>=6.5.0
- psutil -
pip install psutil>=5.9.0
- AviSynth+ - Required for deinterlacing and advanced filtering
- FFMS2 - Recommended for better source compatibility
# Clone repository
git clone https://github.com/yourusername/video-processor-pro.git
cd video-processor-pro
# Install Python dependencies
pip install -r requirements.txt
# Run application
python main.py
- Add Files: Drag and drop video files or use "Add Files"/"Add Folder"
- Configure Settings:
- Video: Choose codec (H.264/H.265/ProRes), quality (CRF)
- Audio: Select codec and bitrate
- PAR/DAR: Set aspect ratio handling mode
- Processing: Enable deinterlacing if needed
- Start Processing: Click "Start Processing" to begin
- Set PAR Mode to detected format (e.g., "NTSC 4:3")
- Choose "Resample to Square Pixels" for maximum compatibility
- Process to get properly displayed video
- Enable "Use AviSynth+" in Processing tab
- Check "Enable Deinterlacing"
- Choose field order (Top Field First for most content)
- Select quality preset (Slower = better quality)
- Select "NVIDIA H.264 (NVENC)" or "NVIDIA H.265 (NVENC)"
- Adjust CQ value (similar to CRF)
- Requires NVIDIA GPU with NVENC support
video_processor_pro/
โโโ main.py # Application entry point
โโโ config.py # Configuration constants
โโโ models/ # Data models
โ โโโ file_models.py # VideoFile and FileQueue classes
โโโ modules/ # Core functionality
โ โโโ ui_manager.py # UI creation and management
โ โโโ file_manager.py # File queue operations
โ โโโ process_manager.py # FFmpeg process execution
โ โโโ preset_manager.py # Preset handling
โ โโโ avisynth_handler.py # AviSynth script generation
โโโ utils/ # Utility functions
โ โโโ ffmpeg_utils.py # FFmpeg command building
โ โโโ file_utils.py # File operations
โ โโโ par_dar_utils.py # Aspect ratio calculations
โโโ plugins/ # AviSynth plugins (bundled)
- Fastest processing
- Sets display flags in container
- Relies on player support
- Converts non-square pixels to square
- Maximum compatibility
- Slightly slower processing
- Recommended for web upload
- Keeps source PAR unchanged
- For archival purposes
Add custom AviSynth commands in the Processing tab for advanced filtering.
Add additional FFmpeg parameters in the Advanced tab for fine control.
- Save current settings as reusable presets
- Import/export presets for sharing
- Built-in presets for common use cases
- H.264 (x264) - Universal compatibility
- H.265/HEVC (x265) - Better compression
- NVIDIA NVENC - Hardware acceleration
- ProRes - Professional/archival
- Raw/Uncompressed - Maximum quality
- Copy - No re-encoding
- AAC - Standard for MP4/streaming
- MP3 - Legacy compatibility
- Opus - Modern, efficient
- AC3 - Surround sound
- FLAC - Lossless compression
- PCM - Uncompressed
- Copy - No re-encoding
- When using frameserving, transcoding may be required first
- For AviSynth features with non-AVI sources, enable FFMS2
- QTGMC requires significant CPU resources but provides superior results
- PAR resampling increases file size but ensures universal compatibility
Contributions are welcome! The modular architecture makes it easy to:
- Add new codecs or formats
- Implement additional filters
- Enhance the UI
- Add new processing features
This project is provided as-is for video processing purposes.
- FFmpeg - The backbone of video processing
- AviSynth+ - Advanced video filtering
- QTGMC - Superior deinterlacing algorithm
- PySide6 - Modern Qt bindings for Python
For issues or questions:
- Check existing issues on GitHub
- Ensure FFmpeg is properly installed
- Verify AviSynth+ plugins are in place
- Review error logs in the application directory