A simple cross-platform Python GUI for batch converting .mkv files to .mp4 using FFmpeg.
- Fast remux (no quality loss) if video = H.264 and audio = AAC/AC3/E-AC3/MP3/MP2
- Automatic transcode (H.264/AAC) if streams are not MP4-friendly
- Converts SubRip subtitles (
.srt) to MP4-compatiblemov_text - Preserves chapters & metadata
- Built with Tkinter β works on Windows, macOS, and Linux
- Python 3.8+
- FFmpeg (must be on your system PATH)
ffmpegffprobe
- Download a static build from gyan.dev FFmpeg builds.
- Extract the archive (e.g.
C:\ffmpeg). - Add the
binfolder to your PATH:- Press Win+R, type
sysdm.cpl, go to Advanced β Environment Variables. - Under System variables, edit
Path, add:C:\ffmpeg\bin - Click OK, then restart your terminal.
- Press Win+R, type
- Test by running:
ffmpeg -version ffprobe -version
- Install via Homebrew:
brew install ffmpeg
- Or download a static build from evermeet.cx.
sudo apt update
sudo apt install ffmpegMost modern distros already have FFmpeg in their repositories.
-
Clone this repo:
git clone https://github.com/ryanxedi/mkv2mp4.git cd mkv2mp4 -
Run the app:
python mkv2mp4_gui.py
-
In the GUI:
- Click Browse⦠and select a folder containing
.mkvfiles. - Choose options:
- Include subtitles (SRT β mov_text)
- Keep all audio tracks
- Overwrite existing MP4 files
- Decide what to do with non-compatible files:
- Ask (prompt per file)
- Transcode (convert automatically)
- Skip
- Click Browse⦠and select a folder containing
-
Hit Run and watch the log as each file is processed.
- Fast Remux β No re-encoding. Instant. No quality loss.
- Transcode β Needed only if video isnβt H.264 or audio isnβt MP4-friendly.
- Video β re-encoded with H.264 (
libx264, CRF 18, presetslow) - Audio β re-encoded with AAC (
256k)
- Video β re-encoded with H.264 (
- External MKV attachments (fonts, images) are not copied into MP4.
- Non-SRT subtitle formats are skipped unless re-encoded separately.
- MP4 with
mov_textsubs doesnβt support advanced styling β if you need formatting, export as.srtinstead.
- β Windows 10/11
- β macOS (Intel & Apple Silicon)
- β Linux (Ubuntu, Debian, Fedora, Arch, etc.)
MIT License.