У меня есть несколько файлов 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. Дайте мне знать, если вы все еще заинтересованы.