App de escritorio para Windows que comprime videos a H.264 con NVENC (GPU NVIDIA) o libx264 (CPU como fallback). Pensada para entrevistas, podcasts y charlas — donde la imagen es estática y se gana muchísimo ratio de compresión sin pérdida visible.
UI moderna en CustomTkinter, drag & drop, cola de procesamiento, telemetría en vivo de CPU/GPU/NVENC, logs persistidos, notificaciones de Windows al finalizar, integración con menú contextual del Explorador.
- 3 presets de calidad: Alta calidad (CQ 21) · Balanceado (CQ 24) · Máximo ahorro (CQ 27)
- NVENC con fallback inteligente: detecta soporte real (no solo si está listado), prueba con frame real, cae a libx264 si la GPU no anda
- Cola de videos: arrastrá varios juntos o seleccioná con Ctrl/Shift; procesa secuencialmente
- Drag & drop multi-archivo: incluyendo desde el menú contextual del Explorador
- Telemetría en vivo: CPU% · RAM · GPU% · NVENC% · VRAM · Temp · Watts
- Logs en vivo + archivo: panel coloreado por nivel (INFO/OK/WARN/ERR/FFMPEG/TELEM), persistencia a
logs/con timestamp - Toast nativo de Windows al finalizar con resumen y botón "Abrir carpeta"
- Menú contextual: click derecho en cualquier video → "Comprimir con Compresser"
- Plug & play: opción de ejecutar desde Python (
run.bat) o como.exeúnico con ffmpeg embebido
- Windows 10/11 64-bit
- (Opcional pero recomendado) GPU NVIDIA con driver ≥ 530 para NVENC. Sin GPU usa libx264.
git clone https://github.com/facukoren/compresser.git
cd compresser
setup.batsetup.bat crea el venv, instala dependencias, descarga ffmpeg 6.1.1 si no lo tenés en PATH, y lanza la app.
Para corridas siguientes: run.bat.
build.batGenera dist/Compresser.exe (~68 MB, ffmpeg embebido, funciona offline en cualquier Windows 10/11 sin instalar Python ni nada).
Después de buildear:
cd dist
register_context_menu.batRegistra "Comprimir con Compresser" en el menú contextual de Windows para 12 extensiones de video (.mp4 .mkv .mov .avi .webm .flv .wmv .m4v .ts .mpg .mpeg .m2ts). Sin admin (usa HKEY_CURRENT_USER).
Para sacarlo: unregister_context_menu.bat.
El .exe acepta videos como argumentos. Útil para automatización:
Compresser.exe "video1.mp4" "video2.mp4" "video3.mp4"Carga los tres en la cola automáticamente al iniciar.
Con NVENC (GPU):
ffmpeg -i input.mp4 \
-c:v h264_nvenc -preset p7 -tune hq -profile:v high \
-rc vbr -cq <21|24|27> -b:v 0 \
-multipass fullres -spatial-aq 1 -temporal-aq 1 -bf 3 \
-c:a aac -b:a 128k -movflags +faststart \
output.mp4
Fallback CPU (libx264):
ffmpeg -i input.mp4 \
-c:v libx264 -preset medium -profile:v high \
-crf <19|22|25> -bf 3 \
-c:a aac -b:a 128k -movflags +faststart \
output.mp4
compresser/
├── compresser.py # Todo el código de la app
├── requirements.txt # Deps Python
├── setup.bat # Primera ejecución (crea venv + lanza)
├── run.bat # Ejecuciones siguientes
├── build.bat # Empaqueta el .exe
├── register_context_menu.bat # Registra menú contextual
└── unregister_context_menu.bat # Lo saca
Artefactos generados en runtime (ignorados en git):
ffmpeg/— ffmpeg descargado o embebidologs/— un archivo por sesión, timestampedconfig.json— última carpeta de salida elegida.venv/,build/,dist/,__pycache__/— Python/PyInstaller
customtkinter— UI moderna sobre Tktkinterdnd2— drag & droppsutil— telemetría CPU/RAMnvidia-ml-py— telemetría GPU NVIDIA + encoder usagewinotify— toasts nativos de Windows
MIT