Skip to content

Repository files navigation

HorosCompress

.NET CI License: MIT

HorosCompress is the open-source home of HorosUpscaling, a Windows desktop app by HorosCode for shrinking large video files with FFmpeg, a clear queue UI, and sensible output options.

Deutsch: Desktop-App zum Verkleinern von Videos — Multi-Auswahl, Warteschlange, Einstellungen für Ausgabe und „Original ersetzen“. Beim Start keine Demo-Jobs.

Topics: #HorosCompress #HorosCode #Avalonia #FFmpeg #VideoCompression


Features

  • Compress — Drag-and-drop or file picker; quality slider and estimated target size
  • Multi-select — Pick several files or a folder; batch queue with combined size summary
  • Empty start — No seeded demo jobs; active processes and history are empty until you add real files
  • FFmpeg — H.264 via libx264 (CPU) or NVIDIA NVENC when enabled in settings and available in your FFmpeg build
  • Output modes — Default same folder as source (*_klein.mp4) or a fixed output folder (Documents\HorosCompress\Output by default)
  • Replace original — Optional setting to overwrite the source after a successful encode (via temp file)
  • Active jobs — Progress, status, queue, cancel; pause holds the progress display (encode continues)
  • History — Completed jobs with savings and paths (in-session; persistence planned)
  • Settings — Export mode, replace original, default quality, GPU toggle, placeholders for language/theme/notifications
  • starter.bat — One-click Windows bootstrap (.NET 8 + FFmpeg via winget, then dotnet run)

UI mockups and reference screens live under mockups/app-v2/ (see screenshots below).

Screenshots

Compress Active processes
Compress Active processes
History Settings
History Settings

Requirements

  • Windows (primary target)
  • .NET 8 SDK
  • FFmpeg on PATH (or use the starter script to install via winget)

Quick start

Windows (recommended): from the repo root, run:

starter.bat

starter.bat calls scripts/bootstrap.ps1, which checks for .NET 8 and FFmpeg, installs them with winget when missing, then runs the desktop app in Release.

Check dependencies only (no app start):

powershell -ExecutionPolicy Bypass -File scripts/bootstrap.ps1 -CheckOnly

Manual:

git clone https://github.com/HorosCodeOriginal/HorosCompress.git
cd HorosCompress
dotnet run --project HorosUpscaling.Desktop -c Release

Encoded files are written according to your settings (same folder as source or your fixed folder). The repo Output/ directory is git-ignored except for .gitkeep (local dev convenience).

Repository layout

HorosCompress/
├── HorosUpscaling.sln          # Solution
├── HorosUpscaling.Desktop/     # Avalonia UI (MVVM), FFmpeg services
├── mockups/app-v2/             # UI reference PNGs + README
├── scripts/bootstrap.ps1       # Dependency check + dotnet run
├── starter.bat                 # One-click Windows entry
├── Output/                     # Optional local output (.gitkeep only in repo)
├── CONTRIBUTING.md
├── SECURITY.md
└── LICENSE

Build

dotnet build HorosUpscaling.sln -c Release
dotnet build HorosUpscaling.sln -c Debug

CI runs on GitHub Actions (Windows, .NET 8) — see .github/workflows/dotnet.yml.

Known limitations (honest scope)

Area Current behavior
Pause Toggles UI progress only; FFmpeg keeps encoding
Language / theme buttons Stored in settings; full UI switch not yet wired
Notifications Setting stored; no OS notifications yet
History Session memory only (no disk persistence yet)
GPU NVENC when available; otherwise libx264

Contributing

See CONTRIBUTING.md. Issues and pull requests are welcome.

Security

See SECURITY.md for how to report vulnerabilities.

License

MIT — Copyright (c) 2026 HorosCode. See LICENSE.


Product name in the app: HorosUpscaling. Repository name: HorosCompress.

About

HorosUpscaling — Windows desktop video compression with Avalonia, .NET 8, and FFmpeg (HorosCode).

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages