Skip to content

Latest commit

 

History

History
282 lines (220 loc) · 16.1 KB

README.md

File metadata and controls

282 lines (220 loc) · 16.1 KB
EncodeX Logo

FFmpeg-Kraft. Ohne Befehlszeile.

EncodeX — die kostenlose, quelloffene FFmpeg-Oberfläche für Windows, macOS und Linux.

Download · Website · Dokumentation

Ask DeepWiki CI codecov License Release Downloads Stars Forks Watchers Issues Pull Requests Last Commit Contributors Repo Size Languages Top Language TypeScript Electron React Vite MUI FFmpeg Vitest Node.js PRs Welcome

👋 Einführung

EncodeX ist die kostenlose, quelloffene FFmpeg-Oberfläche, die die Leistung von FFmpeg in eine moderne, intuitive Desktop-Oberfläche bringt. Mit ihr kannst du Medien zwischen Formaten konvertieren, Audio extrahieren, Videos schneiden und Bilder komprimieren – alles über eine aufgeräumte, reaktionsschnelle UI mit Batch-Warteschlange, Hardwarebeschleunigung, CLI-Modus und vollständiger Internationalisierung.

Willst du die Arbeit einem KI-Assistenten überlassen? EncodeX enthält außerdem einen integrierten MCP-Server, sodass Werkzeuge wie Claude Desktop, Cursor, VS Code und eigene Agenten deine Medien über das Model Context Protocol für dich konvertieren und verwalten können — weiterhin vollständig auf deinem eigenen Rechner.

Warum EncodeX?

  • ✅ Für immer kostenlos — Open Source (MIT), keine kostenpflichtige Stufe
  • ✅ 100 % privat — Deine Dateien verlassen niemals deinen Computer
  • ✅ Kein Konto, keine Registrierung, kein Tracking
  • ✅ Keine Wasserzeichen, keine Dateigrößenbeschränkungen, keine Werbung
  • ✅ FFmpeg-powered — 51 Video-Codecs, 27 Audio-Codecs, 56 Pixelformate
  • ✅ Hardwarebeschleunigung — NVIDIA, Intel, AMD, Apple Silicon für schnelle Encodes
  • ✅ Stapelverarbeitung — Ganze Ordner auf einmal konvertieren
  • ✅ KI-bereiter MCP-Server — EncodeX über Claude, Cursor, VS Code und eigene Agenten steuern
  • ✅ Plattformübergreifend — Windows 10+, macOS 11+, Linux
  • ✅ 35+ Sprachen mit RTL-Unterstützung

