A robust application for muxing(merging) videos with subtitles, audios, chapters, attachments alongside many customization options.
A preview of the application in action:
Preview.mp4
- View media info of each file to monitor the video tracks
- Change default video duration/FPS [use this feature cautiously]
- 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
- 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
- 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
- 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]
- 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
- 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
Note
- Leaving destination folder empty will lead to overwrite source videos a popup will shown to confirm this action.
- 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.
- 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).
- 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. - 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. - In every tab/dialog you can reorder tracks using shortcuts
Ctrl + Up Arrow / Ctrl + Down Arrow
except for: (Attachment/Muxing Tab).
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 |
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.
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
- Clone the repository :
git clone https://github.com/yaser01/mkv-muxing-batch-gui.git
. - The main branch use
PySide6
library on version6.6.1
which is tested onpython 3.10.8
working good and only supporting x64 systems. - If you want to use on x32 systems you should switch to branch
develop-PySide2
:git checkout develop-pyside2
which usesPySide2 v5.14.0
and tested inpython 3.8.10
. - After selecting the branch just make sure to use the mentioned python version as it's guaranteed to work perfect.
- Just run
pip install -r requirements.txt
. - Then run
python main.py
and you are all good :D. - You may use
python3/pip3
instead ofpython/pip
depending on your system. - 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. - 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.
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.
- 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.
Any software bugs can be reported on the project's issues page. Suggestions for future updates are also welcome.