FFmpeg-powered CLI

Convert videos to MP4 and audio to MP3 with safer defaults.

MediaConv wraps a careful FFmpeg workflow in a small terminal tool: diagnose dependencies, convert locally, verify the output, and publish only the finished result.

MediaConv in a terminal: doctor reports every required FFmpeg
              codec as available, a WebM file is converted to MP4 with live
              progress, a second conversion refuses to replace the existing
              output, and a folder of WAV files is batch converted to MP3.

Quick start

Install once, convert from anywhere.

1

Install FFmpeg

MediaConv uses your local FFmpeg and ffprobe binaries.

sudo apt update && sudo apt install ffmpeg
brew install ffmpeg
winget install --id Gyan.FFmpeg --exact --source winget
sudo pacman -S ffmpeg
2

Install MediaConv

Use the install script, a package manager, or the Go toolchain.

curl -fsSL https://amad3eu.github.io/mediaconv/install.sh | sh
# Windows PowerShell
irm https://amad3eu.github.io/mediaconv/install.ps1 | iex
brew install --cask Amad3eu/tap/mediaconv
scoop bucket add amad3eu https://github.com/Amad3eu/scoop-bucket
scoop install amad3eu/mediaconv
sudo apt install ./mediaconv_0.5.0_linux_amd64.deb
go install github.com/Amad3eu/mediaconv/cmd/mediaconv@latest
3

Convert

Run the conversion directly in your terminal or scripts.

# Check FFmpeg and the codecs first
mediaconv doctor
mediaconv convert "recording.webm"
mediaconv convert "camera.mov" --output "camera.mp4"
mediaconv convert "song.wav" --to mp3
mediaconv convert "audiobook.m4b" --to mp3
# Royalty-free VP9 and Opus
mediaconv convert "clip.mp4" --to webm
# Four files at a time
mediaconv batch "./recordings" --to mp4 --jobs 4
mediaconv batch "./audio" --to mp3 --output-dir "./converted"

Why it exists

Not just a shorter FFmpeg command.

Verifies output

The final MP4 is probed before publication, so failed conversions do not quietly become broken files.

Protects existing files

Outputs are not replaced unless you explicitly pass --overwrite.

Works in automation

Human output, JSON mode, typed exit codes, and quiet script behavior are part of the CLI contract.

Ready to grow

Profiles keep conversion decisions isolated so future formats can share one CLI without turning the project into a pile of flags.

Current support

Focused profiles for video and audio.

Input Output Video Audio Status
WebM MP4 H.264 AAC Stable
MOV / QT MP4 / M4V H.264 AAC Stable
MKV MP4 H.264 AAC Stable
AVI MP4 H.264 AAC Stable
MP4 MP4 H.264 AAC Stable
MP4 / MOV / MKV / AVI WebM VP9 Opus Stable
WAV / FLAC / M4A / M4B MP3 none MP3 Stable
AAC / OGG / OGA / OPUS / MP3 MP3 none MP3 Stable