2026
RustFFmpegImageMagickPandoc

MCVT - Multi-format ConVerTer

A CLI tool that unifies media and document conversion through one simple interface.

MCVT is a command-line conversion tool I built to make media and document conversion feel less fragmented.

Instead of remembering separate command styles for FFmpeg, ImageMagick, and Pandoc, I wanted a single interface where you give an input file and an output file, and the tool figures out the right backend automatically.

Why MCVT stands out

I engineered MCVT to theoretically automate over 94,600 unique file conversion pathways through a single unified interface.

That scale comes from the routing space between the three backends:

  • 51,600 intra-domain swaps like video-to-video and image-to-image conversions
  • 43,000 cross-domain routes like extracting video frames into document-ready images

For power users, this matters because desktop GUIs are slow and bloated, and cloud converters can turn a simple file task into a privacy problem. The alternative is memorizing long, fragile, hyper-specific CLI flags for three different tools. MCVT exists to remove that friction.

Demo

MCVT demo

What it does

  • converts video and audio through FFmpeg
  • converts and rasterizes images through ImageMagick
  • converts documents through Pandoc
  • detects file types using magic bytes, not just extensions
  • supports batch conversion for directories
  • supports recursive folder processing
  • cleans up backend processes on interrupt
  • allows raw backend flag injection when full control is needed

Why I made it

I built MCVT because conversion tools are powerful but annoying to use repeatedly.

Most of the time, the real work is not the conversion itself. It is remembering the correct flags, handling edge cases, and copying long commands from old notes or search results. MCVT reduces that friction by baking common optimization templates into one CLI.

The routing engine inspects raw file headers for magic bytes, determines the correct domain, and executes built-in optimization templates.

For example, instead of writing a complex filter graph just to generate a clean, dithered GIF:

ffmpeg -i input.mp4 -filter_complex "[0:v] fps=15,scale=w=640:h=-1,split [a][b];[a] palettegen [p];[b][p] paletteuse" output.gif

With MCVT, the tool handles the heavy lifting under the hood:

mcvt input.mp4 output.gif

Example flow

input file -> magic-byte detection -> domain routing -> optimization template -> output file

Example usage

mcvt source.mp4 final.mkv
mcvt image.png image.jpg
mcvt document.docx document.pdf

Architecture

CLI parser -> batch engine -> domain router -> executor -> backend tool

Notes

MCVT does not replace FFmpeg, ImageMagick, or Pandoc. It wraps them.

It stays local, keeps your data private, supports recursive directory batching, and cleans up processes automatically on interrupts.

It is also fully open-source under the GPL license.

The focus of the project is simplicity, automation, and safer default behavior for everyday conversion tasks.