Code Monkey home page Code Monkey logo

mkv-muxing-batch-gui's Introduction

MKV Muxing Batch GUI

A robust application for muxing(merging) videos with subtitles, audios, chapters, attachments alongside many customization options.

Github All Releases Donate

✨App Preview

A preview of the application in action:

Preview.mp4

📖Features

Video Options

  • View media info of each file to monitor the video tracks
  • Change default video duration/FPS [use this feature cautiously]

Subtitle Options

  • Add new subtitles to each video file
  • Subtitles names don't have to match videos names
  • Reorder the subtitles to match the right video
  • Remove files from the subtitle tab
  • Set subtitles to be default/forced
  • Set subtitle delay, track name, language
  • Mux the new subtitle at any desired position in the output video
  • Add multiple subtitles to each video file with individual settings for each subtitle

Audio Options

  • Add new audios to each video file
  • Audios names don't have to match videos names
  • Reorder the audios to match the right video
  • Remove files from the audio tab
  • Set audios to be default/forced
  • Set audio delay, track name, language
  • Mux the new audio at any desired position in the output video
  • Add multiple audios to each video file with individual settings for each audio

Chapter Options

  • Add new chapters to each video file
  • Chapters names don't have to match videos names
  • Reorder the chapters to match the right video
  • Remove files from the chapter tab

Attachment Options

  • Add new attachments to all video files
  • Discard old attachments files from all videos
  • Ability to attach file/folder for each video separately [expert mode]
  • Option to prevent adding duplicate existing attachments [any existing attachment in source video will be skipped]

Source Files Options

  • Discard old subtitles
  • Keep subtitles with specific language(s) and/or track id(s) while discarding any other subtitle
  • Discard old audios
  • Keep audios with specific language(s) or track id(s) while discarding any other audio
  • Set an old subtitle track to be default/forced
  • Set an old audio track to be default/forced
  • Modify existing tracks (each track separately) like: track name,delete,set default,set forced and language, even you can change their order with shortcuts Ctrl + Up Arrow / Ctrl + Down Arrow

Muxing Options

  • Override global settings by changing subtitle/audio settings (delay, track name, language) for each subtitle/audio file
  • Save a log file
  • Set your default directories, languages, and file extensions to be remembered for future runs
  • Optimize your muxing by modifying the source file when feasible. A prompt will appear when this option is available

📝Notes

Note

  1. Leaving destination folder empty will lead to overwrite source videos a popup will shown to confirm this action.
  2. When the option [make this subtitle/audio default] is activated with language/track that does not exist in the source, then the option will be ignored.
  3. When the option [keep this subtitle/audio only] is activated with language/track that does not exist in the source video, then the option will lead to output video with only chosen language/track (even if it means to discard all subtitle/audio from the source).
  4. When using Modify Old Tracks in video tab, the following options: (make this subtitle/audio default, keep this subtitle/audio only, mux new subtitle/audio in desired position) will be disabled/limited.
  5. When using mux subtitle/audio at same position for the same track type, they will be added respecting to the order of all other new subtitles/audio.
  6. In every tab/dialog you can reorder tracks using shortcuts Ctrl + Up Arrow / Ctrl + Down Arrow except for: (Attachment/Muxing Tab).

📁Supported Extensions

Type Extensions
Video AVI, MKV, MP4, M4V, MOV, MPEG, TS, OGG, OGM, H264, H265, WEBM, WMV
Subtitle ASS, SRT, SSA, SUP, PGS, MKS, VTT
Audio AAC, AC3, FLAC, EAC3, MKA, M4A, MP3, DTS, DTSMA, THD, WAV, OGG, OPUS
Chapter XML

⬇Downloads

The MKV Muxing Batch GUI is compatible with Windows 7/8/8.1/10/11 32-bit/64-bit and most Linux distributions. You can download it from the project's releases page.

For Linux Users

