Сегодня нашел как заставить плеер автоматически выбирать из имеющихся в медиафайле нескольких дорожек субтитров нужные, на основе признаков дорожки субтитров. По спецификации Matroska.
Этот пост для ленивых любителей смотреть сериалы или для ленивых глухих или для тех кому надоело отключать soft-субтитры, а потом включать, когда вдруг персонажи начинают говорить на иностранном языке.
Ну, для начала опишу признаки. Их два: языка дорожки и степени детализации.
Признак языка записывается тремя буквами: rus, eng. Этот признак может быть и у аудиодорожек.
Признак детализации:
normal - субтитруются только реплики персонажей;
hearing impaired - субтитруются в том числе любые звуки (например, [крик], [грохот]);
forced - субтитрами переводится только речь, которая по замыслу режиссера должна прозвучать на родном языке персонажа, отличном от языка фильма;
default - признак, устанавливаемый на выбор саббером и только в soft-субтитры. Это позволяет плееру выбирать данную дорожку по умолчанию.
Итак, эти признаки и помогут автоматически выбирать субтитры в плеере MPC-HC. (конечно, в других плеерах тоже реализованы похожие настройки, но этот пост о MPC-HC)
Настройка достаточно проста. В окне по пути <Options><Internal Filtres> находим кнопку Splitter, по клику на которое открывается окно <Properties> (см рис.) в котором нужно найти поле для ввода текста Subtitles:, выпадающий список Subtitle Selection Mode и подсказки между ними.
Для настройки нужно в выпадающем списке установить режим Advanced, затем в поле для ввода текста указать признак нужной дорожки в виде первой буквы признака детализации (n, h, f или d) или всех трех букв признака языка. В этом поле так же можно выбрать зависимость выбираемых субтитров от выбранной аудиодорожки. Формат заполнения
[audio]:sub|sub;[audio]:sub|sub;..., где audio - признак языка выбранной аудиодорожки, на основе которой будет выбираться дорожка субтитров, sub - признаки субтитра по которому будет выбрана дорожка субтитра. Признак audio может опускаться или использовать символ *, это интерпретируется как "все языки". Признак sub может принимать один из признаков языка субтитров, признаков детализации.
На пример:
eng:rus|n - означает что при выборе английской аудиодорожки будут выбраны русские субтитры с переведенными репликами.
Через символ ; можно объединить несколько правил, например: поведение при английской аудиодорожке отличное от поведения при русской дорожке, или при любых дорожках отличных от русской аудиодорожки.