Skip to content

Repository files navigation

UniversalConverter X

UniversalConverter X interlocking conversion-ribbon logo

The all-in-one media tool for Windows — convert, compress, edit, download, record, and 25+ AI-powered tools, all running locally.

A free, open-source alternative to Wondershare UniConverter and similar paid suites. No subscriptions, no cloud processing, no telemetry.

Version Platform License

Interface

UniversalConverter X uses a compact, queue-first desktop workspace: readable typography, restrained tonal surfaces, short page headers, and primary actions kept high in the viewport. Converter opens by default with a flat selectable file table, split Add files action, functional reorder/remove toolbar, and one unified output inspector for format, quality, resolution, frame rate, audio, and destination controls. Status remains quiet inline metadata instead of decorative badges.

Modules

  • Converter — 1000+ formats via FFmpeg, ImageMagick, Pandoc, libvips, libjxl, libheif, Inkscape, Calibre, Assimp, Ghostscript, LibreOffice, resvg, Potrace.
  • Compressor — web/archive profiles, cap-safe social size targets, custom maximum-size two-pass encoding, VMAF-targeted smart compression with verified quality scores, and a guarded D3D12 zero-copy path that probes the real driver before use and falls back without losing requested scaling or deinterlacing.
  • APV camera masters — detect RFC 9924 raw APV and convert locally to H.265 10-bit, ProRes 422 HQ, or H.264 with the bundled FFmpeg build.
  • Preservation and production — curated FFV1+FLAC archival, ProRes 422, and DNxHR HQ workflows with family filters in the preset browser.
  • Video Editor — trim, crop, rotate, upscale, filter, audio adjust, batch.
  • Video Enhancer — portable Real-ESRGAN export, optional Anime4K v4 GLSL chains through mpv, a local Windows App SDK 2.2 VideoScaler capability check, and optional SeedVR2 3B FP8 diffusion restoration for CUDA GPUs.
  • UltraHDR gain maps — preserve ISO 21496-1 metadata during JPEG round-trips, convert UltraHDR JPEG to gain-map AVIF, or create AVIF gain maps from SDR/HDR image pairs through pinned libvips 8.18.2 and libavif 1.4.2 runtimes.
  • Content Credentials — inspect and validate embedded C2PA provenance offline through optional c2patool 0.27+, with remote manifests, OCSP, trust-list downloads, and signing disabled.
  • IAMF immersive audio — create stereo or scalable stereo/5.1 IAMF masters, preserve IAMF stream groups in MP4, and render 48 kHz WAV/FLAC through bundled FFmpeg 8.1.2.
  • Offline AI video tags — sample images or video frames locally, identify 80 COCO object classes, and write bounded per-frame detections plus aggregate tags as atomic JSON.
  • Offline neural speech — generate two-speaker English dialogue with Dia2 1B or a consented, PerTh-watermarked voice clone with Chatterbox Turbo. Both use pinned local assets with exact hashes and separate CUDA runtimes; inference cannot access the network.
  • Reviewed ComfyUI workflows — submit an Export (API) graph to an already running loopback ComfyUI server, wait for its exact prompt ID, and atomically export local artifacts without installing nodes or models.
  • Lossless display metadata — H.264/H.265 edge-crop metadata and packet-preserving aspect-ratio overrides in the Editor and ClipForge presets.
  • Downloader — 1000+ sites: YouTube, Twitch, Kick, Rumble, Vimeo, X, Facebook, podcasts, direct URLs.
  • Recorder — screen, webcam, system audio, microphone.
  • Automation — shared CLI/REST/PowerShell engine catalog plus safe metadata-based conditional preset planning.
  • Toolbox — 40+ specialized tools across Image, Video, AI, Audio, Documents, Disc, and Other categories.

Toolbox highlights