✨ Funktionen

  • 🔄 Medienkonvertierung — 51 Video-Codecs, 27 Audio-Codecs, 56 Pixelformate mit Codec-/Bitraten-/Skalierungs-/Qualitätsreglern
  • 🌀 Drehung & Spiegelung — Videos und Bilder um 90°, 180° oder 270° im Uhrzeigersinn drehen und horizontal oder vertikal spiegeln; beim Stream-Copy für MP4/MOV/MKV wird die Drehung als verlustfreie Metadaten gespeichert
  • 🎛️ Konvertierungsprofile — 140+ vorkonfigurierte Voreinstellungen in 8 Kategorien (YouTube, Instagram, TikTok, Apple, Android, ProRes, HLS u. a.) mit individueller Profilestellung und Letzte-Verwendet-Verfolgung
  • ⚡ Hardwarebeschleunigung — NVIDIA NVENC, Intel QSV, AMD AMF, VAAPI, Apple VideoToolbox, Media Foundation
  • ✂️ Videoschneiden — Frame-genaues Trimmen mit integriertem Player (Rawvideo- + PCM-Pipes, Canvas + Web Audio) und zoombarer Timeline (Wellenform + Thumbnail-Montage)
  • 📋 Batch-Warteschlange — Parallele Verarbeitung (bis zu 4 gleichzeitige Jobs) mit Live-Fortschritt, Fehlern pro Job, Pause/Fortsetzen, Drag-and-Drop-Neuanordnung, Bearbeitung von Job-Optionen, Statusfiltern, JSON-Export/-Import und Energiemaßnahmen nach Abschluss (Herunterfahren/Standby/Ruhezustand)
  • 🖼️ Bildkomprimierung — JPEG/PNG/WebP/BMP/GIF/TIFF mit Qualität/Skalierung, EXIF-Viewer, RGB-/Luma-Histogrammen
  • 🎵 Audioextraktion — Jeder der 27 Audio-Codecs aus jeder Videodatei
  • ℹ️ Medieninfo — Vollständige Pro-Prüfung pro Stream: Codec, Profil, Auflösung, Farbmetadaten, Bildrate usw.
  • ⌨️ CLI-Modus — Headless-Skripting mit Unterbefehlen (convert, info, capabilities, compress, extract-audio, batch)
  • 🤖 MCP-Server — Integrierter Model Context Protocol-Server: 13 Kern-Tools, 3 Ressourcen und 4 Prompts über stdio (encodex --mcp), plus einen eingebetteten localhost-HTTP-Endpunkt, der 6 GUI-äquivalente Tools hinzufügt (Live-Warteschlange, Vorschau, Timeline, Systeminfos, Updates). Einmalige Konvertierungen ausführen oder asynchrone Jobs über Claude Desktop, Claude Code, Cursor, VS Code oder einen beliebigen MCP-Client verwalten
  • ⚙️ 3 Transcoder-Kerne — FFmpeg-API (fluent-ffmpeg), FFmpeg-CLI (child_process), BMF-Framework
  • 🌍 56 Gebietsschemata — 35 Sprachen mit RTL-Unterstützung (Arabisch, Hebräisch)
  • ⌨️ Tastaturkürzel — 60+ Kürzel auf jeder Seite mit In-App-Hilfedialog (Ctrl+/)
  • 🔔 Aktivitätsanzeigen — Live-Navigationsindikatoren mit Hover-Popovers, die den Fortschritt pro Job auf einen Blick zeigen
  • 🛡️ Schließbestätigung — Warnt vor dem Schließen des Fensters, solange Jobs noch laufen
  • 🎉 Easter Eggs — Feiertags-Themenlogos an besonderen Daten
  • 🔄 In-App-Updates — Prüft GitHub Releases, lädt den Plattform-Installer herunter, Fortschritt in Echtzeit
  • 🛡️ Fehlerbehandlung — 16 typisierte Fehlercodes, globale Snackbar, Inline-Banner, React-Error-Boundaries
  • 🌗 Dunkles/Helles Design — Systembezogen mit manuellem Umschalter und dauerhaften Einstellungen

Eine vollständige Aufschlüsselung der Funktionen, unterstützten Formate und Codec-Listen findest du in Funktionen.

📸 Screenshots

Home-Dashboard

🏠 Home-Dashboard

Medienkonvertierung
🔄 Medienkonvertierung
Audioextraktion
🎵 Audioextraktion
Videoschneiden
✂️ Videoschneiden
Bildkomprimierung
🖼️ Bildkomprimierung
Batch-Warteschlange
📋 Batch-Warteschlange
Medieninfo
ℹ️ Medieninfo

📌 Voraussetzungen

  • Node.js 22+
  • FFmpeg — gebündelt über ffmpeg-static; fällt auf das System-ffmpeg zurück, falls die gebündelte Binary nicht verfügbar ist

📥 Downloads

Vorgefertigte Installer sind auf der Seite Releases verfügbar.

macOS

EncodeX ist nicht code-signiert (kein Apple-Developer-Konto). Der macOS-Gatekeeper blockiert die App beim ersten Öffnen.

Option 1 — Per Rechtsklick öffnen:

  1. Klicke mit der rechten Maustaste (oder bei gedrückter Ctrl-Taste) auf die EncodeX-App und wähle Öffnen
  2. Klicke im Bestätigungsdialog auf Öffnen

Option 2 — Quarantäne über das Terminal entfernen:

xattr -cr /Applications/EncodeX.app

Windows / Linux

Lade den .exe-Installer (Windows) oder .AppImage-Installer (Linux) von der Seite Releases herunter und führe ihn aus.

🚀 Installation (aus dem Quellcode)

npm install

🧑‍💻 Entwicklung

# Vite-Dev-Server + tsc-Watch starten (ohne Electron-Fenster)
npm run dev

# Vollständige Dev-Umgebung mit Electron-Fenster
npm run electron:dev

# Schnellstart (erst bauen, dann starten)
npm run dev:start

npm run dev startet zwei Prozesse gleichzeitig:

  1. Vite — stellt den React-Renderer auf http://localhost:5173 mit HMR bereit
  2. tsc — überwacht und kompiliert das TypeScript des Hauptprozesses nach dist/main/

