Работа с контейнером MKV в MKVToolNix: замена и добавление дорожек без перекодирования
MKVToolNix качаем от сюда
Формат Matroska (MKV) представляет собой контейнер, который может включать несколько типов потоков: видеодорожки, аудиодорожки, субтитры, главы и различные служебные данные.
Главное преимущество такого контейнера — возможность изменять состав потоков без повторного кодирования. Фактически выполняется операция ремультиплексирования, при которой исходные потоки просто собираются в новый контейнер.
Для подобных задач используется пакет MKVToolNix, позволяющий управлять структурой MKV-файла и формировать новый контейнер из выбранных дорожек.
Так выглядит окно программы сразу после её запуска:

Подготовка исходных файлов
Перед началом необходимо проверить несколько параметров:
- Совпадение длительности
Видеоисточник и файл, из которого берётся аудио или субтитры, должны иметь одинаковый тайминг. Если продолжительность отличается, синхронизация дорожек может нарушиться. - Совпадение версии рипа
Желательно использовать релизы, созданные из одного и того же источника (например, одного Blu-ray издания). Различия в монтаже могут привести к смещению аудио. - Совпадение частоты кадров
При несовпадении FPS возможна постепенная рассинхронизация аудио.
Проверить параметры контейнера можно средствами MKVToolNix или сторонними анализаторами медиапотоков.
Добавим туда видеофайл, нажав в самом низу кнопочку «добавить исходные файлы», или просто перетащив нужный файл из папки в окно программы. Увидим примерно следующую картину:

Сверху мы видим исходный MKV-контейнер, снизу — его содержимое. Справа можно менять параметры выбранного содержимого — например, сделать нужную дорожку основной (по-умолчанию), поменять её название, язык, и т.п.
Теперь, добавляем в окно программы второе видео. Во всплывающем окне тыкаем на первую галку:

После добавления получается примерно такая картина:

Теперь, начинаем пересборку. Видео берем с первого файла (зеленого), а звуковую дорожку и субтитры берём со второго (синего).
Видим, что сами субтитры настроены на принудительный показ, и при желании это можно исправить, сделав их отключаемыми — для этого в свойствах нужно флаг принудительного показа переключить на «нет»:
В этом же месте можно поставить флаг «дорожка по умолчанию», чтобы пометить, какая именно озвучка и какие именно субтитры должны воспроизводиться сразу при открытии фильма в плеере. Не забудьте сделать это, если выбранная вами дорожка изначально этого флага не имела, также как и снять этот флаг с остальных, которые вы решили добавить помимо неё.
Попутно избавляемся от лишнего (например, мне не нужен украинский и английский контент, я хочу только русский). В результате, получаем примерно такую картину:

После того, как вы убедились, что выбрали все нужные вам дорожки, собрав лучшее из двух миров, и пометили все необходимые флаги на них, можно дать файлу новое имя в самом низу окна программы, запускать процесс слияния, и после завершения спокойно смотреть фильм таким, каким мы хотим его смотреть.