Category Tools
Image Image Converter · GIF Maker · Image Upscaler (AI) · AI Portrait · Slideshow Maker · Metadata Editor
Video Offline AI Tags · Auto Highlight · Av1an Per-Scene Parallel Encode · Trusted VapourSynth Scripts · Auto Reframe (AI) · Auto Crop (AI) · Watermark Editor · Frame Snapshot · Scene Detection · Timeline Preview · Track Manager
AI Reviewed ComfyUI Workflows · Background Remover · Subtitle Remover · Auto Subtitle · Vocal Remover · Voice Changer · Text-to-Speech · Speech-to-Text · Photo Restoration · Lip Reading
Audio Audio Converter · Audio Compressor · IAMF Immersive Audio · Spatial Audio (Ambisonics / binaural / 5.1 / 7.1) · Noise Remover (AI)
Documents Document Converter (LibreOffice) · Archive Tool (7-Zip) · PDF Tools (pikepdf) · Subtitle Converter (pysubs2) · Font Converter (fonttools) · eBook Converter (Calibre) · Unified image + searchable PDF/A OCR
Disc Data CD/DVD/Blu-ray imaging and burn · DVD-Video authoring · single-title BDMV authoring · DVD Rip · Commercial Detection · DVD Copy (planned)
Other Format Inspector · Content Credentials · Pkl Preset Compiler · Chapter Marks · Watch Folders · History · VMAF Quality

Architecture

UCX is a C# / .NET 10 / WinUI 3 shell that hosts the Converter natively and orchestrates specialized engines as sidecar processes. Each sidecar lives under tools/<name>/ and follows the NDJSON CLI contract documented in tools/README.md.

Representative sidecar engines: VideoCrush, ClipForge, StreamKeep, AlphaCut, VideoSubtitleRemover, LipSight, Vertigo, FrameSnap, GifStudio, HEICShift, Comskip, Audio Compressor, Voice Changer, Slideshow Maker, and Video Face Enhance.

Local automation definitions can also be compiled from Pkl 0.32+ into UCX preset XML through the pkl-preset engine. The compiler uses pkl eval only, confines file-module access to the source directory, permits only Pkl's built-in output-format property while denying file/environment/network resources and projects, disables caches and user settings, and emits a preset only after strict schema validation. Pkl remains an optional external tool and is never downloaded by UCX.

Features

  • Right-Click Context Menu — convert files directly from Windows Explorer.
  • Local Processing — all conversions happen on your machine. No telemetry.
  • Progress Tracking — real-time progress with speed and ETA, NDJSON sidecar contract.
  • Batch Conversion — convert and process multiple files at once.
  • Commercial Detection — analyze local recordings through an explicitly provisioned Comskip runtime, emit EDL and chapter metadata without changing the source, and optionally export an atomic commercial-free copy through managed FFmpeg.
  • Blu-ray Authoring — transcode one local title to H.264/AC-3, author and validate a persistent BDMV folder, then create a UDF 2.50 ISO or burn it through Windows IMAPI2. The optional tsMuxeR 2.7.0 runtime is installed only by the explicit tools/discburn/build-runtime.ps1 -AcceptApacheLicense command from a size- and SHA-256-pinned Apache-2.0 release archive.
  • Custom Presets — create, duplicate, and edit validated workflows in-app, including per-file, input-only batch, output-folder batch, single-output, and extraction modes.
  • Reviewed Community Presets — inspect the bundled SysAdminDoc-operated catalog offline, preview the exact engine/arguments/license/SHA-256, and install only after explicit digest acceptance; installed entries never auto-update.
  • Semantic Preset Search — rank natural media intents such as “make movie smaller” with local sparse TF-IDF vectors and domain aliases in both the Presets UI and CLI; no model, Qdrant service, network, or telemetry is involved.
  • Offline Neural Speech — run Dia2 1B multi-speaker dialogue or Chatterbox Turbo voice cloning from the Presets UI and automation surfaces. Chatterbox requires selecting exactly one local reference-audio file together with one or more text files, and the preset explicitly acknowledges consent; generated audio retains the model's PerTh watermark.
  • Reviewed ComfyUI Workflows — run local Export (API) JSON through a separately managed loopback ComfyUI server, with explicit trust, bounded overrides/polling/exports, blocked redirects and known network nodes, and atomic output directories.
  • Av1an Per-Scene Encoding — split long videos at detected scene boundaries, distribute chunks across local encoder processes, resume interrupted work, and optionally target a perceptual quality score through a user-installed Av1an/VapourSynth/encoder toolchain.
  • Trusted VapourSynth Scripts — inspect output metadata, export simple/full DOT filter graphs, or render a reviewed local .vpy script through VSPipe and managed FFmpeg. Scripts are executable Python and require explicit trust; UCX never downloads them.
  • Image Quality Targeting — automatically find the best JPEG, WebP, AVIF, HEIC, or JXL quality for a size, PSNR, or local SSIMULACRA2 target.
  • Batch Image Editing — apply named looks, colour/tone controls, blur, grain, vignette, tint, and borders while retaining compatible alpha and multi-frame output.
  • Face Blur Privacy Filter — detect and irreversibly obscure frontal faces in every video frame with an offline, fail-closed OpenCV pipeline.
  • Offline AI Video Tags — sample up to a bounded number of local frames, detect people/animals/vehicles and other COCO objects, and produce searchable JSON metadata without changing the source media.
  • Auto Highlight — rank scene-change and visible-motion peaks locally, review clip windows, and export an audio-preserving reel, CMX 3600 EDL, or OpenTimelineIO timeline.
  • Exact Chapter Editor — import, edit, delete, and export MKV/MP4/MOV markers while retaining untouched PTS values; verified stream-copy muxing uses MKVToolNix 97+ for MKV and FFmpeg for MP4/MOV.
  • Conversion History — use bounded multi-term local search across engines, actions, source/output paths, presets, and failure details; export filtered jobs or restore exact Converter settings for a re-run.
  • Queue Automation — notify, sleep, safely schedule shutdown, or run a hidden PowerShell hook with a JSON summary.
  • Watch Folders — process stable new or renamed files automatically with duplicate and self-output loop protection.
  • Modern UI — compact WinUI 3 shell with readable typography, tonal grouping, consistent page hierarchy, and dark/light themes.
  • CLI Support — full command-line interface for automation (ucx).

