Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 

Repository files navigation

MKV to MP4 Batch Converter (GUI)

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-compatible mov_text
  • Preserves chapters & metadata
  • Built with Tkinter β†’ works on Windows, macOS, and Linux

πŸ“¦ Requirements

  • Python 3.8+
  • FFmpeg (must be on your system PATH)
    • ffmpeg
    • ffprobe

πŸ”§ Installing FFmpeg

Windows

  1. Download a static build from gyan.dev FFmpeg builds.
  2. Extract the archive (e.g. C:\ffmpeg).
  3. Add the bin folder 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.
  4. Test by running:
    ffmpeg -version
    ffprobe -version

macOS

Linux (Debian/Ubuntu)

sudo apt update
sudo apt install ffmpeg

Most modern distros already have FFmpeg in their repositories.


πŸš€ Usage

  1. Clone this repo:

    git clone https://github.com/ryanxedi/mkv2mp4.git
    cd mkv2mp4
  2. Run the app:

    python mkv2mp4_gui.py
  3. In the GUI:

    • Click Browse… and select a folder containing .mkv files.
    • 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
  4. Hit Run and watch the log as each file is processed.


⚑ Fast vs Transcode Mode

  • 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, preset slow)
    • Audio β†’ re-encoded with AAC (256k)

πŸ“ Notes

  • External MKV attachments (fonts, images) are not copied into MP4.
  • Non-SRT subtitle formats are skipped unless re-encoded separately.
  • MP4 with mov_text subs doesn’t support advanced styling β€” if you need formatting, export as .srt instead.

πŸ–₯️ Compatibility

  • βœ… Windows 10/11
  • βœ… macOS (Intel & Apple Silicon)
  • βœ… Linux (Ubuntu, Debian, Fedora, Arch, etc.)

πŸ“„ License

MIT License.

About

A simple cross-platform Python GUI for batch converting `.mkv` files to `.mp4` using FFmpeg

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages