{"id":13826408,"url":"https://github.com/yaser01/mkv-muxing-batch-gui","last_synced_at":"2025-07-09T00:33:47.916Z","repository":{"id":38320450,"uuid":"361750508","full_name":"yaser01/mkv-muxing-batch-gui","owner":"yaser01","description":"App to muxing videos with audios/subtitles with so many options!","archived":false,"fork":false,"pushed_at":"2024-01-17T09:20:10.000Z","size":72360,"stargazers_count":390,"open_issues_count":43,"forks_count":23,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-08-05T09:15:14.247Z","etag":null,"topics":["audio","batch","mkvtoolnix","subtitle"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yaser01.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-04-26T12:57:26.000Z","updated_at":"2024-08-04T14:22:49.000Z","dependencies_parsed_at":"2024-01-16T20:06:48.069Z","dependency_job_id":null,"html_url":"https://github.com/yaser01/mkv-muxing-batch-gui","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaser01%2Fmkv-muxing-batch-gui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaser01%2Fmkv-muxing-batch-gui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaser01%2Fmkv-muxing-batch-gui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaser01%2Fmkv-muxing-batch-gui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yaser01","download_url":"https://codeload.github.com/yaser01/mkv-muxing-batch-gui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225476383,"owners_count":17480215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","batch","mkvtoolnix","subtitle"],"created_at":"2024-08-04T09:01:36.955Z","updated_at":"2024-11-20T05:30:48.464Z","avatar_url":"https://github.com/yaser01.png","language":"Python","funding_links":["https://www.buymeacoffee.com/yaser01"],"categories":["Python"],"sub_categories":[],"readme":"# MKV Muxing Batch GUI\n\nA robust application for muxing(merging) videos with subtitles, audios, chapters, attachments alongside many customization options.\n\n[![Github All Releases](https://img.shields.io/github/downloads/yaser01/mkv-muxing-batch-gui/total.svg?color=4DC71F\u0026label=Downloads\u0026logo=github\")](https://github.com/yaser01/mkv-muxing-batch-gui/releases/latest)\n[![Donate](https://img.shields.io/badge/Donate-Buy_Me_A_Coffe-blueviolet.svg)](https://www.buymeacoffee.com/yaser01)\n\n- [App Preview](#app-preview)\n- [Features](#features)\n    - [Video Options](#video-options)\n    - [Subtitle Options](#subtitle-options)\n    - [Audio Options](#audio-options)\n    - [Chapter Options](#chapter-options)\n    - [Attachment Options](#attachment-options)\n    - [Source Files Options](#source-files-options)\n    - [Muxing Options](#muxing-options)\n- [Notes](#notes)\n- [Supported Extensions](#supported-extensions)\n- [Downloads](#downloads)\n    - [For Linux Users](#for-linux-users)\n    - [Using Python Code](#using-python-code-version)\n    - [Updating the MKVmerge version](#updating-the-mkvmerge-version)\n- [Attribution](#attribution)\n- [Report a Bug](#report-a-bug)\n\n\n\n\n- [License](#license)\n\n## ✨App Preview\n_A preview of the application in action:_\n\n\nhttps://github.com/yaser01/mkv-muxing-batch-gui/assets/52576632/33f8bf3e-600c-4e0d-8ee2-ca51abdf79dc\n\n\n\n## 📖Features\n\n### Video Options\n- View media info of each file to monitor the video tracks\n- Change default video duration/FPS [use this feature cautiously]\n### Subtitle Options\n- Add new subtitles to each video file\n- Subtitles names **don't have to match** videos names\n- Reorder the subtitles to match the right video\n- Remove files from the subtitle tab\n- Set subtitles to be default/forced\n- Set subtitle delay, track name, language\n- Mux the new subtitle at any desired position in the output video\n- Add multiple subtitles to each video file with individual settings for each subtitle\n\n### Audio Options\n- Add new audios to each video file\n- Audios names **don't have to match** videos names\n- Reorder the audios to match the right video\n- Remove files from the audio tab\n- Set audios to be default/forced\n- Set audio delay, track name, language\n- Mux the new audio at any desired position in the output video\n- Add multiple audios to each video file with individual settings for each audio\n\n### Chapter Options\n- Add new chapters to each video file\n- Chapters names **don't have to match** videos names\n- Reorder the chapters to match the right video\n- Remove files from the chapter tab\n\n### Attachment Options\n- Add new attachments to all video files\n- Discard old attachments files from all videos\n- Ability to attach file/folder for each video separately [expert mode]\n- Option to prevent adding duplicate existing attachments [any existing attachment in source video will be skipped]\n\n### Source Files Options\n- Discard old subtitles\n- Keep subtitles with specific language(s) and/or track id(s) while discarding any other subtitle\n- Discard old audios\n- Keep audios with specific language(s) or track id(s) while discarding any other audio\n- Set an old subtitle track to be default/forced\n- Set an old audio track to be default/forced\n- 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`\n### Muxing Options\n- Override global settings by changing subtitle/audio settings (delay, track name, language) for each subtitle/audio file\n- Save a log file\n- Set your default directories, languages, and file extensions to be remembered for future runs\n- Optimize your muxing by modifying the source file when feasible. A prompt will appear when this option is available\n## 📝Notes\n\n\u003e [!NOTE]\n\u003e1. Leaving destination folder empty will lead to overwrite source videos a popup will shown to confirm this action.\n\u003e2. 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.\n\u003e3. 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).\n\u003e4. 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**.\n\u003e5. 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.\n\u003e6. In every tab/dialog you can reorder tracks using shortcuts `Ctrl + Up Arrow / Ctrl + Down Arrow` except for: (Attachment/Muxing Tab).\n## 📁Supported Extensions\n|     Type    |                                        Extensions                                       |\n|:-----------:|:---------------------------------------------------------------------------------------:|\n|   Video     | AVI, MKV, MP4, M4V, MOV, MPEG, TS, OGG, OGM, H264, H265, WEBM, WMV                       |\n|  Subtitle   | ASS, SRT, SSA, SUP, PGS, MKS, VTT                                                       |\n|   Audio     | AAC, AC3, FLAC, EAC3, MKA, M4A, MP3, DTS, DTSMA, THD, WAV, OGG, OPUS                      |\n|   Chapter   | XML                                                                                     |\n\n## ⬇Downloads\n\nThe MKV Muxing Batch GUI is compatible with Windows 7/8/8.1/10/11 32-bit/64-bit and most Linux distributions. \nYou can download it from the project's [releases\u0026nbsp;page](https://github.com/yaser01/mkv-muxing-batch-gui/releases).\n\n\n### For Linux Users\nThe 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]\nBefore starting the app, install the following libraries [not always needed as most of them included in the app]:\n```bash\nsudo apt-get install -y libpugixml-dev\nsudo apt-get install -y libmatroska-dev\nsudo apt install libxcb-cursor0\n```\n### Using Python Code Version\n\n1. Clone the repository :`git clone https://github.com/yaser01/mkv-muxing-batch-gui.git`.\n2. 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.\n3. 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`.\n4. After selecting the branch just make sure to use the mentioned python version as it's guaranteed to work perfect.\n5. Just run `pip install -r requirements.txt`.\n6. Then run `python main.py` and you are all good :D.\n7. You may use `python3/pip3` instead of `python/pip` depending on your system.\n8. 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](https://askubuntu.com/a/1195153).\n9. 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](https://mkvtoolnix.download/downloads.html).\n\n### Updating The MKVmerge version\nYou 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:\n```bash\n# Navigate to the app's installation directory, e.g. on Windows:\n\"C:\\\\Program Files (x86)\\\\MKV Muxing Batch GUI\"\n# Go to Resources\\\\Tools\\\\ [your operating system], and replace mkvmerge.exe and mkvpropedit.exe with the newer version you have\n```\n\n\u003e For linux users it's recommended to just clear `Resources\\\\Tools\\\\ [your operating system]` folder and then install mkvtoolnix on your system from [here](https://mkvtoolnix.download/downloads.html) and the app will automatically detect it.\n\n## 🙏Attribution\n- The application relies heavily on [MKVToolNix](https://gitlab.com/mbunkus/mkvtoolnix), so a big thanks to them.\n- Thanks to my friends who helped test the app and offered numerous ideas.\n\n## 🦟Report a Bug\nAny software bugs can be reported on the project's [issues page](https://github.com/yaser01/mkv-muxing-batch-gui/issues). Suggestions for future updates are also welcome.\n\n## 🏷License\n\n[![GitHub](https://img.shields.io/github/license/yaser01/mkv-muxing-batch-gui?style=for-the-badge)](https://github.com/yaser01/mkv-muxing-batch-gui/blob/main/LICENSE)\n\n\u003cdiv align=\"right\"\u003e\n\u003ctable\u003e\u003ctd\u003e\n\u003ca href=\"#start-of-content\"\u003e👆 Scroll to top\u003c/a\u003e\n\u003c/td\u003e\u003c/table\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaser01%2Fmkv-muxing-batch-gui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyaser01%2Fmkv-muxing-batch-gui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaser01%2Fmkv-muxing-batch-gui/lists"}