HMux

Development indefinitely suspended as Fibi no longer subbing.

HMux is Hiryuu’s creation for lazy muxing. It allows you to do several things in one fell swoop that you’d otherwise have to do in different applications.

Download 1.1.5

However, although it has been adapted for public use, and has several shiny new options as a result, it is still developed at the core for the laziness of Hiryuu. Therefore, it may not suit your needs as it does ours. For now, this page isn’t overly in-depth, but the screenshots and descriptions should give enough inf if you’re struggling to understand any options/features.

Features:
At its core, this is a GUI for mkvmerge.
Drag & drop files.
Separate fields for each type of input, to help the forgetful.
Inbuilt CRC32 checker.
Auto-naming. Uses Mediainfo (included.)
Patch creation. Uses xdelta (included.)
Font collector.
Chapter creation.
qpfile -> chapter conversion.
Torrent creation. Uses mktorrent (included.)
Checks your ass for open brackets.
The included third-party files can also be updated individually if needed, just download and overwrite the current files.

Limitations:
Shouldn’t be used for multiple audio or video streams. Although it will mux them, it may name them incorrectly.
Languages are limited, I only added a few.

Known Issues:
Progress bar isn’t very accurate.
Poor error prevention, if you try to do something illegal, it may crash.
Please report any further bugs, issues or typos (this wasn’t QC’d!) to Firebird.

Prerequisites:
Built for windows. Only tested in 7.
MKVToolNix must be installed.

Plans
Make the progress bar more accurate.
Port the more advanced Aegisub font collector over. – Low on the list of priorities as the current one does what it needs to do.
Chapter creator that automatically adds to current mux.
Better error handling, including filtering for illegal characters in filenames.
FTP upload.
Chapter profiles. Setup chapter names once per profile, rather then renaming every qpfile or \ch in the ass.
Auto-layer dialogue 10.

Changelog: »

1.1.5 Fixed bugs with bracket checker and generally improved upon. Also checked for double spaces now.
HMux erases it’s memory of errors after each mux.
Large ass files should no longer show HMux as none-responsive.
When looking through an ass file, any lines with drawings (p1, p2 or p4) are skipped.
Fixed bug where smaller muxes would mean mediainfo couldn’t finish checking before it moved on.
Aegisub addon improved.
Minor changes to font collector, chapter parser and auto-naming.
Will no longer crash if no audio is detected in the premux.
Open dir button also highlights the end result.
qpfiles can now be added as chapters.

1.1.4 Fixed bug from 1.1.3 that meant auto naming feature screwed the mux up.
Fixed chapter parser.

1.1.3 Spaces now allowed in video and audio track names.
Windows ‘@’ fonts should now work correctly.
Using the auto name feature when vid/aud aren’t premuxed no longer causes a crash.
Header Compression Removal now enabled by default. (Will add option to enable/disable in later version)
Open bracket check. A popup is displayed, with the relevant line number if brackets aren’t closed. Line number is based on opening file as text, not in aegisub. Will rectify in future version.
You can now select a secondary group name in the options.
A new drop down on front page to select primary or secondary group tag. May also overwrite manually if using a one-off tag.
Crash prevention added if ;title; not in auto-name options or chapters don’t exist when it’s told to parse them.

1.1.2 Fixed some minro bugs.
Changed interface slightly.
Added torrent creation.
Updated Aegisub addon.
Window closing no focuses back on first window.
Escape can be used to close a window.
A couple of pointless messages removed from the results window.
Some grammatical fixes.

1.1.1 Fixed bug that meant chapter parser didn’t really work.
Fixed bug with patch creation, somewhere along the lines I’d deleted a couple of spaces I shouldn’t have!
Updated Mediainfo cli.

1.1.0 Fixed bug with font buffer.
Fixed bug where font collector would collect every single font on the system if it couldn’t find certain fonts.
Font collector now has an additional search routine.
Chapter parser added.
Aegisub addon added.
Can now select a specific location for mkvmerge.exe if you’re having issues.