Supported Converters

Converter Input Formats Output Formats Category Priority
FFmpeg 472+ 199+ Video, Audio 100
resvg 1 (SVG) 4+ SVG Rendering 97
libheif 4+ 3+ HEIC/HEIF 96
Inkscape 10+ 17+ Vector Graphics 95
libjxl 2+ 3+ JPEG XL 94
libvips 40+ 25+ High-Perf Images 92
ImageMagick 245+ 183+ General Images 90
Potrace 5+ 6+ Raster to Vector 88
Calibre 26+ 19+ E-books 85
Assimp 40+ 25+ 3D Models 85
Pandoc 43+ 65+ Documents 80
Ghostscript 4+ 8+ PDF Processing 75
LibreOffice 41+ 22+ Office Docs 70

Installation

Requirements

  • Windows 10 21H2+ or Windows 11
  • .NET 10 Runtime
  • Additional converter tools as needed (the Windows installer includes FFmpeg 8.1.2)
  • DVD-Video authoring requires dvdauthor on PATH or configured through UCX_DVDAUTHOR; data CD/DVD imaging and burning use Windows IMAPI2 without it
  • Gain-map presets require the opt-in pinned runtime (gainmap download-runtime --accept-licenses); the manifest records third-party licenses, immutable URLs, sizes, and SHA-256 hashes
  • Dia2 and Chatterbox are opt-in GPU tools. Install their reviewed model bundles with ucx invoke-engine dia2tts --args-json '["install-model","--accept-license"]' and ucx invoke-engine chatterboxtts --args-json '["install-model","--accept-license"]'. Dia2 uses Apache-2.0 code/weights plus the CC-BY-4.0 Mimi codec weights; Chatterbox and its PerTh watermarker are MIT.

Quick Start

  1. Install the portable release with winget install SysAdminDoc.UniversalConverterX, or download and extract the unsigned portable ZIP from the latest release.
  2. Launch UniversalConverterX.exe for the desktop workspace or ucx.exe for automation.
  3. Install any additional converter tools you need (or use ucx tools download).
  4. Start converting!

The release also includes an intentionally unsigned MSIX for managed sideload environments that choose to apply their own disposable local sideload key. The portable ZIP needs no certificate and is the artifact used by WinGet.

CLI Usage

# Convert a single file
ucx convert video.mp4 -o mp3

