Изменить порядок звуковых дорожек в файлах MKV

Изменить порядок звуковых дорожек в файлах MKV

У меня есть несколько файлов MKV, которые были созданы одним и тем же способом:

  • одна видеодорожка
  • звуковая дорожка 1 на английском языке
  • звуковая дорожка 2 — немецкая

Теперь я хочу изменить порядок звуковых дорожек, чтобы немецкий язык был дорожкой 1, а английский — дорожкой 2. Как мне добиться этого для всех файлов MKV в папке?

решение1

Пожалуйста, сделайНЕТиспользовать mkvpropeditдля упорядочивания треков, как в принятом ответе. Это будетНЕТупорядочить их должным образом в отличие от mkvmerge.

Если вы просмотрите видео с помощью такого инструмента, как MediaInfo, вы увидите поле StreamOrderи ID.

введите описание изображения здесь

Из моего опыта (я понял это трудным путем), что IDпри использовании изменится только дорожка mkvpropedit. Это не изменит StreamOrder, поэтому MKVToolnix также не распознает дорожки как упорядоченные.

Вместо этого используйте mkvmergeтам, где можно указать --track-order, например:

mkvmerge --output "your_file (1).mkv" "(" "your_file.mkv" ")" --track-order 0:0,0:2,0:1

Где 0:0обозначает видеодорожку, 0:2тогда будет немецкая дорожка, а 0:1будет английская дорожка.

Надеюсь, это поможет будущим читателям.

решение2

Я нашел решение и создал следующий скрипт mkvmergeиз mkvtoolnixпакета:

#!/bin/bash

for f in *.mkv
do 
    mkvpropedit -v "$f" --edit track:2 --set track-number=3 --edit track:3 --set track-number=2
done

Это циклически проходит по всем файлам mkv в папке (предполагая, что все они были созданы одинаково и должны быть отредактированы одинаково). Поскольку первая дорожка обычно является видеодорожкой, она меняет вторую дорожку на третью ( --edit track:2 --set track-number=3), а третью на вторую ( --edit track:3 --set track-number=2).

решение3

Это можно сделать с помощью программы под названиемMKVToolNix

Пример файла MKV с тремя загруженными аудиопотоками:

введите описание изображения здесь

Как вы можете видеть в этом примере. У меня есть 3 аудиопотока. TrueHD, DTS-HD и AC-3 Это будет то же самое, что и ваша английская, немецкая ситуация.

Просто перетащите немецкий аудиопоток наверх, как показано ниже. Я перемещу AC-3 на верхний поток в качестве примера.

введите описание изображения здесь

Но все, что это делает, это перемещает AC-3 наверх в порядке аудио... НО вы заметите, что TrueHD Atmos по-прежнему является треком по умолчанию для воспроизведения при запуске файла.

Чтобы сделать AC-3 (или немецкий в вашем случае) аудиопотоком по умолчанию, щелкните на немецкой дорожке и справа под свойствами установитеТрек по умолчаниюфлаг какДА

введите описание изображения здесь

После того, как вы все это сделаете, нажмитеЗапустить мультиплексирование.Это создаст совершенно новый файл с новыми внесенными вами изменениями. Затем вы можете удалить старый файл.

решение4

Вы не можете изменить порядок дорожек внутри файла mkv без повторного объединения дорожек в новый файл. Я недавно столкнулся с точно такой же проблемой и нашел решение. Я создал пакетный файл для изменения порядка звуковых дорожек, который обрабатывает все файлы mkv в выбранной папке и выводит новые файлы mkv с тем же именем и переупорядоченными звуковыми дорожками в новое место. Он использует mkvmerge.exe из набора MKVToolNix (последняя версия) для Windows. И, конечно же, повторное объединение дорожек занимает некоторое время по сравнению с изменением флагов и свойств с помощью mkvproedit. Дайте мне знать, если вы все еще заинтересованы.

Связанный контент