1.0.9 Added font collector, this will automatically parse the .ass file to find the required fonts. It will not collect fonts from styles that aren’t being used.
Fixed bug with auto name.
Played around with the UI.
Patch location can be changed to a specific location, if you don’t want them going to the output directory.
Patch name is now the same as the output name, only with .patch.
If auto-name is selected, patch name can be customised in the options.

1.0.8 Clicking the output field no longer brings up the open file dialogue.
Output directory defaults to that of the video source if only a filename is specified.
‘Name it for me’ brings in a new level of laziness, by changing the default format settings, you can create a custom filename mask that means you only need put as little as an episode number in the output field.
BD checkbox & underscore checkbox part of naming, see relevant section in readme, or check website.
Added more defaults given the naming feature.
Added default output location, this is overwritten if you specify one in the output field.
The tool will look for the output directory in this order Output field > Default location > Video field

1.0.7 Fixed bug with subs track names.

1.0.6 Fixed checkbox bug.
Added more languages to default options.

1.0.5 Clicking input fields now opens the relevant dialogue.
Added ability to change defaults.

1.0.4 First public release


Clicking any of the inputs will bring up the open file dialogue.
For any input, you can drag and drop the file into the relevant text field.
For chapter input, you can also drag in a qpfile for automatic conversion. May not be accurate on videos with VFR. To include chapter name, qpfile should include #ChapterName. eg: 31526 I -1 #Ending
Output must be entered manually, or by pressing browse.
Click options to change the defaults.
Click Mux to mux.
Click ASS or ASS2 to check the relevant subs for open brackets and double spaces.
Click clear to clear all info.
Click trackers to edit the default torrent trackers. One tracker per line.

Image »

Checkboxes:
Premuxed: If video and audio are already muxed, it will get audio from video. Disables audio input.
CRC32: After the mux is complete, it will automatically check the CRC32 and add it to the filename.
Patch: Creates an xdelta3 diff file that can be applied to the input video to generate the final outcome. (Useful if you release on a server, but do the work on another machine.)
Fonts: Collects fonts from the scripts. Disables fonts input.
Chapters: This will generate chapters for you if you put them directly in the script. Chapter creation is basic, creating an xml file wit start time only. This should suffice for most needs. Chapters are created in Aegisub, time/find a line with the start time of the chapter and add \ch\chaptername to it, replacing chaptername with whatever you like. Chapters will appear in the same order they are presented in Aegisub. This is aimed at lazy timers.
Torrent: Create torrent after mux.
Name it: Auto-names the file for you, based on info taken from video and audio file (more info below.)
BD: For the naming feature, this tells the app that the source is a Blu-ray.
Group: When using auto name, select a group from your defaults, or type over a one-off use.


The corresponding checkboxes on the mux window will always mirror these options on startup. Settings are saved to the registry.
Check ASS will mean any ass script added will automatically be checked for double spaces and open brackets, negating the need to press ASS or ASS2 in the main window.
Patch directory should be ;output; if you want patch in the same directory as the end result. If you prefer to keep them all somewhere else, change this.
Torrent directory should be ;output; if you want the torrent file in the same directory as the end result. If you prefer to keep them all somewhere else, change this.
Select an mkvmerge.exe location only if you’re having issues.


Self explanatory, type the default names and select the default languages you want for each track.
If checkbox is checked, sub tracks will always use these default names. If not, and there is only one sub track, it will have no name.


Group: Set the default group name here.
Secondary: Set a secondary group name here. Allows you to use drop down on the mux window.
Use the radio buttons to select how you want the bit depth to appear in the file name.
Check assume BD by default to have the mux just do that.
Check use underscores instead of spaces to instigate an alien invasion.
Change the format for the auto-naming to work, this is the most complex and non-lazy part of the app, but once set it allows you to be lazier than ever.
Patchname uses the same info.
The auto-naming mask replaces anything in ;; with the relevant information. The following tags can be used:

Show »

