Skip to content

libre-tools/libreconvert

Repository files navigation

libreconvert

libreconvert is a powerful, offline-first file converter application built with Flutter for desktop platforms. It supports a wide range of file types including images, audio, video, and documents, leveraging system-installed tools like FFmpeg, Pandoc, and ImageMagick for conversions.

Support

If you find this project useful, consider supporting it by buying me a coffee:

Buy me a coffee

Overview

libreconvert is designed to provide a user-friendly experience for converting files locally on your desktop, ensuring privacy and accessibility without requiring an internet connection. The application features a clean GUI for selecting files, choosing output formats, monitoring conversion progress, and configuring advanced settings.

LibreConvert App Screenshot

Core Features

  • File Selection: Select single or multiple files for conversion using native file dialogs.
  • Format Selection: Choose target formats from dropdowns or selection widgets based on file type.
  • Conversion Processing: Perform conversions locally using ImageMagick for images, FFmpeg for audio/video, and Pandoc for documents.
  • Progress Feedback: View conversion progress and results for each file.
  • Batch Processing: Convert multiple files simultaneously with Dart's isolates for concurrency.

Supported Formats

  • Images: PNG, JPG, BMP, GIF, WEBP, HEIC, TIFF, and many more supported by ImageMagick.
  • Audio & Video: MP4, MKV, AVI, MOV, WMV, FLV, MP3, WAV, FLAC, OGG, AAC, M4A, and other formats supported by FFmpeg.
  • Documents: Markdown, HTML, PDF, DOCX, ODT, RTF, TXT, EPUB, and other formats supported by Pandoc.

Getting Started

Prerequisites

LibreConvert relies on external command-line tools for its conversion capabilities. Please ensure you have the following tools installed on your system for full functionality:

1. FFmpeg (for Audio & Video Conversions)

  • Linux (Debian/Ubuntu):

    sudo apt update
    sudo apt install ffmpeg
  • Linux (Fedora):

    sudo dnf install ffmpeg
  • Linux (Arch Linux):

    sudo pacman -S ffmpeg
  • macOS (using Homebrew):

    brew install ffmpeg
  • Windows (using Chocolatey):

    choco install ffmpeg

    (Alternatively, download from ffmpeg.org and add to PATH.)

2. ImageMagick (for Image Conversions)

  • Linux (Debian/Ubuntu):

    sudo apt update
    sudo apt install imagemagick
  • Linux (Fedora):

    sudo dnf install ImageMagick
  • Linux (Arch Linux):

    sudo pacman -S imagemagick
  • macOS (using Homebrew):

    brew install imagemagick
  • Windows (using Chocolatey):

    choco install imagemagick

    (Alternatively, download from imagemagick.org and add to PATH.)

3. Pandoc (for Document Conversions)

  • Linux (Debian/Ubuntu):

    sudo apt update
    sudo apt install pandoc
  • Linux (Fedora):

    sudo dnf install pandoc
  • Linux (Arch Linux):

    sudo pacman -S pandoc
  • macOS (using Homebrew):

    brew install pandoc
  • Windows (using Chocolatey):

    choco install pandoc

    (Alternatively, download from pandoc.org and add to PATH.)

4. TeX Live (for Advanced Document Conversions, e.g., PDF output from Pandoc)

  • Linux (Debian/Ubuntu):

    sudo apt update
    sudo apt install texlive-full # Installs a comprehensive TeX Live distribution

    (For a smaller installation, consider texlive-latex-extra and texlive-fonts-recommended.)

  • Linux (Fedora):

    sudo dnf install texlive-scheme-full
  • Linux (Arch Linux):

    sudo pacman -S texlive-most
  • macOS: Install MacTeX.

  • Windows: Install MiKTeX or TeX Live.

5. Potrace (for JPG/PNG to SVG Conversions)

  • Linux (Debian/Ubuntu):

    sudo apt update
    sudo apt install potrace
  • Linux (Fedora):

    sudo dnf install potrace
  • Linux (Arch Linux):

    sudo pacman -S potrace
  • macOS (using Homebrew):

    brew install potrace
  • Windows (using Chocolatey):

    choco install potrace

    (Alternatively, download from potrace.sourceforge.net and add to PATH.)

6. xdg-desktop-portal and zenity (for File Picker on Arch Linux)

For the file picker to function correctly on Arch-based distributions, you may need xdg-desktop-portal and zenity.

  • Install xdg-desktop-portal:

    sudo pacman -S xdg-desktop-portal
  • Install a backend specific to your desktop environment (e.g., for GNOME/GTK):

    sudo pacman -S xdg-desktop-portal-gtk

    (Replace xdg-desktop-portal-gtk with xdg-desktop-portal-kde for KDE, etc.)

  • Install zenity:

    sudo pacman -S zenity

Installation

  1. Clone the repository:

    git clone https://github.com/libre-tools/libreconvert.git
    cd libreconvert
  2. Install dependencies:

    flutter pub get
  3. Run the application:

    flutter run -d linux  # or -d macos, -d windows depending on your platform

Development

libreconvert is built with Flutter, using Dart for core logic. The project structure is as follows:

  • lib/: Main source code directory.
    • main.dart: Entry point for the application.
    • ui/: User interface widgets.
    • utils/: Utility classes for file handling and conversion.
    • models/: Data models for conversion tasks and settings.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an Issue for any bugs, feature requests, or improvements.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

LibreConvert is a powerful, offline-first file converter application

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published