Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > New and alternative a/v containers

Reply
 
Thread Tools Display Modes
Old 16th February 2014, 21:20   #1  |  Link
gpower2
gMKVExtractGUI author
 
gpower2's Avatar
 
Join Date: Aug 2003
Location: Greece / Thessaloniki
Posts: 277
gMKVExtractGUI

As a personal bet, I developed a small GUI utility to use mkvinfo and mkvextract cli tools from MKVToolnix pack, in order to extract tracks, chapters and CUE sheets from mkv files.

Though there are already other GUI utilities, I found them rather slow (original MkvExtract GUI), or inefficient (MkvExtractGUI-2 does not extract attachment tracks correctly).

So, gMKVExtractGUI was born, written in pure C# .NET v2 (.NET v4 since v1.9.0) and it works!

Current version is v2.12.0 and you can always find the latest executable file here:

https://github.com/Gpower2/gMKVExtractGUI/releases


Other download locations:
https://www.videohelp.com/software/gMKVExtractGUI
http://www.softpedia.com/get/Multime...tractGUI.shtml

Note: After version v2.9.0, I switched from SourceForge to Github, and all new versions will be released there henceforth.

Buy me a beer

From v1.6.4 Linux is fully supported through MONO framework.
For use with MKVToolNix v9.0.0 and later, v1.7.0 or newer is required.
From MKVToolNix v9.6.0 and later, the JSON output from mkvmerge is used, so Newtonsoft.Json.dll is required (bundled).
From v1.9.0 .NET Framework v4 is required.
Batch support is supported from v2.0.0.
Dark mode is supported from v2.8.0.

Key features:
  • Use almost 100% of mkvextract functionality (supports extraction of tracks, attachments, chapters in XML, OGM and CUE, timecodes, tags and CUE sheet)
  • Use mkvinfo to analyse mkv elements really really fast
  • Automatically detects MKVToolnix installation directory from registry
  • It doesn't require the executable to be placed inside MKVToolnix directory, but it still checks for it if registry search fails
  • Uses file extensions for tracks according to CODEC_ID as defined in official mkvextract documentation
  • Uses separate thread for invoking mkvextract in order to have a responsive GUI
  • It incorporates a job mode for batch extracting (new in v1.6)
  • Supports Linux through MONO (new in v1.6.4)
  • Supports all MKVToolnix versions from v4.x and newer
  • Supports batch extraction of multiple files (new in v2.0.0)
  • Supports custom output filename patterns (new in v2.5.0)
  • Supports adding sub-directories in the custom output filename patterns (new in v2.7.0)
  • Supports dark mode (new in v2.8.0)

Changelog:

v2.12.0
  • doc: Update the user manual with the new Advanced Options.
  • fix: The Defaults button in Options form now resets the new Advanced Options too.
  • feat: Add support for raw and fullraw track extraction modes. This closes #22 (#33)
  • feat: Add option to disable BOM for text files (v96.0+) #31 (#32)
  • fix: Fix key overrides of custom TextBox controls for Ctrl+A and Ctrl+C
  • fix: Changed txtLog to gRichTextBox and removed unused code
  • feat: Add a Select button that displays the Context Menu as another entry point for it. #27 (#30)
  • fix: fix MkvToolnixPath detection when Settings path is empty (#29) Thanks @lapluis


v2.11.1
  • fix: Fix issue with Job manager when adding tracks that don't have CodecPrivate data, like PGS subs. thanks arestarh

v2.11.0
  • feat: Add tooltips and an option to disable/enable them. Closes #21 (#24)
  • feat: Support checking/unchecking all Forced tracks per track type.
  • feat: Add support for the Forced track property. Closes #20
  • feat: Add option for overwriting existing files when extracting. This closes #18 (#19)
  • feat(tags): Add output filename options for tags. Closes #12
  • feat: Changed the output file extension for the OGM chapter type from "ogm.txt" to "txt" in the `gMKVToolNix.MkvExtract` namespace. Closes #4
  • fix(linux): Fix some more possible Linux issues with P/Invoke
  • fix(linux): correctly fix gRichTextBox issue in Linux
  • fix(linux): Fix some issues in Linux by excluding paths with P/Invoke.
  • docs: Enhance README and add docs folder with a basic User Manual
  • tests: Introduce Unit Tests and refactor part of the code for testability and performance (#11)
  • perf: Improve context menu creation
  • perf: Core refactor
  • Huge refactor of parsing state, practically making parsing stateless
  • Refactored the process output handling, by using List instead of StringBuilder to avoid splitting into individual line strings afterwards
  • Removed file existence checks for batch requests to minimize the IO operations
  • Various code optimizations in string operations
  • Various code formatting improvements
  • Refactor gMKVMerge, option handling and codec private data logic (#15)
  • Refactor gMKVInfo, fix typos and improve parsing (#14)
  • Refactor gMKVExtract and related components (#13)

v2.10.0
  • fix(ui): Show "Extraction completed!" message in the segment info text box instead of the label status, to avoid visual clatter (thanks @dclxvplusone)
  • feat(chapters): Add new PBF chapter type. It automatically transforms the default XML chapter type to the PBF chapter type. Comes with no guarantees, since documentation is basically non-existent
  • Reorganize and refactor various parts of the code. Switch to using Newtonsoft.Json via Nuget and update to latest version

v2.9.1
  • fix(init): Revamped the init sequence for detecting the MKVToolnix path and added a new button to manually trigger the auto detect sequence.
  • fix(logs): Fix various logs in FrmMain2 and gMKVHelper.

v2.9.0
  • fix(progress): Update the task bar progress bar value based on the total progress and not on the individual job progress
  • fix(code): Switch to unboxed types and minor optimizations.
  • fix(gForm): Add the form handle in the remaining message boxes in gForm
  • feat(dark): Implement Dark Mode in a new way with a bit of help from AI (thanks Jules!)
  • fix(files): Fix file structure
  • Create README.md

v2.8.1
  • fix(dark): Possible fix of a bug with ComboBox in dark mode (thanks vertigo220!)

v2.8.0
  • Add support for Dark Mode

v2.7.0
  • Add explicit support for AV1 video codec
  • Add support for appending input files via drag and drop (thanks vertigo220!)
  • Make the success dialog popup appear as top most form across desktop (thanks vertigo220!)
  • Fix the Abort buttons state before the success dialog pop up appears (thanks vertigo220!)
  • Add new placeholder for directory separator in Options (thanks Liquid, oniiz86!)
  • Add new Status Strip in Options form in order to make resize easier
  • Add min size in the Options form to avoid minimizing it to size 1,1

v2.6.4
  • Minor code optimizations
  • Add final Trim when generating the output filename (thanks tormento!)

v2.6.3
  • Fix calculating delays from mkvinfo. (Thanks kedautinh12!)

v2.6.2
  • Fix attachment filename for all cases. (Thanks mastrboy!)
  • Improve track selection when filter value is an empty string
  • Optimize algo to avoid unnecessary comparisons

v2.6.1
  • Replace invalid file characters with underscore character ('_') from output filename

v2.6.0
  • Add support for new element "Language IETF"
  • Minor code optimizations/modernization

v2.5.2
  • Fix issue in checking for an existing job when adding a new job

v2.5.1
  • Fix finding delays with newer mkvinfo versions
  • Optimize finding delays with mkvinfo by searching only for tracks that couldn't find delays with mkvmerge

v2.5.0
  • Ask the user to create the output directory if it doesn't exist
  • Various improvements on Form Controls
  • Added new "Options" form to support custom output filename patterns
  • Check if a file with the same filename already exists before extracting and add a counter to the output filename to avoid overwritting the original file

v2.4.2
  • Stop trying to find delays in matroska files that don't contain any video tracks

v2.4.1
  • Fix attachment extraction

v2.4.0
  • Enclose language in [] characters in the output filename for tracks, in order for MKVToolNix GUI to be able to derive it
  • Quote output filename in chapters, tags and cuesheet when using the new MKVToolNix cli
  • Fix the necessary input fields check when extracting tags and cuesheet
  • Refactor output filename calculation

v2.3.0
  • Add new setting for default output directory
  • Switch to "timestamps_v2" instead of "timecodes_v2" for MKVToolNix v17+
  • Add support for the new mkvextract syntax for MKVToolNix v17+
  • Add a new commandline argument --mkvtoolnix="..." to specify a manual path for MKVToolNix

v2.2.0
  • Change the output directory behavior
  • Add custom DPI scaling code and enable it on all forms
  • Add new manifest Property "dpiAwareness" for newest Windows Versions (Windows 10 v1607+)
  • Added new Audio Codec_ID A_EAC3 and A_MLP
  • Added some missing video and subtitle codec_id
  • Remove unnecessary separator in context menu
  • Increase the width of the percentage labels in Main form
  • Decrease the height of the buttons in Log Form

v2.1.0
  • Fix Linux issues
  • Fix adding files from command line
  • Add support for passing directories from command line
  • Make right click to change selection in the TreeView

v2.0.0
  • New form that supports batch extracting!
  • Fix bug when removing multiple jobs from Job Manager
  • Add the filename in the track progress report label in the Job Manager
  • Add new properties in the gMKVSegmentInfo class

v1.9.2:
  • Add more Log messages
  • Add more functionality to the Log Form
  • Fix some cases where settings were getting overriden during start up (thanks Bal65, RyFeR26!)
  • Switch to using --gui-mode for mkvextract versions v9.7.0 and newer, while keeping existing functionality for backwards compatibility
  • Hopefully solve all remaining issues with locale on Linux (thanks djcj!)

v1.9.1
  • Implement new method to read standard output character by character (fixes Linux parsing)
  • Replace hard-coded newline characters with Environment.NewLine
  • Improve parsing of mkvinfo output
  • Add exceptions to the log
  • Change version identification in Linux
  • Add more sanity checks
  • Fix copy-paste bugs in Settings
  • Add more log messages in Settings
  • Simplify version checking for Linux and OSX for mkvinfo and mkvmerge
  • Fix small cosmetic bug for Linux in main Form
  • Add LICENSE.md for NewtonSoft
  • Add log for detecting versions
  • When on Linux, check for mkvmerge in /usr/bin first

v1.9.0
  • Switch to .NET v4
  • Add new JSON parser for reading the JSON identification info from mkvmerge (Based on NewtonSoft JSON.NET, Newtonsoft.Json.dll)
  • Fix issues with Linux case sensitivity (hopefully!) (thanks djcj!)
  • Fix locale issues with Linux (hopefully!) (thanks djcj and Mosu!)
  • Make application dpi aware (thanks stax76!)
  • Fix initial size when there is no ini file (thanks bin_ch!)
  • Fix bug when in job mode and popup checkbox is unchecked and adding a job results in status label showing "Extraction completed!" (thanks bin_ch!)
  • Switch to using SaveFileDialog and OpenFileDialog instead of FolderBrowserDialog (thanks arestarh!)
  • Fix rare case where Track properties in mkvmerge verbose identification occupy more than one line
  • Change namespace from gMKVToolnix to gMKVToolNix

v1.8.0
  • Change minimum size in main form
  • Play Windows Asterisk sound when success popup does not show
  • Make mkvinfo's output parsing more robust
  • Add parsing of mkvmerge's new output data (thanks Mosu!!!)
  • Add as many fallback mechanisms as possible, in order to maintain compatibility with older versions
  • Clear input file textBox in main form, when MKVToolNix path is changed
  • Clear status and progress bar in main form, when an error has occured during extraction and no popup was selected
  • Add new setting for showing popup message in success in job manager
  • Fix some UI issues in Job Manager form
  • Add a workaround for buggy output from mkvmerge in older versions (v4.0)
  • Changed the main form's minimum size to 400x400
  • Added horizontal scroll bar to mkv track list
  • Add job counter in the text of the jobs groupbox
  • Make Jobs Grid Columns Autofill

Older changelog here

Hope you enjoy this little utility and feedback is always appreciated!

Last edited by gpower2; 6th January 2026 at 18:27.
gpower2 is offline   Reply With Quote
Old 17th February 2014, 08:05   #2  |  Link
wanezhiling
Registered User
 
Join Date: Apr 2011
Posts: 1,184
can't remember settings.
wanezhiling is offline   Reply With Quote
Old 17th February 2014, 09:09   #3  |  Link
wanezhiling
Registered User
 
Join Date: Apr 2011
Posts: 1,184


I tested all my mkv files, empty in the list.
wanezhiling is offline   Reply With Quote
Old 17th February 2014, 09:21   #4  |  Link
gpower2
gMKVExtractGUI author
 
gpower2's Avatar
 
Join Date: Aug 2003
Location: Greece / Thessaloniki
Posts: 277
What version of MkvToolnix do you use?
Did you get any error message when you selected the video file?
gpower2 is offline   Reply With Quote
Old 17th February 2014, 09:27   #5  |  Link
wanezhiling
Registered User
 
Join Date: Apr 2011
Posts: 1,184
offical 6.7.0 installer
No error, just empty.
wanezhiling is offline   Reply With Quote
Old 17th February 2014, 09:52   #6  |  Link
gpower2
gMKVExtractGUI author
 
gpower2's Avatar
 
Join Date: Aug 2003
Location: Greece / Thessaloniki
Posts: 277
It seems that mkvinfo didn't spit out anything about the file.
It is really strange since I made most of my tests with 6.7.0 and didn't have any problems.

Did you extract both exe and dll files?
I'll build a version with debug information and upload it in the afternoon to check this, thanks for your feedback!
gpower2 is offline   Reply With Quote
Old 17th February 2014, 09:57   #7  |  Link
wanezhiling
Registered User
 
Join Date: Apr 2011
Posts: 1,184
Quote:
Originally Posted by gpower2 View Post
Did you extract both exe and dll files?
Of course.
wanezhiling is offline   Reply With Quote
Old 17th February 2014, 09:59   #8  |  Link
Taurus
Registered User
 
Taurus's Avatar
 
Join Date: Mar 2002
Location: Krautland
Posts: 903
Same here as in wanezhiling post ->empty list

Edit: Tried it on Win XP 32bit and on Win7 64bit -> the same.

Last edited by Taurus; 17th February 2014 at 10:11.
Taurus is offline   Reply With Quote
Old 17th February 2014, 10:13   #9  |  Link
gpower2
gMKVExtractGUI author
 
gpower2's Avatar
 
Join Date: Aug 2003
Location: Greece / Thessaloniki
Posts: 277
I just tested it again and I didn't have any problems here:



I'll upload the new version as soon as I can to see what's happening with you guys...
gpower2 is offline   Reply With Quote
Old 17th February 2014, 18:13   #10  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
Could it be a problem with non-English versions of Windows? May want to look into --command-line-charset and/or --output-charset then.
sneaker_ger is offline   Reply With Quote
Old 17th February 2014, 18:42   #11  |  Link
gpower2
gMKVExtractGUI author
 
gpower2's Avatar
 
Join Date: Aug 2003
Location: Greece / Thessaloniki
Posts: 277
Perhaps the --ui-language could be the solution, I am working on adding a log form in order to see the true output of the operations.
Won't be long now.

@sneaker_ger
Did you try it yourself? Did you run into any problems?
gpower2 is offline   Reply With Quote
Old 17th February 2014, 19:05   #12  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,565
Ah, yes, I forgot the --ui-language option. Yes, I tested it on a non-English Windows with the same symptoms as the other reporters.

Also: does it only check file extension? Then .mka, .mks, .mk3d and .webm are missing. (Though I don't think file extensions are a good way to check.)
sneaker_ger is offline   Reply With Quote
Old 17th February 2014, 21:12   #13  |  Link
gpower2
gMKVExtractGUI author
 
gpower2's Avatar
 
Join Date: Aug 2003
Location: Greece / Thessaloniki
Posts: 277
New version v1.2 is out, hoping to solve the problems you all had.
In case the problems persist, you can view the log and paste it here in order to examine the root cause of the problems.

Have it a try and thanks again for all the feedback!
gpower2 is offline   Reply With Quote
Old 17th February 2014, 21:50   #14  |  Link
mastrboy
Registered User
 
Join Date: Sep 2008
Posts: 365
Are you going to add batch (multiple files) support, similar to MKVCleaver?
__________________
(i have a tendency to drunk post)
mastrboy is offline   Reply With Quote
Old 17th February 2014, 21:59   #15  |  Link
gpower2
gMKVExtractGUI author
 
gpower2's Avatar
 
Join Date: Aug 2003
Location: Greece / Thessaloniki
Posts: 277
I'm surely considering it, I just haven't figured out yet how to implement the workflow of the batch. I'm thinking more of a job manager thingy, but it would be some time before it gets out...
gpower2 is offline   Reply With Quote
Old 18th February 2014, 03:11   #16  |  Link
wanezhiling
Registered User
 
Join Date: Apr 2011
Posts: 1,184
Funny, it only works with mkvtoolnix 6.7.0, an error occurs with old versions, 6.6.0 eg



wanezhiling is offline   Reply With Quote
Old 18th February 2014, 07:50   #17  |  Link
gpower2
gMKVExtractGUI author
 
gpower2's Avatar
 
Join Date: Aug 2003
Location: Greece / Thessaloniki
Posts: 277
Probably some option is incompatible with older versions, I'll check it and come back with a fix (hopefully).

At least it works with 6.7.0 now, right?

@mastrboy
Any thoughts on the batch processing mode? It would be nice to have some feedback from users first.
gpower2 is offline   Reply With Quote
Old 22nd February 2014, 06:46   #18  |  Link
[ReX]
Registered User
 
Join Date: Jul 2007
Posts: 151
You should probably use mkvmerge with "--identify-for-mmg" instead of mkvinfo.

Here's a scenario where mkvinfo fails:
1) Take a MKV file (file.mkv) with attachments (fonts, for instance)
2) Check if the output of mkvinfo shows attachments (yes)
3) Add a font attachment to it using mkvpropedit
Code:
mkvpropedit "file.mkv" --attachment-name "arial.ttf" --attachment-mime-type "application/x-truetype-font" --add-attachment "C:\Windows\Fonts\arial.ttf"
4) Check if the output of mkvinfo shows attachments (no)
[ReX] is offline   Reply With Quote
Old 23rd February 2014, 11:10   #19  |  Link
gpower2
gMKVExtractGUI author
 
gpower2's Avatar
 
Join Date: Aug 2003
Location: Greece / Thessaloniki
Posts: 277
Hmm, I never thought of checking mkvmerge for command line parameters to identify mkv properties!
Still, isn't that a limitation/bug on mkvinfo's side? Shouldn't we open a ticket to MkvToolnix's bug tracker?

Anyways, I will check that option too, maybe I'll put a setting to select which road you want to take. Thanks [ReX]!
gpower2 is offline   Reply With Quote
Old 26th February 2014, 07:02   #20  |  Link
rsotome
Registered User
 
Join Date: Dec 2010
Posts: 31
Hmmm, so far, so good, really nice extraction program.

A batch option would be very useful, but I understand you'll need time to implement something like that.

Something that would really be very useful would be the ability to extract the video track straight into an mkv container, instead of the raw video, is that possible?
rsotome is offline   Reply With Quote
Reply

Tags
extractor, gmkvextractgui, matroska, mkv, mkv extract, mkvextract, mkvextractgui

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 18:19.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.