;group; Replaced with the group name – or whatever you enter in the group field.
;title; Replaced with the contents on the output field.
;BD; Replaced with BD, but only if the BD option is selected.
;bit; Replaced with the bit depth of the input video, using the format specified above.
;!10;bit; The same as ;bit; but will only show a result if there’s a bit depth of 10.
;H; Replaced with the height of the video.
;W; Replaced with the width of the video.
Resolution would be ‘;W;x;H; or ;H;p’
;audio; Replaced with the audio codec.
;!BD;audio; The same as ;audio; but will only show a result if the BD option is selected.
;CRC32; Replaced with the CRC32 of the file.


Enter default trackers in the tracker box; separate each one with a linebreak.
Aegisub addon will create a lua script for use with the automations module of Aegisub. It should be saved in to \Aegisub\automation\autoload. You should then re-scan said directory within Aegisub. Script must be saved for this to work effectively. Thanks to innocenat for helping tweaking the lua script.


The results window shows the progress of the current job, or the results of it, including any errors.
Open Dir opens the directory where the muxed file is.
OK returns you to the mux window.

I’ll get a more detailed explanation of the functions and features at a later date.

34 comments to HMux

  • anon

    What language/IDE is this programmed in? Will this be open sourced?

    • Firebird

      VB.NET.

      Open source is possible, just not yet. This is the first real app I’ve coded and I’d like to tidy up the code and add a few more comments before doing that.

      I also don’t want to create a whole big project thing, this is merely something I’m doing in my spare time to make my own life easier. I simply want to create and upload.

      I was proud of my little contraption so figured I’d adapt and share it. I’m sure a real programmer would take a look and laugh, but hey, I’m sure my Mum is proud of me! Either way, I don’t want it to get overly complicated or eat too much into my free time. If I’m constantly working on it, then the very reason I created it (so I can be lazy) is redundant.

      In short, I wouldn’t like to commit to open source at the minute as I’m lazy. But in future when new versions are less likely to happen so quickly, I don’t see why not.

  • […] the HMux page for more […]

    • 1440p monitors aren’t etacxly widespread , in the gaming and graphic community, maybe.Secondly, blurays are hard set at 1080p, which is PLENTY of detail. I doubt the resolution will go higher any time soon, let alone within the next 10 years. Most anime scenes are drawn in very low resolutions, you know? Most is done around professional upscale mechanisms. And thirdly, encoding an upscale over 1080p would make NO sense and would NOT justify extra bitrate (some rips already are 3GB/file ). Let your player upscale it, there’s playback help in the FAQ, MadVR renderer configered with lanczos or spline is as good as it gets. If you really want a 1440p rip you could make one yourself, I could make you a tutorial.

  • Dreed

    From a fellow programmer, in a few years you will look back at your code and think ‘wtf was I thinking here. This can be improved etc etc” ūüėõ

    • Firebird

      Yes, one of the reasons I don’t want to make it open source just yet. I don’t profess to being a programmer, I just grabbed VB.NET a couple weeks ago and started playing.

  • anon

    I’ve got mkvtoolnix installed, and it still won’t run. Does this require the latest version or something? I’ve tried putting in the same directory as mkvtoolnix, and it’s own, but neither worked.

  • anon

    Guess I should specify.

    Win7 x64 + mkvtoolnix 4.9.1

    • Firebird

      I use 3.4.0, but I know others use other versions. So, the version of mkvtoolnix shouldn’t be an issue.

      Does typing ‘mkvmerge’ in the CMD do anything for you?

      EDIT: OK, I’m going to assume you have mkvtoolnix portable version, and not physically installed. Do you recall if you got mkvtoolnix from an installer, or an archive?

      For the next version, I’ll add the ability to specify were mkvmerge.exe is, in case you don’t actually have it installed. Currently the app simply tries to run mkvmerge, without specifying a location. That works fine if you have a fully installed version, but not if you got it from an archive.

      Either way, I’d be interested to know if that’s the case here or not, anon.

      • anon

        It’s actually installed, and runs fine. I guess the issue is that it’s installed to C:\Program Files (x86) and not C:\Program Files then.

        • Firebird

          Shouldn’t be, the app isn’t set to look for the .exe specifically, so it’s location should be irrelevant providing it’s installed. In fact, I too have it in (x86).

          I’m at a bit of a loss really. Did running ‘mkvmerge’ from CMD work ok? It could be a quirk with mkvtoolnix 4.9.1, maybe the CLI didn’t work properly on that installation or something. Of course, I could be missing something blatantly obvious!

          Well, either try installing a different version of mkvtoolnix, or wait for 1.1.0 and they’ll be an option to specify a location of mkvmerge.

          • anon

            cmd worked (the cli does too). I currently have a script that’ll mux and auto-upload to an ftp for me, but this was basically a less manual version it seemed. Guess I’ll just wait, since I don’t plan on updating mkvtoolnix just yet.

        • I remember wahnitcg this when Ayako released it some years ago and they misspelled the characters’ names so many times thus I had to edit the script myself. Fast forward to future, my external hard disk suffered from bad sectors and among the folders that were infected and had to be deleted was Denpa Teki Conclusion many thanks for releasing this. I’ll wait for the episode to be available via irc.

      • anon

        Oh, and I used the installer (mkvtoolnix-unicode-4.9.1-setup.exe).

      • Damn, well can you atleast uaopld it to a bot in your irc channel. PLEASE~!!!Otherwise you could perhaps make a patch for the AAC version, I doubt that the FLAC audio by itself is that big that it can’t be uaoplded to a ddl-site

  • entropic

    Wish you would have used C# instead of VB.NET (Visual Basic is going the way of the dodo bird).. but hey if you need help feel free to ask. Wouldn’t mind contributing to help make your life easier/release faster. Either way, thanks for all the hard work you guys do.

  • @anon, you can decompile it and convert it to C#, im NOT saying you should.. since i don’t know if we’re allowed to.. if not, please obfuscate it (use Eazfuscator.NET, its freeware, and compile your program in RELEASE Configuration)

  • Hi, I’m developing a gui for x264 (you can find infos on my website) and I’d like to add the (de)muxing function. If you want we can merge the two projects.

  • iRoxxor

    Download link not working ūüôĀ

  • enymous

    Download link not working

    • Hahaaahh. I’m not too bright today. Great post!

    • Je vois…Je vois…o√ɬĻ Toto Rena m’a entrain√ɬ©e pour constater ses m√ɬ©faits.En voil√ɬ† un qui a pris de mauvaises habitudes d’encombrement d’espace avec sa Sagadada de l’√ɬ©t√ɬ©.J’esp√ɬ®re qu’il va venir nettoyer un de ces jours.Quant √ɬ† toi, Lunettes Rouges, je viendrai te rendre une petite visite, cela fait longtemps que j’observe ton blog et je souhaiterais te faire part de mes r√ɬ©flexions.A bient√ɬīt, donc.

    • We just returned home from a great week in Cavendish. The staff at Marco Polo Campground were fantastic! The kids had alot of fun doing crafts at the rec center every morning with Rebecca! Lots of other fun things to do, the pools, bouncy pillow, petting zoo, etc. I could go on and on.We all look forward to coming back again next year. Thanks for a great stay!

    • This is great definition of loan modification. I really wish they would have had these around before my family lost their house when I was in my 20s. I was a pretty traumatic thing to go through. I know it could have saved some of my father’s dignity. I hope more people are able to save their homes this way.

  • DA32

    does this work for only mkv file? or avi file is also possible?

  • Near

    Hi there, can you guys share HMux again. The link has expired. Thanks!

  • […] the HMux page for more […]

  • How’s things, I have noticed that sometimes this page displays a 403 error. I figured that you would like to know. Thanks

  • Hello to every one, the contents existing at this web site are actually amazing for people experience, well, keep up the good work fellows.

  • TheGoat

    Hey, just stumbled upon this page. I have 10+ year experience as a c#/vb.net developer, if you need any help with this, let me know. I’ve dabbled into mkvino/merge in a few apps myself, so I have exp. using it.
    Thanks!

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>