npm run electron:dev wartet, bis Vite bereit ist, kompiliert sowohl Main als auch Preload und startet dann Electron mit dem --dev-Flag, das auf die URL des Vite-Dev-Servers zeigt. DevTools öffnen sich automatisch.

🔨 Build

# Produktions-Build (Renderer + Main + Preload)
npm run build

# Für die aktuelle Plattform packen (ohne Installer)
npm run pack

# Verteilbaren Installer erstellen
npm run dist
Skript Beschreibung
npm run dev:renderer Nur Vite-Dev-Server
npm run dev:main tsc -p tsconfig.main.json --watch
npm run build:renderer Vite-Produktions-Build — Ausgabe nach dist/renderer/
npm run build:main tsc -p tsconfig.main.json — Ausgabe nach dist/main/
npm run build:preload tsc -p tsconfig.preload.json — Ausgabe nach dist/preload/
npm run build Alle drei nacheinander
npm run start Kompilierte App aus dist/ über electron . starten
npm run electron:dev Vite- + Electron-Dev-Umgebung
npm run dev:start Erst bauen, dann starten
npm run format prettier --write für alle src TypeScript/JSON
npm run format:check prettier --check für alle src TypeScript/JSON
npm run pack Build + electron-builder --dir
npm run dist Build + electron-builder (NSIS/DMG/AppImage)

💻 CLI-Nutzung

Zuerst bauen und dann über encodex aufrufen:

encodex convert input.mp4 output.avi --video-codec libx265 --audio-codec aac
encodex info input.mp4 --json
encodex compress photo.png -f jpg -q 30
encodex extract-audio input.mp4
encodex batch 'videos/**/*.mov' --concurrency 2 --output-dir converted

# Als MCP-Server für KI-Assistenten und Automatisierung ausführen
encodex --mcp

Eine vollständige Übersicht aller Unterbefehle, Optionen und Beispiele findest du in CLI-Nutzung.

🧪 Tests

npm test           # Führt alle 123 Testdateien / 1603 Tests aus
npm run test:watch
npm run test:coverage
npm run test:unit
npm run test:integration
npm run test:e2e   # Erfordert einen Build

Eine vollständige Aufschlüsselung der Testsammlung, Testeinrichtung und E2E-Spezifikationen findest du in Tests.

📚 Dokumentation

Dokument Beschreibung
Funktionen Funktionen, unterstützte Medienformate, Codec-Tabellen, Validierungshilfen
CLI-Nutzung CLI-Nutzung, Unterbefehle, alle Optionstabellen, Exit-Codes
MCP-Server MCP-Server-Toolkatalog, Client-Konfigurationen, eingebetteter HTTP-Server, Sicherheit
Tests Testsammlung, Testeinrichtung, E2E-Spezifikationen
IPC-Kanäle IPC-Kanäle, electronAPI-Brücke, alle Methoden und Ereignisse
Projektstruktur Vollständiger Verzeichnisbaum mit Anmerkungen
Architektur Überblick über die interne Architektur und Links zu Deep Dives
Prozesse, Build-System & Start Prozessmodell, Build-System, Startsequenz, CLI-Modus
Transcoder-Abstraktion & Konvertierung Transcoder-Abstraktion, FFmpeg/BMF-Kerne, Hardwarebeschleunigung
Renderer, Zustand & Subsysteme Render-Baum, Seiten, Stores, Warteschlange, Player, i18n, Theming
Update-Manager Implementierungsdetails des In-App-Update-Managers
Wiki Community-Wiki (spiegelt die Dokumentation in durchsuchbarer Form)
Dokumentations-Website VitePress-Website mit Funktionstour, Anleitungen und Release-Blog
Mitwirken Mitwirkungsrichtlinien
Sicherheitshinweise Meldung von Sicherheitslücken
Verhaltenskodex Verhaltenskodex

🧰 Tech-Stack

EncodeX Tech-Stack

🤝 Mitwirken

Richtlinien findest du in Mitwirken. Alle Beiträge sind willkommen – bitte eröffne für größere Änderungen zuerst ein Issue.

Dieses Projekt unterliegt einem Verhaltenskodex.

🔒 Sicherheit

Melde Sicherheitslücken den Projektbetreuern über den Prozess für Sicherheitshinweise. Siehe Sicherheitshinweise.

📄 Lizenz

MIT