Skip to content

Malte007/TinyFile

Repository files navigation

Tiny File

Tiny File Logo

Tiny File ist eine Desktop-Anwendung zum Verkleinern und Konvertieren von Medien-Dateien. Die App nimmt Bilder, Audio-Dateien und Videos entgegen, verarbeitet sie mit FFmpeg und schreibt die optimierte Datei mit dem Suffix _TinyFile in den Zielordner.

Die Anwendung ist mit Avalonia gebaut und laeuft plattformuebergreifend. Der aktuelle Fokus liegt auf macOS.

Screenshot

Tiny File Hauptfenster

Funktionen

  • Bilder, Audio-Dateien und Videos per Drag & Drop hinzufuegen
  • Einzelne Dateien oder einen ganzen Ordner auswaehlen
  • Mehrere Dateien als Aufgabenliste verarbeiten
  • Parallele Verarbeitung mit einstellbarer Task-Anzahl
  • Ausgabeformat und Qualitaet getrennt fuer Bilder, Audio und Videos konfigurieren
  • Optionales Resize fuer Bilder und Videos
  • Optionales Entfernen von Metadaten
  • FFmpeg direkt aus der Anwendung pruefen und herunterladen
  • Mehrsprachige Oberflaeche fuer Deutsch und Englisch

Unterstuetzte Formate

Eingabe

Audio:

.mp3, .wav, .flac, .aac, .ogg, .opus, .m4a

Bilder:

.png, .jpg, .jpeg, .bmp, .gif, .tif, .tiff, .webp, .avif

Videos:

.mp4, .mkv, .mov, .avi, .webm

Ausgabe

Audio:

mp3, aac, wav, flac, ogg, opus, m4a

Bilder:

jpeg, png, webp, bmp, tiff, gif, avif

Videos:

mp4, mkv, mov, avi, webm

Verwendung

  1. Tiny File starten.
  2. Bei Bedarf ueber das FFmpeg-Menue pruefen, ob FFmpeg verfuegbar ist.
  3. Dateien per Drag & Drop ablegen oder ueber Dateien hinzufuegen... auswaehlen.
  4. Optional in den Einstellungen Ausgabeformat, Qualitaet, Resize-Grenzen und Zielordner anpassen.
  5. Mit Make Tiny File die Aufgabenliste starten.
  6. Fertige Dateien liegen als neue Dateien mit _TinyFile im Namen im Zielordner.

Wenn kein Zielordner gesetzt ist, wird die Ausgabe im Ordner der Eingabedatei gespeichert.

Einstellungen

Die Einstellungen werden automatisch gespeichert.

macOS:

~/Library/Application Support/TinyFile/settings.json

Die wichtigsten Einstellungen:

  • ParallelTasks: Anzahl parallel laufender Aufgaben
  • OutputPath: optionaler Ausgabeordner
  • AudioQuality, ImageQuality, VideoQuality: Qualitaetsstufe
  • ResizeImages, ResizeVideos: Resize aktivieren
  • ImageMaxWidth, ImageMaxHeight: maximale Bildgroesse
  • VideoMaxWidth, VideoMaxHeight: maximale Videogroesse
  • AudioRemoveMetaInformations, VideoRemoveMetaInformations: Metadaten entfernen

FFmpeg

Tiny File verwendet FFmpeg fuer die eigentliche Medienverarbeitung. Die App kann FFmpeg pruefen und herunterladen. Erwartet wird ein ffmpeg-Ordner neben der ausfuehrbaren Anwendung.

Bei einem macOS-App-Bundle liegt dieser Pfad technisch unter:

TinyFile.app/Contents/MacOS/ffmpeg

Wenn FFmpeg nicht vorhanden ist, kann der Download aus der Anwendung heraus gestartet werden.

Entwicklung

Voraussetzungen:

  • .NET SDK passend zum Projekt-Target net10.0
  • macOS, Windows oder Linux fuer die Entwicklung
  • FFmpeg fuer lokale Verarbeitungstests

Projekt bauen:

dotnet build TinyFile.sln

App starten:

dotnet run --project TinyFile/TinyFile.csproj

macOS arm64 Publish:

dotnet publish TinyFile/TinyFile.csproj \
  -c Release \
  -r osx-arm64 \
  --self-contained true \
  -p:UseAppHost=true

Kompakter macOS arm64 Publish als Single File:

dotnet publish TinyFile/TinyFile.csproj \
  -c Release \
  -r osx-arm64 \
  --self-contained true \
  -p:UseAppHost=true \
  -p:PublishSingleFile=true \
  -p:EnableCompressionInSingleFile=true \
  -p:IncludeNativeLibrariesForSelfExtract=true \
  -p:DebugType=None \
  -p:DebugSymbols=false \
  -p:PublishTrimmed=false

Projektstruktur

TinyFile/
  Views/          Avalonia UI
  ViewModels/     UI-Logik und Commands
  Models/         Einstellungen und Task-Modell
  Service/        Settings, Lokalisierung und FFmpeg-Verwaltung
  Assets/         App-Assets

CoreLibrary/
  Services/       FFmpeg-basierte Verarbeitung fuer Audio, Bilder und Videos
  Enum/           Formate und Qualitaetsstufen

Hinweise

  • Fertige Ausgabedateien ueberschreiben vorhandene Dateien nur, wenn die Verarbeitung das erlaubt.
  • Ordnerimport verarbeitet aktuell Dateien auf der obersten Ordnerebene.
  • Fuer Distribution auf macOS reicht eine ad-hoc Signatur lokal aus. Fuer Weitergabe an andere Nutzer sollte das App-Bundle regulaer signiert und notarisiert werden.

AI Transparency Note

Some parts of this project were created with assistance from AI tools such as ChatGPT. All generated content was reviewed, adapted, and integrated manually by the maintainer.

About

Eine Desktopanwendung um Dateien zu kompremieren. Es werden Bilder, Audiodateien und Videodateien unterstützt. Der Funktionsumfang ist bewusst simpel gehalten und soll es ermöglichen die Dateigröße zu verkleinern bei möglichst keinem / wenig Qualitätsverlust.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages