Skip to content
Provides a GUI interface for the UnlinkMKV project by Garret Noling. Merges ordered chapters / segmented MKVs back into a single file.
Branch: master
Clone or download
hilts-vaughan Merge pull request #30 from ChrisPWill/master
Add requirement for String:CRC32 to
Latest commit d0683d6 Jun 30, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
UnlinkMKV-GUI More escape quotes... ugh Nov 28, 2016
dist Adds distribution EXE files... tests May 17, 2016
.gitattributes Updated README and initial commit Apr 30, 2015
.gitignore Core - Updated git ignore May 17, 2016
LICENSE Initial commit Apr 28, 2015 Add requirement for String:CRC32 to Jun 30, 2018

You can download up at the top under 'releases'!

What is it?

Provides a GUI interface for the UnlinkMKV project by Garret Noling. Modified to run cross-platform and provide unified support over many different operating systems.


Written with C#, runs on Mono for many different operating systems.

Please keep in mind the application can be run into two modes. If you want to use the Perl "UnlinkMKV" backend, then do NOT tick off "Native Mode" on the GUI. If you are running into problems with that mode or some of the outputs it produces, try ticking "Native Mode" and running the process again. In some cases, this will resolve some of the issues.


The following are required on every platform:

  • Perl (required)
  • FFmpeg (optional, encoding)
  • MKVToolnix (required)
  • Mediainfo (Native Backend)
  • Mono or .NET Framework

Following the below directions for getting the depedencies you might need:


Perl: Strawberry Perl has been tested on Windows and works with this application. If you already have some Perl version of some sort installed, it will probably work and you can skip this. Otherwise, install Strawberry Perl from The latest version will be fine.

MKVToolnix: Install from here and use the installer (or you can download the ZIP and add it to your PATH, if you prefer). Copy and note the install path you are putting down

FFmpeg: This is optional, only required if you want to encode but you can find many guides on the internet to setting it up, such as this:

Mediainfo: This is optional as well but is needed if you want to use "Native Mode" You need to make sure you have the command line utilities available to use. For Windows, you can download those here:

.NET: You should already have this.

If you get issues with "MKVToolnix" not found, you'll need to add the MKVToolnix to your PATH as well. The application will try and out detect it and will succeed if you use the above installer version.

Otherwise, do this:

Select Computer from the Start menu (or hold Windows key and press Break), choose "Advanced System Settings", then the Advanced tab. Click on Environment Variables. Under System Variables, find PATH, and click on it. In the Edit window, modify PATH by adding a semicolon ";" at the end and then the path to your MKVtoolnix installation, e.g. C:\Program Files (x86)\MKVToolNix (wherever you installed it to, this should be different for different drive letters or 64 bit)


Perl: This is already installed for you MKVToolnix: You can install it from Homebrew. If you don't have Homebrew yet, run ruby -e "$(curl -fsSL"

Then, you should be able to run:

brew install -vb --with-flac mkvtoolnix

Fmpeg: Run with Brew, brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-frei0r --with-libass --with-libvo-aacenc --with-libvorbis --with-libvpx --with-opencore-amr --with-openjpeg --with-opus --with-rtmpdump --with-schroedinger --with-speex --with-theora --with-tools

Mono: brew install mono to install Mono from Brew.

About Homebrew: You will require the XCode Command Line Tools to use Homebrew; you can find a guide on that here:

You can then run the application with mono UnlinkMKV-GUI.exe or follow these directions to make it clickable in Finder:


If you're running on Linux, you will need to look up how to get the tools above from your local package repository via your package manager from your distribution of choice.

Every Operating System

Using Perl backend:

You will probably need Log::Log4perl, XML::LibXML and String:CRC32 for your Perl installation. You can do this step just in case if you're not sure if it's installed.

  1. Open a terminal or command prompt on your operating system
  2. Type cpan Log::Log4perl and then press return/enter
  3. Repeat step 2, but type cpan XML::LibXML instead
  4. Repeat step 3, but type cpan String:CRC32 instead
  5. The CPAN manager should install the logging module, and the XML module, you should be able to exit the terminal now.

If you are using Mono, the first run always takes a little bit (about a minute). Please be patient.

Native Backend:

There is no need for Perl. Just note that the native backend is less compatible and more compatible in some cases. If you have troublesome files, you may want to try both.

Using the application

After installing all the depedencies, just run the application.

  • Input Folder: Just select where the files you want to unlink are and they will be handled
  • Output Folder: Just select where you want the files to be placed

The check boxes should be left unchecked for the most part unless you have a particular issue with a release. You can play around with them and file a bug report if a certain MKV file is not working.

If you get "unlinked finished" immediately and no output, make sure you have installed the Perl logging module. See the section above for 'Every operating system'

I found a bug/the application doesn't Unlink my MKV's properly. Help?

You can post the issue with a verbose log on the issue tracker. Tick the "verbose output" checkbox in the options when doing the run before posting a log on the issue tracked. If the issue is part of the UnlinkMKV core, it will be addressed there. Otherwise, it will be addressed here.

If the issue is with a particular release or set of files, please open an issue for that particular for that release.

For developers

Pull requests are appreciated. Please feel free to submit them.

You can’t perform that action at this time.