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 Search this Thread Display Modes
Old 16th February 2014, 21:20   #1  |  Link
gpower2
gMKVExtractGUI author
 
gpower2's Avatar
 
Join Date: Aug 2003
Location: Greece / Thessaloniki
Posts: 252
gMKVExtractGUI v2.6.4

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.6.4 and you can always find the latest executable file here:

http://sourceforge.net/projects/gmkvextractgui/files/latest/download


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

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.

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)

Changelog:

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

v1.7.0
  • Add support for the new --no-gui parameter of mkvinfo for MKVToolNix v9.0.0 and newer, without breaking compatibility with older MKVToolnix versions
  • Add option to not show the success popup messagebox
  • Add setting for showing or not the success popup messagebox

v1.6.6
  • Fix minutes in Cue Sheet Chapter Format (thanks bin_ch)
  • Add support for older mkvtoolnix versions (v4.x)

v1.6.5
  • Fix parsing the number of chapter entries in case there is only one chapter entry (thanks johnsonlam, rock)
  • Change gMKVToolnix to gMKVToolNix
  • Add new extraction mode "cues" (thanks bin_ch)
  • Add new Chapter Type "CUE" which transforms XML chapters to Cue Sheet (thanks isidroco)

v1.6.4
  • Add support for Linux (thanks djcj)
  • Add a start up check to ensure that gMKVToolnix.dll is present in the same directory as gMKVExtractGUI.exe
  • Fix progress labels position in JobManager form (thanks kypec)
  • Add check on closing in order to ensure that an extraction process does not get interrupted unintentionally (thanks magsood)
  • Fix Job Manager form Minimum Size
  • Add context menu to Job Manager Form in order to easily reset job states

v1.6.3
  • Fix finding mkvtoolnix path for mkvtoolnix v8.4 (while keeping compatibility with older versions)
  • Add hevc extension

v1.6.2
  • Fix the wrong setting of the initial form position in the ini file when the form is minimized
  • Fix typo bug (UFT-8 instead of UTF-8) (thanks bin_ch!)
  • Add WindowState setting
  • Make Form remember the last window state
  • Add a fallback mechanism, in order to use the UserAppData folder for storing the app settings when the current user doesn't have read/write permissions to the app path

v1.6.1
  • Changed Log Form to refresh the log text when Activated and not when Shown (thanks kongfl888!)
  • Fix adding Jobs to the Job Manager after loading jobs from XML (thanks kongfl888)
  • Added CodecPrivate property to gMKVTrack class (thanks dade49)
  • Removed PostProcessing of segment lists to gMKVHelper class
  • Changed ExitCode check, in order to avoid error messages when only warnings are present in the output
  • Remove UTF-8 parameter from mkvinfo

v1.6
  • Add job manager feature
  • Add Job Mode to the settings
  • Changed AutoScaleMode to DPI, hoping it will fix issues with people using larger font schemes
  • Add gRichTextBox and switch single line text boxes to gTextBox in main form
  • Some tweaking to Log form
  • Make main form to show the jobs manager when in job mode from Log button

v1.5.5
  • Add gTaskbarProgress class to wrap the ITaskbarList3 interface in order to take advantage of Windows Vista+ taskbar features
  • Fix TrueHD Audio file extension (thanks Giwyy)
  • Move classes to respective folders
  • Significantly decrease control flickering
  • Change taskbar mode while reading file contents
  • Changed frmLog to gForm class
  • Comment out a Debug.WriteLine statement in gCheckedListBox

v1.5.4
  • Enforce english ui language when executing mkvextract
  • Always make sure that progress bar is set to 100% before showing the completion success message

v1.5.3
  • Fixed setting the window's initial position to negative coordinates
  • Added the window's size to settings
  • Removed the help tooltip

v1.5.2
  • Fix parsing for Attachment Filenames for newer mkvmerge versions (ignore uid tag)
  • Added tooltip information about the track list
  • Added functionality to remember window position

v1.5.1
  • Increase the drag and drop area for the input file to the group box of input file info
  • Add a context menu for easy selection of tracks

v1.5
  • Hopefully fix Abort button from being drawn out of line in some OS (Windows XP ?)
  • Fix some visual issues
  • Added Output Directory and Lock Output Directory to the Settings
  • Replace escape characters in mkvmerge
  • Changed extraction mode to support grouping of similar tasks into one process call
  • Added support of finding the delays in video and audio tracks
  • Now extracted audio tracks have the relative to the video delay
  • Add an extra check when selecting timecodes extraction mode
  • Made a few more performance improvements

v1.4
  • Added abort button. Works per track extraction.
  • Added Abort All button, to abort all the extraction processes at once.
  • Refactored ini file and settings in general. Now the chapter type is also included in settings.
  • If MKVToolnix path is already set, ask the user before changing it.
  • Added validity check for when setting MKVToolnix path.
  • Added lock output directory feature. If locked, ouput directory doesn't change.
  • Changed extension of OGM chapters from ".ogm" to ".ogm.txt".
  • Make exception messages from mkvextract more sane.
  • Added check for mkvextract.exe, mkvinfo.exe and mkvmerge.exe existance just before invoking them.
  • Detect the audio delay via the track's timecodes and add it to the output filename.
  • Set the Browse... buttons to show the folder that is already specified by the user.
  • Check for a valid directory when drag and dropping in the output directory textbox.
  • Added timecodes extraction mode.
  • Changed the Status Strip Layout.
  • Changed the Extract Buttons to one Extract Button and a Combo Box.

v1.3.1
  • Fix loading of ini file
  • Don't keep the input file in the input textbox, if it is invalid
  • Add checks for user input when selecting an action

v1.3
  • Use a simple ini file to store the last used MkvToolnix path
  • Enable command line arguments in order to allow users to open files with gMKVExtractGUI
  • Change the tags output filename to "filename_tags.xml"
  • Use the --identify-verbose option of mkvmerge for checking the track contents of the matroska files, instead of mkvinfo
  • Removed --gui-mode parameter to mkvinfo since it broke compatibility with older versions of MkvToolnix
  • Changed the extension filter of the open file dialog to provide with an option that contains all valid extensions of matroska files

v1.2
  • Make XML chapters to be written in UTF-8 without BOM
  • Added more allowed extensions (.mka, .mks, .mk3d, .webm) (thanks sneaker_ger)
  • Added --ui-language parameter to mkvinfo with 'en' value to avoid translations
  • Added --gui-mode parameter to mkvinfo in order to double check that all output text will be in english
  • Added --command-line-charset parameter to mkvinfo with value "UTF-8"
  • Added --output-charset parameter to mkvinfo with value "UTF-8"
  • Added new Log form, which show the Log of the application
  • Added new 'Show Log' button in main form which shows the Log form

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

Last edited by tebasuna51; 2nd February 2023 at 10:50.
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: 252
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: 252
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: 252
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: 252
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: 252
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: 252
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: 252
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: 252
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 27th February 2014, 10:47   #20  |  Link
[ReX]
Registered User
 
Join Date: Jul 2007
Posts: 151
Quote:
Originally Posted by gpower2 View Post
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]!
That's actually the right way to do it, it's what mmg does (hence the name of the command line argument).
It's not actually a bug, there's a FAQ entry for the mkvinfo behavior.
[ReX] is offline   Reply With Quote
Reply

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

Thread Tools Search this Thread
Search this Thread:

Advanced Search
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 06:19.


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