Как синхронизировать субтитры в графическом формате vobsub (idx/sub) с фильмом

Для работы с субтитрами в формате vobsub (пара файлов idx/sub) вам потребуются:

  1. Любой простейший текстовый редактор, например Блокнот (входит в состав «стандартных программ» операционной системы Windows).
  2. Программа Vobsub cutter. Она входит в состав кодека Vobsub. Внимание: программа Vobsub cutter не входит в состав сборника кодеков Combined Community Codec Pack.
  3. Программа Subresync. Эта программа также входит в состав кодека Vobsub.

Итак, программа Subresync нужна лишь для того, чтобы проверить, что за субтитры нам попали. В ней нажимаем на кнопку «Open...», открываем файл idx, наводим на первую-вторую строчку, смотрим текст, удостоверяемся, что субтитры к нашему фильму.

Рассмотрим следующий случай. У нас есть рип некоего сериала – файлы в формате avi (каждая серия – 1 файл), а также субтитры в формате vobsub, извлеченные из DVD-релиза этого сериала (на каждом диске было по 2 серии). Задача – разбить пару файлов idx/sub субтитров (включающую субтитры к двум сериям) на 2 пары файлов – каждая пара к своей серии – и сделать так, чтобы субтитры были идеально синхронизированы с обоими файлами avi.

Во-первых, переименовываем оба файла idx и sub – даем им то же имя, что и имя avi файла с первой серией. Получаем три файла с одинаковым именем, но разными расширениями, например:

Last Christmas (2004) 01.avi
Last Christmas (2004) 01.idx
Last Christmas (2004) 01.sub

Начинаем смотреть сериал (настоятельно рекомендуется для этого использовать Media Player Classic).

Первый вариант возможной проблемы – может оказаться так, что субтитры отстают или обгоняют звук. Что делать? В любом случае отмечаем разницу во времени. Например, субтитр №1 появился в 0:00:35,000, а соответствующая фраза начала звучать лишь в 0:00:37,500. Соответственно субтитры появляются на 2,500 секунды раньше звука. Точный тайминг, когда появляются субтитры, можно посмотреть в файле idx. Для этого открываем этот файл в Блокноте и находим строчки вроде этих:

# alt: Japanese
# Vob/Cell ID: 1, 1 (PTS: 0)
timestamp: 00:00:35:000, filepos: 000000000
timestamp: 00:01:19:145, filepos: 000000800
timestamp: 00:01:25:318, filepos: 000001000

Видно, что первый субтитр появляется в 0:00:35,000.

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

  1. Если у вас уже есть точно синхронизированные с вашим avi файлом субтитры, то тайминг можно взять оттуда. Открываем в Блокноте файл субтитров в формате srt и смотрим тайминг нужной нам фразы (или ее перевода).
  2. Если ваши avi файлы – это хардсаб, то тайминг субтитров можно оттуда извлечь с помощью программ: SubRip, AviSubDetector, VideoSubFinder (страница проекта на сайте sourceforge.net), SRT Make.
  3. При определенной сноровке разницу между появлением субтитров и звуком можно определять на глаз/слух.

Итак, мы определили, что субтитры у нас появляются на 2,500 секунды раньше звука. Открываем в Блокноте файл idx и сразу после строчки:

# Vob/Cell ID: 1, 1 (PTS: 0)

вставляем следующую строчку:

delay: 00:00:02:500

В случае если субтитры наоборот – появляются позже звука, вставляем следующую строчку:

delay: -00:00:02:500

Будем называть такие строчки «строчками задержки субтитров».

Бывают такие ситуации, что разница между субтитрами и звуком появляется не с начала фильма. Такое бывает, если например в TV-рипе сериала была рекламная вставка, а в DVD-релизе она отсутствует. В этом случае у нас, например в течение первых 15 минут сериала субтитры совпадают со звуком, а потом звук начинает отставать от субтитров (субтитры появляются раньше звука). В этом случае мы находим в фильме последний точно совпадающий со звуком субтитр (следующий субтитр уже не совпадает со звуком), открываем в Блокноте файл idx и вставляем строчку задержки субтитров ПОСЛЕ последнего точно совпадающего субтитра (соответственно ПЕРЕД первым несовпадающим субтитром).

Бывает также следующая ситуация. В начале фильма субтитры совпадали со звуком, но постепенно они начинают все больше и больше отставать от звука (или обгонять его). Такое случается, когда число кадров в TV-рипе не совпадает с числом кадров в DVD-релизе.

Что делать в этом случае? Чтобы исправить подобную десинхронизацию субтитров вам нужно точно знать разницу в секундах между субтитрами и звуком в КОНЦЕ фильма (на сколько секунд отстают/обгоняют субтитры). После этого считаем длительность фильма в секундах (длительность фильма можно посмотреть в плеере Media Player Classic). Например, для фильма длительностью 57 минут 49 секунд это число составляет 59*60 + 47 = 3469 секунд. Затем открываем программу Vobsub cutter. В ней нажимаем на кнопку «Open…», открываем файл idx. Ставим галочку напротив «Modify FPS». В окошке «Org» пишем длительность фильма в секундах, а в окошке «New» пишем следующее число:

  • длительность фильма в секундах ПЛЮС разница в секундах между субтитрами и звуком – в случае, если субтитры появлялись ПОЗЖЕ звука,
  • длительность фильма в секундах МИНУС разница в секундах между субтитрами и звуком – в случае, если субтитры появлялись РАНЬШЕ звука.

Жмем кнопку «Save as…», выбираем желаемое имя для будущей пары файлов idx и sub.

Программа Vobsub cutter пригодится вам еще для одного случая – она пересчитывает заново тайминг, который вы изменяли, вставляя строчки задержки субтитров. Для этого достаточно открыть отредактированные вами субтитры и заново сохранить под другими именем – все строчки задержки субтитров исчезнут, а цифры тайминга в файле idx будут изменены (пересчитаны).

Итак, все вышеперечисленное мы выполняли для первой серии, но пара файлов idx и sub содержат субтитры для двух серий. Нам надо разбить эти файлы на первую и вторую серию (получить 2 новые пары idx и sub, которые кстати будут приблизительно в 2 раза меньше своих предшественников по объему).

Во-первых, создаем резервную копию разбиваемой пары файлов idx и sub. Затем открываем файл idx в программе Vobsub cutter. Чтобы получить пару файлов idx и sub:

  • для ПЕРВОЙ серии в окошке «Start» оставляем 0:00:00:000, а в окошке «End» пишем длительность первой серии, например, 0:57:49:000,
  • для ВТОРОЙ серии в окошке «Start» вставляем длительность первой серии, например, 0:57:49:000, а в окошке «End» оставляем общую длительность двух серий, например, 1:45:32:000.

При этом возможно появление небольшой десинхронизации во второй серии, но она легко исправляется вставкой строчки задержки субтитров. После этого пара файлов idx и sub для первой серии считается окончательной, а с парой для второй серии мы начинаем работать так же, как мы работали с первой серией. В любом случае окончательные варианты субтитров тщательно проверяйте в 5-10 точках на каждую серию.