# Convert multiple files
ucx convert *.png -o webp -q high

# Export per-file status, sizes, timing, and warnings as JSON or CSV
ucx convert *.mov -o mp4 --report batch-report.json

# Move originals to an archive folder after verified output is created
ucx convert *.mov -o mp4 --source-action move --source-archive _converted-sources

# List supported formats
ucx list formats

# Check installed tools
ucx tools check

# Show file info
ucx info document.pdf

# Discover the same native and sidecar engines exposed by the desktop, REST,
# and PowerShell surfaces; include readiness and manifest metadata as JSON
ucx engines --json

# Invoke any installed sidecar without a preset-specific CLI wrapper
ucx invoke-engine scenedetect --args-json '["presets"]'

# Run the preset-backed offline video tagger after its explicit model install
ucx convert-preset --preset "AI Video Tags - Offline JSON" video.mp4

# Rank up to 50 presets by local semantic similarity
ucx convert-preset --list --search "make movie smaller"

# Inspect and explicitly install a reviewed local community preset
ucx community-presets list
ucx community-presets preview community-h264-720p-compact
ucx community-presets install community-h264-720p-compact --accept-sha256 <digest>

# Start the loopback-only REST surface; GET /engines discovers the catalogue
# and POST /convert accepts {"engine":"...","args":["..."]}
ucx serve --port 17654

# Scrape dependency-free local job counters and gauges in Prometheus 0.0.4 format
curl http://127.0.0.1:17654/metrics

Commands

Command Description
convert Convert one or more files
list List formats, converters, or categories
info Show information about a file
config View or modify configuration
tools Manage converter tools
engines Discover the shared UI/CLI/REST/PowerShell engine catalogue
invoke-engine Run an installed sidecar with a JSON argument array
convert-preset Run a named desktop-compatible preset
community-presets List, preview, and explicitly install the reviewed offline catalog
serve Host the loopback-only REST job API

serve also exposes loopback-only Prometheus metrics at /metrics. A local scrape configuration and importable Grafana dashboard live under integrations/prometheus/; UCX itself does not install or contact either service.

Convert Options

-o, --output <FORMAT>     Output format (required)
-d, --directory <PATH>    Output directory
-q, --quality <LEVEL>     Quality: lowest, low, medium, high, highest, lossless
-f, --force               Overwrite existing files
-p, --parallel <COUNT>    Maximum parallel conversions
--converter <ID>          Force a specific converter
--hw-accel                Enable hardware acceleration
--source-action <ACTION>  After success: keep, move, or delete the source
--source-archive <PATH>   Archive folder for --source-action move
--report <PATH>           Write a per-file .json or .csv batch report

The History page can also export the current filtered history view as the same JSON or CSV report schema.

The bundled PowerShell module exposes the same catalogue through Get-UcxEngine and the same raw invocation path through Invoke-UcxEngine. The native converter engine maps to ucx convert; every specialized engine maps to the same frozen executable selected by WinUI and REST.

Project planning

Project Structure

UniversalConverterX/
├── src/
│   ├── UniversalConverterX.Core/          # Core conversion engine
│   │   ├── Interfaces/                    # Core interfaces
│   │   ├── Models/                        # Data models
│   │   ├── Converters/                    # 13 strategy implementations
│   │   ├── Services/                      # Orchestrator, ToolManager, ToolDownloader
│   │   ├── Configuration/                 # Options
│   │   └── Detection/                     # Magic bytes format detection
│   ├── UniversalConverterX.Console/       # CLI application
│   │   └── Commands/                      # CLI commands
│   ├── UniversalConverterX.UI/            # WinUI 3 application
│   │   ├── Views/                         # XAML views
│   │   ├── ViewModels/                    # MVVM ViewModels
│   │   └── Services/                      # UI services
│   └── UniversalConverterX.ShellExtension/ # Windows Explorer integration
├── tests/
│   └── UniversalConverterX.Core.Tests/    # Unit tests
├── installer/
│   ├── msix/                              # MSIX package manifest
│   └── wix/                               # WiX MSI installer
└── tools/
    └── bin/                               # CLI tool binaries

Building from Source

