### THIS CONTENT IS AI GENERATED ###

A high-performance, intelligent batch media compression suite built in Python and PyQt6.
Smart VAC Media Compressor is a professional-grade desktop application designed to handle massive directories of raw media. Whether you're batch-converting gigabytes of uncompressed 3D renders into highly optimized WebP images, or encoding raw gameplay footage into the ultra-efficient AV1 format, this tool abstracts the complex CLI arguments into a beautiful, drag-and-drop interface.
- 🧠 Smart Heuristics Engine: Drop a mixed folder of
.png,.jpg, and.bmpfiles. The Smart Engine automatically evaluates each file extension and applies the mathematically ideal balance of lossy/lossless conversion (e.g., raw.bmpmaps to lossless PNG, heavy.jpgmaps to Quality 92 WebP). - 🔥 Saturated Concurrency: Built on a decoupled
ThreadPoolExecutor, the batch manager automatically scales up to youros.cpu_count(). Got a 16-core CPU? It processes 16 images simultaneously. - ⚡ Quick Converter: A dedicated scratch-pad tab for rapid operations. Drag a
.wavfile in, and it instantly suggests "Extract Audio (MP3)". Zero configuration needed. - 🎬 Next-Gen Video Encoding: Native support for SVT-AV1. Shrink massive MKV/MP4 files using preset CRF values optimized for either visual fidelity or aggressive compression.
- 🗜️ Zero-Encode Pass-Throughs: Features like "Remove Audio" or "Extract Audio" use
-c copyunder the hood, bypassing the encoding pipeline entirely for instantaneous, lossless extraction. - 🎨 Modern UI & Theming: A polished, fully customizable PyQt6 interface with dark mode, system tray integration, window state persistence, and native tooltips.
The application relies on several industry-standard command-line utilities. Ensure these are installed and added to your system PATH.
- Python 3.9+
- FFmpeg / FFprobe — Essential for all video, audio, and GIF operations.
- ImageMagick (v7+) — Powers the core image compression and conversion engine.
- texconv (Optional) — Required for DDS/TGA texture conversions.
- oxipng & jpegoptim (Optional) — Required for true lossless optimization pathways.
Tip
Portable Installation: Instead of adding these .exe files to your system PATH, you can simply drop them into the bin/ folder inside the project directory. The compressor will automatically detect and use them from there!
# 1. Clone the repository
git clone https://github.com/vacterro/VAC-MEDIA-COMPRESSOR.git
cd VAC-MEDIA-COMPRESSOR
# 2. Install Python requirements
pip install -r requirements.txt
# 3. (Optional) Drop your downloaded .exe tools into the /bin folder
# 4. Launch the application
python main.py- Drag and drop entire folders (or multiple files) into the main drop zone.
- Tick the Smart Auto (Best Balance) checkbox to let the application dynamically decide the best compression routes based on file extensions.
- (Optional) Tick Force Output Format to rigidly convert everything to WebP, AVIF, or PNG.
- Hit START BATCH COMPRESSION. Progress is tracked dynamically via the progress bar and real-time log.
- Switch to the "Quick Converter" tab.
- Drag isolated files into the table.
- The software will auto-detect the file type and pre-select the most logical action (e.g., extracting frames, compiling sequences, extracting audio).
- Hit Convert All for instantaneous processing.
gui/main_window.py: The primary PyQt6 view. Handles state, styling, layouts, and drag-and-drop signals.core/batch_manager.py: A non-blocking QThread manager that queues tasks, evaluates file targeting, and resolves path collisions.core/smart_heuristics.py: The knowledge-base engine that maps file extensions to optimal lossy/lossless profiles dynamically.core/image_processor.py/core/video_processor.py: The wrappers that safely bridge the Python runtime to the underlying CLI tools (ffmpeg,magick) with strict timeout, cancellation, and stdout-capture controls.