The deployed app available in downloads only support glibc 2.35 and above like: Ubuntu 22.04/up , Mint 21.2/up, Fedora 38/up and others [i can't test them all] Before starting the app, install the following libraries [not always needed as most of them included in the app]:

sudo apt-get install -y libpugixml-dev
sudo apt-get install -y libmatroska-dev
sudo apt install libxcb-cursor0

Using Python Code Version

  1. Clone the repository :git clone https://github.com/yaser01/mkv-muxing-batch-gui.git.
  2. The main branch use PySide6 library on version 6.6.1 which is tested on python 3.10.8 working good and only supporting x64 systems.
  3. If you want to use on x32 systems you should switch to branch develop-PySide2: git checkout develop-pyside2 which uses PySide2 v5.14.0 and tested in python 3.8.10.
  4. After selecting the branch just make sure to use the mentioned python version as it's guaranteed to work perfect.
  5. Just run pip install -r requirements.txt.
  6. Then run python main.py and you are all good :D.
  7. You may use python3/pip3 instead of python/pip depending on your system.
  8. For linux users if you want to use another python version from the one that is already on your system it's recommended to use pyenv,if you didn't hear about it, you may read this.
  9. Also, for linux users: as this app depends on mkvtoolnix it's very recommended to install it on your system before run the app from here.

Updating The MKVmerge version

You can manually update the mkvmerge version the app uses, but do this only if you're sure of what you're doing, as it may require a reinstallation:

# Navigate to the app's installation directory, e.g. on Windows:
"C:\\Program Files (x86)\\MKV Muxing Batch GUI"
# Go to Resources\\Tools\\ [your operating system], and replace mkvmerge.exe and mkvpropedit.exe with the newer version you have

For linux users it's recommended to just clear Resources\\Tools\\ [your operating system] folder and then install mkvtoolnix on your system from here and the app will automatically detect it.

🙏Attribution

  • The application relies heavily on MKVToolNix, so a big thanks to them.
  • Thanks to my friends who helped test the app and offered numerous ideas.

🦟Report a Bug

Any software bugs can be reported on the project's issues page. Suggestions for future updates are also welcome.

🏷License

GitHub

mkv-muxing-batch-gui's People

Contributors

marco-9456 avatar n00byking avatar yahyazahran avatar yaser01 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mkv-muxing-batch-gui's Issues

[Improvement] Please add support of the UNC path

Hi, thanks for your efforts - this utility is brilliant, simple and powerful.
Yet I faced with issue - when adding UNC path e.g "\ComputerName\SharedFolder" I've got an error that path is invalid. Not sure why this check in path validation was implemented, yet it will be nice to have possibility of working with shared storages.

Feature request - change framerate

Would be great to have the option in MKV Muxing Batch (already within MKVmerge) to change the default framerate/duration.

I have to this often in case of PAL 25fps DVD and Blu-ray sources to correct the playback speed to 23.976fps. (Otherwise you can notice certain films and series sound sped up, which they are.)

Certain audio tracks can also be adjusted using the "stretch by" field in MKVmerge, while others have to be done manually with something like eac3to. In any case, remuxes currently must be done one file at a time to be able to change these fields. Being able to remux in bulk would be a timesaver!

Feature for Video

Hi
I hope u add "Default duration/FPS" option for videos to help us with Funimation raws

[Help] Is there a way to launch mkv-muxing-batch-gui in MacOS

Hello @yaser01,
I'd like to say thank you for your efforts and this amazing utility - it saves a lot of time when the audio track comes separate from video files (common thing for anime series)!
With Windows it runs great, yet recently changed PC to Mac(intel) and I'm not able to launch app anymore.
When double click the Unix executable file it gives an error:

Last login: Sat Aug 27 10:02:34 on console
/Users/vimini/Downloads/MKV\ Muxing\ Batch\ GUI/MKV\ Muxing\ Batch\ GUI ; exit;
vimini@Vivis-Mac-mini ~ % /Users/vimini/Downloads/MKV\ Muxing\ Batch\ GUI/MKV\ Muxing\ Batch\ GUI ; exit;
zsh: exec format error: /Users/vimini/Downloads/MKV Muxing Batch GUI/MKV Muxing Batch GUI

Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

I have python3, recent pyside2, psutils installed.
Is there a way to troubleshoot and run the app on Mac?

OPUS support

it's popular codec, so it would be nice if you add it

Settings are stored in \AppData\Local\Temp only?

Hey Yas, correct me if I'm wrong but the settings are only stored in \AppData\Local\Temp folder, isn't? (I searched for other folders and setting files, but can't find anything except that one)

If this is correct, you better move the settings folder to somewhere else (it would be cool to have the option to also store the settings in the program's folder), I said this because cleaning software and the OS (when restarting/closing) empties this folder, as everything inside there is considered volatile depending on if it's constantly requested or not, so when cleaning or restarting/shutting down, the settings are wiped out and it has to be configured all over again.

PS. Thanks for your work as always, and I wonder: can you make the program multilingual-able?, I want to translate it to Spanish :3

Ability to remove title and track names

Please include a setting in your next version that allows any file that has a title (as displayed under the Output tab in MKVToolnNix GUI) to be removed on remux, as well as as removing a track name (as displayed under the Input tab under General options)—similar to being able to remove subtitles, chapters, and attachments.

Delete option

A suggestion rather than an issue.
Include an option to deposit in the same folder and delete the old version.

Feature Request

Please add an option to rename the audio track that is already in the source file. Thats a big part of what i need it to do.

Feature request : Multi-Folder File Font Attachments

So basically as far as I can tell when adding new font attachments, you only have the ability to select one folder containing all the fonts and mux them into every file in the queue.

With a lot of subtitles though, each video file can often have its own unique set of fonts which may have some cross-over with other files but not necessarily the exact same set of fonts (this happens a lot with anime). Now I know I could just mux all the fonts I intend to use in a set into every file regardless if it gets used or not but it would be a lot cleaner (and just generally all around better practice) and avoid any potential issues with font attachment bloat.

Essentially what I'm requesting is to have a similar setup as the subtitle tab where I can have a list of folders that contain fonts "line up" with the video files and only the folder that is parallel to it will be muxed into that specific video, if that makes sense.

Here's a link to an example of the kind of folder setup I typically have to hopefully illustrate the problem.

Adding files to queue without waiting the muxing to finish

Hello Yaser
Thank you for the hard work you'v been doing on this project and i have a suggestion to make it even better.
Can you add the ability to return to Video window and add more files and queue them while there are files already muxing like what MKVToolNix GUI is doing.

QoL improvements

  1. Refresh when new files are added or deleted to the folders with videos/attachments (could be auto or button to refresh)
  2. Subtitle set as deafult and forced - allow for deafault to be check/uncheck

Default Subtitle

When I add a video with a subtitle then I add a new subtitle the default subtitle feature doesn't work

Feature request: support adding forced subtitle in addition to non-forced subtitle to video

Hi,

I'm new to your utility, so maybe I'm missing this. I don't see a way to add both a forced and non-forced subtitle to a single video file, never mind doing the same in a batch for multiple videos. It appears you can have a single subtitle either forced or not per video.

Some files in the batch will have only a single, non-forced subtitle, some have both.

Thanks,
Mark M.

Feature request

Is it possible to add the following :

  1. An option that renames the video track name same as the file name.
  2. also the same option for subtitle and audio tracks

That would be great to have :)

[Feature Request] multi folder support and queue enhancement

Hey Yaser i hope you are doing well.

Can you please add support for adding video and sub sources from multiple folder and also, i wish that when we hit the add to queue we can go back and add more video and subs and add them too to queue and start them all at once.

Cannot run on Linux

Hello, I can't run the application on Linux.
I get the following error:

qt.qpa.plugin:` Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Aborted

I have installed everything needed as described in the instructions. Not sure what to do...
I'm using Zorin OS latest version, it's based on Ubuntu 20.04

Request - Add Feature - Input->Subfolders ; Output -> Same As Source

Hello, not sure how to request a feature or additional options in the application, but i just came across something that might be useful, please if possible.

To add subfolders within the Video Source Folder.
To have an option for Videos Destination Folder, to allow muxed files to reside in the same folder as source with added _new.mkv or even overwrite.

Thank you , hope it makes sense

Req: Don't duplicate existing attachments

I had a folder of files and some of the episodes had all required fonts already for the subtitle script, but some did not. I had figured out what fonts I was missing but not which of the files needed them, and which did not. So I remuxxed the entire directory, adding the font attachments. This results in some files having more than one copy of some font attachments.

When I do muxing manually and try to add a font that is already there MKVToolnix will say something and I can tell it to skip adding the file again. Would be nice if this GUI recognized this and didn't add the file when it already exists in the file. "Discard Old Attachments" would only work here if I didn't want to keep anything existing and requires all files in the batch use the same attachment group (which they may not apply depending on typesetting).

installation in the default mka program for audio and the inability to drag a file from explorer into the program

I noticed that by default only aac is enabled for audio in the program, it's very strange when many tracks in the hands are stored in mka.
of course, there are no difficulties with enabling this format in the settings, but it's still worth improving the default settings,
I just don't see any reason why all formats are disabled by default, it only causes minor difficulties when working with the program for the first time, since you have to enable all these formats in the settings.
There is also a lack of functionality for dragging files or even folders from the file explorer to the file selection window in your program.
Well, I am reasoning from the position of an ordinary user, so that it is convenient for a person to interact with your program.

Issue with Subtitle #2

There's a problem when adding more than one subtitle.

I have added both Arabic and English subs to a raw, and only checked the default on the Arabic one.

However, the output came with 2 DEFAULT subtitles English and Arabic...

Tried it again to see if maybe I missed something, or ticked the default box for English, but the same problem the tool still makes Subtitle #2 default.

Asking for a feature

Hey man thank you for the hard work in this incredible app.

Can you please add a drag and drop in your next release that will be a great thing to have.

Delay with eac3to

It would be amazing if you could apply delay to the audios too, with eac3to in backend

Dark Theme

Hello.

I cannot thank you enough for this super great gui. I have downloaded the latest version and replaced the resources of mkvmerge , mkvpropedit with the newer version and everything works fine.

I just have one request: please add dark theme to your great gui.

Thank you so much.

request a feature for tracks

Hi
can u add feature for track position?
like if i wanna set the position of new sub in track 1
cuz i don't want them to be in the end or set by language

Only English or Arabic for language

Hello, I just installed the new version of the program and now it only gives me those two options for language, was it intentional? Thanks in advance.

Give more options for keep/default subs (other than just lang or track#)

With subs, there are often multiple of the same language (such as "full dialog" + "Signs and songs") so just choosing based on lang isnt always helpful. I have recently run into a few series where the track#s dont follow a pattern (example below) and I had to basically edit ~50 episodes in batches of 3-5 that had the same track #'s

E1
Subs1 track 1: signs and songs
Subs2 track 2: full dialog

E2
Subs1 track 0: signs and songs
Subs2 track 1: full dialog

E3
Subs1 track 3: full dialog
Subs2 track 4: signs and songs

If I could enter in some sort of regex or wildcard search term such as ".*jpn.*full" (yes, I know the regex could be much better, just a basic example) and have it keep/default based on that it would solve some of these issues.

Alternately, maybe less useful, but still an improvement: If the main page listing all of the videos showed all audio/sub trcks listed for each item with a checkbox (which would be checked by default as they are already included), you would be able to go through and uncheck the items you DONT want included. This would then send them to the queue with the tracks that remain checked included and the rest removed. If you used a 3 way checkbox you could have:
unchecked = remove
checked = include
square-filled = include+default
image

[Feature Request] Just some suggestions

  • Add a exit warning, to prevent from accidentaly closing the window and losing all the selections made.
  • Remember Last Session, or keep the history of the previous jobs, like MKVToolNix does, so if you later found any error in the output, you can just fix it and remux everything again, as long as the source files are still in the same folders.
  • Add option to change track position of selected subtitles (or better: to add a new track in place of a existing track by its name), and also an option to mux new subs in any desired position of the existing video, not just top/bottom.
  • Option to "select all" in "Only keep those subtitles"
  • And of course: dark mode 😅

Option to not keep chapters

Hello! Would it be possible to disable chapters from original mkv file? Just like options for audio or subtitles?
'Only Keep Those Audios: Discard All'

I really hate chapters in mkv's and for me thats obsolete function.

Regards

Missing Files MkvMerge File

so I am trying to run this on pop os latest version, and it keeps giving me that same error message every time I open the app. IDK why, because I installed mkvtoonix.

Problem in choose subtitles tracks

Hi
U should make the program identify the number of tracks not a default number
cuz sometime number of tracks is more than 10 and also identify the language in each track to help to choose what track u want
Here pics
Before
1-
image

2-
image

After

1-
image

2-
image

and also u have to check that u added all languages cuz Norway not in

Removing Video to get MKA files

Often I need to replace the audio for a series using a 2nd set that has similar video but different audio codecs. The 1st set's audio is unreadable for my TV but I want the video quality basically.
So I remove the video from the 2nd set and put it into the 1st set as MKA using MKV Muxing Batch GUI

Can we have an option to Not Keep the video too? Or is there an alternative way of doing this^?

I make do with renaming the 2nd set with MKA and putting it in with the Batch GUI, ending with 2 videos on 1 file but I don't have to mux every single one. But the size is worrying.

[Feature Request] Default Directories for Episodes, Subtitles and Output already set at the start of the program.

Hi Yasser, hope you're doing well.

Just a small request..

You see, I always do my muxing in specific folders made for Muxing Batch Gui.

Like I have folders named (Eps, Subs, Final output) that I always use for my muxing.

So I wondered if you can make the tool start with the folder directories already set from the get go, instead of me clicking and choosing the same folders manually everytime I open the tool.

Change order of existing tracks

I have a TV that always plays the first audio track, no matter which is flagged as Default, so in rare cases I have to remux files without adding anything new, but just move to top the audio track I want as Default.
This "Mux at top" option is present in the GUI, but it seems to be working only with new added/imported tracks, not already existing tracks. I have tried "Usual muxing" enabling "Mux at top" for the track I want, but nothing changes, the output files are exactly as the input.
Is there any way to just move existing audio tracks inside MKVs?

Using installed mvkmerge.exe and mkvpropedit.exe instead of supplied one

I think this is more useful (I have seen similar feature in other apps), where the app would use those files (if installed) instead of those that are supplied with it. This way, the app would always use updated MkvToolnix files, even if the app itself is not frequently updated.

#29 Is asking kinda similar thing, but I think this would be better solution (or both could be implemented, if you want).

Thumbnail option

i hope u add tap for adding thumbnails

  • add thumbs like subs
    or
  • one thumb for all files

Dysfunctional files and pre-checks

I discovered a file that lost data during download and would not play.
What happens when a dysfunctional file is encountered? Does the app hang? Are there any pre-checks on the file performed? This could be important in bulk processing if the computer is left unattended.

Again, more a question than an issue.

Thank you.

issue

I need a command version .can you please make one 🤷‍♀️

Request: Auto-detect languages

Hi, nice program. One thing i missed is the ability to auto-detect wich language is the audio/subtitle based on filename like mkvtoolinx do. I don't know if this is easy or not to implement but i think this can be the cherry on top for this program. Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.