Prerequisites

  • .NET 10 SDK
  • Windows 10 version 1809 or newer for the WinUI project; Windows SDK and WinUI build tools restore from NuGet

Build

# Build the full Windows solution
.\build.ps1 -Target Build -Configuration Release

# Run the focused core test suite
.\build.ps1 -Target Test -Configuration Release

# SDK-native builds can also use dotnet directly
dotnet build src/UniversalConverterX.sln -c Release -p:Platform=x64
dotnet build src/UniversalConverterX.Console/UniversalConverterX.Console.csproj -c Release

# Verify representative sidecar manifests, imports, and help/operation surfaces
.\tools\verify-sidecars.ps1 -Mode Fast

# Verify every sidecar; add -Freeze to run each PyInstaller build and frozen --help
.\tools\verify-sidecars.ps1 -Mode All

Publish

# Publish CLI and WinUI output
.\build.ps1 -Target Publish -Configuration Release

# Cross-publish native ARM64 apphosts and generate the architecture audit
.\build.ps1 -Target Publish -Configuration Release -Architecture arm64

The ARM64 publish writes to publish/win-arm64/ and verifies the PE machine type of the CLI, WinUI app, Explorer shell extension COM host, and FFmpeg command proxy. Its generated compatibility/arm64-publish.json inventories installed sidecar executables without inferring architecture from filenames; x64-only sidecars require Windows x64 emulation or a later ARM64 rebuild.

On a Snapdragon device with an ARM64 Python environment, probe the locally installed ONNX Runtime package without downloading anything:

ucx tools qnn --json

The command exits successfully only when the OS and Python runtime are ARM64 and ONNX Runtime exposes QNNExecutionProvider. Provider discovery is a readiness check, not a substitute for the on-device inference acceptance test.

Architecture

Strategy Pattern

Each converter tool implements IConverterStrategy:

public interface IConverterStrategy
{
    string Id { get; }
    string Name { get; }
    int Priority { get; }
    bool CanConvert(FileFormat source, FileFormat target);
    Task<ConversionResult> ConvertAsync(ConversionJob job, ...);
}

Orchestrator

The ConversionOrchestrator routes conversions to the best available strategy:

  1. Detects input format (magic bytes + extension)
  2. Finds converters supporting the conversion
  3. Selects highest priority converter
  4. Executes conversion with progress tracking

Configuration

Configuration is stored in %APPDATA%\UniversalConverterX\config.json:

{
  "ToolsBasePath": "C:\\Tools\\UniversalConverterX",
  "MaxConcurrentConversions": 4,
  "EnableHardwareAcceleration": true,
  "PreserveMetadata": true,
  "DefaultQuality": "High"
}

Installing Converter Tools

The Windows installer carries a pinned FFmpeg 8.1.2 build. Use Settings > Converter Tools or ucx tools download <tool> for supported portable tools and updates. UCX installs only SHA-256 verified downloads and keeps replaced binaries under tools/rollback/<tool>/.

AI inference never downloads models, packages, repositories, or executables. Supported optional packs expose a separate download action that shows the third-party licence, requires explicit consent, pins an immutable HTTPS source, and verifies both exact size and SHA-256 before atomic installation. Other engines require a pre-provisioned local model and fail closed when it is absent. User-requested online services such as cloud lip reading and local Ollama endpoints remain clearly separate from asset acquisition.

The videotag engine uses Google's versioned MediaPipe EfficientDet-Lite0 int8 model through standalone LiteRT, not MediaPipe Tasks. Install the 4,602,795-byte Apache-2.0 model only with videotag download-model --accept-license; the exact SHA-256 is checked before atomic promotion. Tagging then enables the shared process network guard, samples locally, emits an atomic JSON report, and sends no usage or performance metrics.

The comfyui engine never installs or updates ComfyUI, models, or custom nodes. Export a graph with ComfyUI's Export (API) action, review every node, start the local server with --disable-api-nodes, and run the ComfyUI - Run Reviewed Local Workflow preset. UCX accepts only HTTP loopback endpoints, refuses redirects, embedded URLs/credentials, and known network/cloud node classes, requires an explicit workflow acknowledgment, and atomically exports the exact prompt's final artifacts. Custom nodes remain executable third-party Python and must be independently trusted.

