Linux and macOS port of File Converter by Tichau. Right-click files in your file manager, pick a format, convert.
If you find this useful, you can buy me a coffee.
- Grab
fileconverter-vX.Y.Z-linux-x86_64.tar.gzfrom the Releases page. - Open a terminal in your downloads folder and run:
tar -xzf fileconverter-v*-linux-x86_64.tar.gz
cd fileconverter-v*
./install.shThe installer detects your file manager and sets up the right-click "File Converter" submenu. The bare fileconverter binary is also attached to each release for power users who want to manage placement themselves (chmod +x fileconverter && ./fileconverter).
git clone https://github.com/AlexDevFlow/Media-Converter.git
cd Media-Converter
./install.shRequires Python 3.9+ and PyYAML (python3-yaml on most distros).
macOS support is new as of v1.4.0. It's tested and CI runs the full suite on a macOS runner, but it hasn't seen nearly as much real-world use as the Linux side yet, so treat it as beta and please report anything odd.
git clone https://github.com/AlexDevFlow/Media-Converter.git
cd Media-Converter
./install.shThe installer puts the tool in ~/.local/share/fileconverter in its own venv
(no PyInstaller binary, so no Gatekeeper headaches), installs the media tools
with Homebrew if you don't have them, and builds a Finder
Sync extension that adds a real submenu to the right-click menu, just like the
Dolphin/Nemo submenu on Linux:
Right-click video.mkv >
File Converter
├── To Mp4
├── To Mp4 (low quality)
├── To Gif
├── To Mp3
├── ...
└── Configure presets...
The submenu only shows presets that work for every file you selected. If you don't have the Swift toolchain, it falls back to one Quick Action per preset instead (same conversions, just a flatter menu).
Conversions open a native progress window (per-file progress, ETA, cancel),
built by the installer with a tkinter fallback. Settings are native too:
double-click File Converter.app in ~/Applications, or run
fileconverter --settings. Video encoding can use Apple's VideoToolbox
hardware acceleration if you turn on "Auto-detect" under GPU accel.
You'll need macOS 13 or newer, the Xcode Command Line Tools
(xcode-select --install, which give you Python 3.9+ and the Swift compiler),
and Homebrew for the media tools. If the submenu doesn't show up right away,
restart Finder with killall Finder, or check that the extension is enabled in
System Settings → General → Login Items & Extensions. One gotcha with the
tkinter fallback: the Tk that ships with macOS is ancient and draws blank
windows, so brew install python-tk if you end up needing it. Uninstall with
fileconverter --uninstall.
Right-click files in your file manager. A File Converter submenu shows conversion options filtered to the selected file types.
Right-click video.mkv >
File Converter
├── To Mp4
├── To Mp4 (low quality)
├── To Mkv
├── To Webm
├── To Gif
├── To Mp3
├── To Ogg
├── ...
└── Configure presets...
A progress window shows conversion status with estimated time remaining. Multiple files convert in parallel.
| Category | Formats |
|---|---|
| Video | 3gp, 3gpp, avi, bik, f4v, flv, m2ts, m4v, mkv, mov, mp4, mts, mxf, mpg, mpeg, ogv, qt, rm, ts, vob, webm, wmv |
| Audio | aac, aif, aiff, ape, dff, dsf, flac, m4a, m4b, mka, mp3, mpc, oga, ogg, opus, wav, wma, wv |
| Image | arw, avif, bmp, cr2, dds, dng, exr, gif, heic, ico, jfif, jp2, jpg, jpeg, nef, pbm, pgm, png, ppm, psd, raf, svg, tga, tif, tiff, webp, xcf |
| Document | csv, doc, docx, epub, html, key, numbers, odp, ods, odt, pages, pdf, ppt, pptx, rtf, txt, xls, xlsx |
| Category | Formats |
|---|---|
| Video | MP4, MKV, MOV, WebM, OGV, AVI |
| Video codecs | H.264 (default), H.265/HEVC, AV1, ProRes — selectable per preset for MP4/MKV/MOV (see Video codecs) |
| Audio | MP3, AAC, M4A (AAC or ALAC), AIFF, OGG, OPUS, FLAC, WAV, WMA, AC3 |
| Image | PNG, JPG, WebP, AVIF, JP2, TIFF, BMP, TGA, ICO, GIF |
| Document | PDF, DOCX, ODT, RTF, TXT, HTML, EPUB, XLSX, ODS, CSV, PPTX, ODP |
Note: not every input/output combination is meaningful (e.g.
csv → pptx), and exotic codecs depend on what your localffmpeg/imagemagickbuild supports. If a conversion fails, please open an issue with the source file type and target format.
The installer checks for these and tells you what to install.
| Tool | Used for | Required? |
|---|---|---|
| FFmpeg | Video and audio conversion | Yes |
| ImageMagick | Image conversion, PDF to image | Yes |
| Ghostscript | PDF processing | Recommended |
| LibreOffice | Office documents (docx, xlsx, pptx) | Optional |
macOS (Homebrew):
brew install ffmpeg imagemagick ghostscript
brew install --cask libreoffice # optional, for document presetsUbuntu / Debian:
sudo apt install ffmpeg imagemagick ghostscript libreofficeFedora:
# ffmpeg-free lacks H.264/H.265 encoders. For video presets, install the full
# ffmpeg from RPM Fusion (https://rpmfusion.org/Configuration) instead:
sudo dnf install ffmpeg ImageMagick ghostscript libreoffice-writer libreoffice-calc libreoffice-impressArch Linux:
sudo pacman -S ffmpeg imagemagick ghostscript libreoffice-stillopenSUSE:
sudo zypper install ffmpeg ImageMagick ghostscript libreofficeFor the Nautilus right-click menu (GNOME/Ubuntu), you also need:
# Ubuntu/Debian
sudo apt install python3-nautilus
# Fedora
sudo dnf install nautilus-python
# Arch
sudo pacman -S python-nautilusRight-click files in your file manager. The submenu only shows presets compatible with the selected files.
Supported file managers:
- Nautilus (GNOME/Ubuntu)
- Nemo (Cinnamon/Linux Mint)
- Dolphin (KDE)
- Thunar (XFCE)
- PCManFM (LXDE/LXQt)
# Convert a single file
fileconverter --conversion-preset "To Mp4" video.mkv
# Convert multiple files
fileconverter --conversion-preset "To Mp3" *.wav
# Use a file list
fileconverter --conversion-preset "To Jpg" --input-files list.txt
# Open settings
fileconverter --settings
# Re-run setup
fileconverter --install
# Remove everything
fileconverter --uninstall| Preset | Output | Notes |
|---|---|---|
| To Mp4 | MP4 | H.264, quality 30, AAC audio |
| To Mp4 (low quality) | MP4 | H.264, quality 20, lower bitrate |
| To Mkv | MKV | H.264, quality 30, AAC audio |
| To Mov | MOV | H.264, quality 30, AAC audio |
| To Webm | WebM | VP9 codec |
| To Ogv | OGV | Theora codec |
| To Avi | AVI | MPEG-4/XviD |
| To Mp4 (H.265) | MP4 | H.265/HEVC, ~half the size of H.264 |
| To Mkv (H.265) | MKV | H.265/HEVC |
| To Mp4 (AV1) | MP4 | AV1 via SVT-AV1, royalty-free |
| To Mov (ProRes) | MOV | ProRes HQ, edit-friendly mezzanine |
| To Gif | GIF | 15fps, palette-optimized |
| To Gif (low quality) | GIF | 10fps, 75% scale |
| To Mp3 | MP3 | VBR ~190kbps |
| To Mp3 (low quality) | MP3 | VBR ~100kbps |
| To Aac | AAC | VBR ~155kbps |
| To M4a | M4A | AAC in MP4 container, ~155kbps |
| To Ogg | OGG | Vorbis ~160kbps |
| To Opus | Opus | ~128kbps |
| To Flac | FLAC | Lossless, max compression |
| To Wav | WAV | 16-bit PCM |
| To Aiff | AIFF | Lossless 16-bit PCM (big-endian) |
| To M4a (Apple Lossless) | M4A | ALAC lossless, Apple ecosystem |
| To Wma | WMA | Windows Media Audio, ~160kbps |
| To Ac3 | AC3 | Dolby Digital, ~192kbps |
| To Png | PNG | Lossless |
| To Jpg | JPG | Quality 85 |
| To Webp | WebP | Quality 85 |
| To Avif | AVIF | Quality 80 |
| To Tiff | TIFF | LZW lossless |
| To Bmp | BMP | Uncompressed |
| To Ico | ICO | Windows icon |
| To Jp2 | JP2 | JPEG 2000, quality 85 |
| To Tga | TGA | Truevision Targa |
| To Pdf | From images or documents | |
| To Docx | DOCX | Word format via LibreOffice |
| To Odt | ODT | OpenDocument Text |
| To Xlsx | XLSX | Excel format via LibreOffice |
| To Ods | ODS | OpenDocument Spreadsheet |
| To Pptx | PPTX | PowerPoint format via LibreOffice |
| To Odp | ODP | OpenDocument Presentation |
| To Epub | EPUB | Ebook (EPUB) via LibreOffice |
| To Rtf | RTF | Rich Text Format via LibreOffice |
| To Txt | TXT | Plain text via LibreOffice |
| To Html | HTML | HTML via LibreOffice |
| To Csv | CSV | From spreadsheets via LibreOffice |
All presets are customizable in the settings window or directly in ~/.config/fileconverter/settings.yaml. When upgrading from an older version, missing default presets are added automatically on next launch (your customisations are preserved).
fileconverter --settingsOr from the context menu: File Converter > Configure presets...
Global: max simultaneous conversions, auto-close window, hardware acceleration (Off / Auto / NVENC / VAAPI), UI language.
Per-preset: output format, video codec (H.264/H.265/AV1/ProRes), input file types, video quality/encoding speed/scale/rotation, audio bitrate/VBR/CBR/channels, image quality/scale/rotation, output filename template, post-conversion action, custom FFmpeg command override.
Settings are stored in YAML at ~/.config/fileconverter/settings.yaml. Example preset:
presets:
- name: "Video/To Mp4 (720p)"
output_type: mp4
input_types: [avi, mkv, mov, mp4, webm, wmv]
output_template: "(p)(f)"
input_post_action: none
settings:
enable_audio: true
video_quality: 28
video_encoding_speed: medium
video_scale: 0.5
audio_bitrate: 128| Variable | Meaning |
|---|---|
(p) or (path) |
Parent directory of input file |
(f) or (filename) |
Input filename without extension |
(F) |
Input filename uppercase |
(o) or (outputext) |
Output extension |
(i) or (inputext) |
Input extension |
(p:d) |
~/Documents/ |
(p:m) |
~/Music/ |
(p:v) |
~/Videos/ |
(p:p) |
~/Pictures/ |
(d0), (d1) |
Directory hierarchy levels |
(n:i) |
File number in batch |
(n:c) |
Total files in batch |
(d:FORMAT) |
Current date/time |
Default template is (p)(f) (same folder, same name, new extension). If the output file already exists, a number is appended automatically: file (2).mp4.
The UI is available in 29 languages. On first launch it picks your system language automatically; you can override it from Settings → Language (the setting is saved in ~/.config/fileconverter/settings.yaml and the window rebuilds instantly in the new language).
Shipped locales: Arabic, Chinese (Simplified & Traditional), Czech, Dutch, English, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Persian, Polish, Portuguese (Brazil & Portugal), Romanian, Russian, Serbian (Cyrillic & Latin), Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese.
To add or update a translation, edit locales/build.py and run python3 locales/build.py. That regenerates each .po and compiles .mo catalogs into locales/<lang>/LC_MESSAGES/.
MP4, MKV and MOV are containers — the codec inside is chosen per preset via the
video_codec setting (or the Video Codec dropdown in settings):
| Codec | Setting | Notes |
|---|---|---|
| H.264 | h264 (default) |
Universal compatibility, hardware-accelerated |
| H.265 / HEVC | hevc |
~half the size at similar quality; hardware-accelerated; tagged hvc1 in MP4/MOV for Apple/QuickTime playback |
| AV1 | av1 |
Royalty-free, smallest files; CPU-only (SVT-AV1) |
| ProRes | prores |
Intra-frame editing mezzanine; keeps 10-bit 4:2:2; CPU-only. prores_profile 0–5 (3 = HQ) |
presets:
- name: "To Mp4 (H.265)"
output_type: mp4
settings:
video_codec: hevc
video_quality: 28H.264 and H.265 use the GPU when hardware acceleration is enabled; AV1 and ProRes always encode on the CPU.
GPU-accelerated video encoding for MP4 and MKV output:
| Mode | GPU | Notes |
|---|---|---|
| Off | None | Software encoding (default, always works) |
| Auto | Auto-detect | Probes your system, picks the best available |
| NVENC | NVIDIA | Requires NVIDIA GPU + drivers |
| VAAPI | AMD / Intel | Works with Mesa drivers on most Linux systems |
hardware_acceleration: auto # off | auto | nvenc | vaapiIf hardware encoding fails, the app falls back to software encoding automatically.
git clone https://github.com/AlexDevFlow/Media-Converter.git
cd Media-Converter
./install.shTo build the standalone binary:
./build.shProduces dist/fileconverter, a standalone executable that bundles Python and all dependencies.
fileconverter --uninstallRemoves context menu entries, desktop entry, launcher scripts, and config directory. Does not remove the binary itself.
The context menu doesn't appear after install.
Restart your file manager: nautilus -q (for GNOME). Then reopen it.
"No compatible presets" when right-clicking. The file extension isn't in any preset's input list. Open settings and add it, or use the terminal.
Custom FFmpeg commands.
In a preset's settings, set enable_ffmpeg_custom_command: true and ffmpeg_custom_command: "<your args>". The command is inserted between -i input and the output path.
Preset folders in the context menu.
Use / in the preset name. Video/To Mp4 creates a "Video" submenu containing "To Mp4".
Wayland support. Yes. GTK 4 supports Wayland natively.
- Original File Converter by Adrien Allard (Tichau)
- FFmpeg, ImageMagick, Ghostscript, LibreOffice
GPLv3. Same as the original File Converter.