Новый год, отдых, смотрим сериалы, и вдруг засада: релизер при монтаже очередной серии не перевыставил флаг умолчания на русскоязычной дорожке в mkv-контейнере, а телевизор сменить аудиодорожку не умеет.
Решение довольно просто: перевыставить флаги на аудио-дорожках в нужном порядке. Для этого нужны утилиты mkvpropedit и mkvinfo, доступные в пакете mkvtoolnix. Для linux пакет доступен в репозиториях соответствующего дистрибутива, для windows можно взять, к примеру,
тут.
Сначала нужно узнать, каким образом идентифицировать треки в контейнере (под рукой был ноут с windows 7, примеры оттуда):
c:\Program Files\MKVToolNix>mkvinfo.exe g:\video.mkv
Вывода там вагон, ищем информацию об аудиодорожках:
| + Дорожка
| + Номер дорожки: 2 (ID дорожки для mkvmerge и mkvextract: 1)
| + UID дорожки: 1095754913
| + Тип дорожки: audio
| + Флаг по умолчанию: 1
| + ID кодека: A_AC3
| + Продолжительность по умолчанию: 32.000ms (31.250 кадров/полей в секунду для
видеодорожки)
| + Audio track
| + Частота дискретизации: 48000
| + Каналы: 6
| + Включено: 1
| + Флаг 'принудительно': 0
| + Флаг сшивания: 1
| + Минимальный кэш: 0
| + Максимальный BlockAddition ID: 0
| + Codec decode all: 1
| + Дорожка
| + Номер дорожки: 3 (ID дорожки для mkvmerge и mkvextract: 2)
| + UID дорожки: 1628356481
| + Тип дорожки: audio
| + ID кодека: A_AC3
| + Продолжительность по умолчанию: 32.000ms (31.250 кадров/полей в секунду для
видеодорожки)
| + Язык: rus
| + Имя: Fox Life
| + Audio track
| + Частота дискретизации: 48000
| + Каналы: 2
| + Включено: 1
| + Флаг по умолчанию: 0
| + Флаг 'принудительно': 0
| + Флаг сшивания: 1
| + Минимальный кэш: 0
| + Максимальный BlockAddition ID: 0
| + Codec decode all: 1
Нас интересует две вещи: во-первых, где стоит атрибут "флаг по умолчанию: 1" (эту дорожку и видит наш телевизор); во-вторых, нужно знать UID или ID дорожки для изменения настроек.
Теперь мы знаем все необходимое:
c:\Program Files\MKVToolNix>mkvpropedit.exe -v --edit track:=1628356481 --set flag-default=1 --edit track:=1095754913 --set flag-default=0 g:\video.mkv
The file is being analyzed.
Обработано: [=========================] 100%
Изменение для '--set flag-default=1' выполнено. Записей установлено: 1
Изменение для '--set flag-default=0' выполнено. Записей установлено: 1
Изменения записаны в файл.
Элемент Tracks записан.
Готово.
Вместо UID можно обращаться по ID (как правило, первым треком - id 0 - идет видеодорожка, затем по порядку все аудиодорожки), результат будет тот же.