Converter exposes generated FFmpeg argument templates in its Advanced panel. Command editing is off by default; enable it under Settings > Advanced to edit a batch-safe {input}/{output} template or review exact commands generated inside sidecars before they run. UCX never sends edited text through a command shell and blocks shell metacharacters introduced by an edit.

Third-party sidecar plugins

Drop each plugin into %LOCALAPPDATA%\UniversalConverterX\plugins\<id>\. A plugin remains quarantined until its complete directory hash is approved under Settings > Trusted Plugins; changed files are disabled automatically, and links/reparse points are rejected. Trusted presets appear in Presets and as one Toolbox tile per plugin.

Each directory needs a manifest.json, its declared executable, and at least one preset:

{
  "schemaVersion": 1,
  "id": "example-plugin",
  "name": "Example Plugin",
  "version": "1.0.0",
  "description": "Local example conversion workflow",
  "engine": "example-plugin",
  "executable": "example-plugin.exe",
  "presets": ["presets/example.preset.xml"]
}

The directory name, id, and engine must match. Plugin preset files use the same validated .preset.xml schema as built-in workflows.

Subtitle Studio runs a local Whisper → optional Helsinki OPUS-MT ONNX pipeline, opens the timecoded cues for text/timing edits, and exports SRT, VTT, or ASS. Video sources can also receive a hard-coded caption copy after the edited subtitle file is saved.

Speech-to-Text also offers NVIDIA Parakeet TDT 0.6B v3 for CUDA systems and its 25 supported European languages. Its pinned CC-BY-4.0 model pack is never fetched implicitly: select Parakeet, review the license, and use the explicit model-download action before transcribing. CPU-only systems can continue using faster-whisper or whisper.cpp.

Video Enhancer keeps Real-ESRGAN as its portable default and adds Anime4K v4.0.1 as an optional 2× GLSL backend through mpv. Modes A, B, and C cover line restoration, soft restoration, and denoise; the pinned approximately 0.8 MB MIT shader pack requires explicit consent and SHA-256 verification, and all rendering remains local. SeedVR2 3B FP8 remains available as an optional diffusion-restoration engine on NVIDIA CUDA systems with at least 10 GB VRAM (12 GB or more recommended). Select SeedVR2, review the Apache-2.0 terms, and explicitly download the pinned approximately 3.9 GB runtime/model pack. UCX verifies immutable revisions and SHA-256 hashes, blocks cleanly when optional packs or runtimes are unavailable, and disables downloads during restoration.

ONNX Runtime compatibility

ONNX Runtime 1.27 deprecates CUDA 12 and makes CUDA package selection explicit. UCX therefore advances its CPU-only RapidOCR path while holding CUDA-capable engines on the last validated pre-transition line:

Sidecar ORT requirement Execution path Migration state
videosubtitleremover >=1.27,<1.28 RapidOCR CPU; CUDA work uses PyTorch/Paddle 1.27 enabled
alphacut >=1.26,<1.27 Optional ONNX CUDA 12 Hold for CUDA 13 smoke
stemkit >=1.26,<1.27 MDX-Net via optional ONNX CUDA 12 Hold for CUDA 13 smoke
translatekit >=1.26,<1.27 OPUS-MT via optional ONNX CUDA 12 Hold for CUDA 13 smoke

Preset health reports the held CUDA transition before launch. Do not override those upper bounds unless the matching CUDA 13 ONNX Runtime package and the complete sidecar stack have been validated together.

For full YouTube format extraction, install both the managed yt-dlp channel and Deno runtime. The Downloader health card reports their current status and can install or update both:

ucx tools download yt-dlp
ucx tools download deno

Windows (winget)

winget install Gyan.FFmpeg
winget install ImageMagick.ImageMagick
winget install JohnMacFarlane.Pandoc
winget install calibre.calibre
winget install TheDocumentFoundation.LibreOffice

Windows (Chocolatey)

choco install ffmpeg imagemagick pandoc calibre libreoffice

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for guidelines.

Acknowledgments

About

A powerful, native Windows file conversion application with context menu integration, supporting 1000+ format conversions.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages