Данный сервис предназначен для синхронизации (сдвига по времени) субтитров под необходимый релиз.
Для работы необходимо указать файл и время для сдвига.
Время для сдвига указывается либо в формате .SRT (ЧЧ:ММ:СС,ТТТ), либо в формате .SSA / .ASS (Ч:ММ:СС.ТТ), либо в сокращённой форме (см. ниже).
Сначала указывается текущее время, затем, через пробел, время которое должно быть.
Примеры использования:
; сдвинуть на +1,5 секунды (вперёд) 00:00:02,000 00:00:03,500 ; сдвинуть на -5 секунд (назад) 00:00:15,000 00:00:10,000
Указанная выше запись означает, что все титры, время которых в оригинале больше или равно 00:02:00,000 будут сдвинуты на +1,5 секунды, а тех, у которых более или равно 00:00:15,000 - на -5 секунд соответственно - т.е. на разницу между первым и вторым временем на строчке.
При сдвиге в силу вступает последнее по старшинству время. Т.е. в данном примере все титры младше 00:00:02,000 не будут затронуты вообще, в то время как для титров старше или равным по времени 00:00:15,000 будет применяться только последний интервал.
Если нужно отменить сдвиг, то делается это простым указанием того же времени:
00:20:00,000 00:20:00,000
Таким образом все титры старше 20 минут затронуты не будут, т.к. разница между тем что есть и тем что должно быть равна 0 секунд.
Если же, к примеру, оригинальное время известно только для диалога, а первый титр, который нужно сдвинуть - это название серии, то можно вручную посчитать разницу между титрами - для этого служит расширенная форма:
00:04:00,000 = 00:02:00,000 00:03:00,000
В данном примере, любой титр старше либо равный 00:04:00,000, будет сдвинут на +60 секунд (разница между 2 и 3 интервалами).
При обработке времени для сдвига пустые строки и строки начинающиеся с ";" (точка с запятой) игнорируются (точку с запятой можно использовать для комментариев или отключения ненужных на данный момент строк).
Также имеется возможность использовать сокращённую форму:
; все примеры ниже одинаковы по значению и сдвигают на +1 секунду 00:00:00,000 00:00:01,000 ; без тысячных секунды и по одной цифре на всё 0:0:0 0:0:1 ; без часов 0:0 0:1 ; только секунды 0 1
Иными словами указание секунд обязательно, а нулевые часы, минуты или тысячные секунды можно опустить.
Общие примеры, для тех, кто сдвигает "на глаз" (не рекомендуется - используйте точное время из существующих субтитров):
; сдвиг всех титров на +5,750 секунды (вперёд) 0 = 0 5,750 ; сдвиг всех титров на -1,234 секунды (назад) 0 = 1,234 0 ; сдвиг на +2 секунды (вперёд) 0 = 0 2 ; сдвиг на -3 секунды (назад) 0 = 3 0 ; отменить любой сдвиг начиная с 32 минут 17 секунд 32:17 = 0 0 ; без сдвига, проверить целостность файла и привести в порядок ; - файлы в кодировках UCS-2LE и UCS-2BE переводятся в UTF-8 ; - у .SRT файлов убираются лишние пустые строки между титров ; - у .SRT файлов заново нумеруются все титры без пропусков ; - новый файл можно не сохранять, если перечисленные изменения не нужны ; - всё вышеперечисленное выполняется и при любом другом сдвиге тоже 0 0
- Поддерживаемые форматы субтитров:
.SRT - SubRip Text
.SSA - SubStation Alpha
.ASS - Advanced SubStation Alpha
.SUB / .MDV - MicroDVD
- Файл с субтитрами должен быть размером не более 5242880 байт.
- Субтитры в кодировках Unicode UCS-2LE и UCS-2BE автоматически переводятся в UTF-8.
- При сохранении выбирайте "все файлы", иначе Internet Explorer 6, например, добавит расширение .TXT.
- В начало выходного имени файла, если не отключить эту опцию, будет добавлен символ "_" (подчерк), чтобы исключить случайную перезапись оригинальных субтитров (чтобы не переименовывать субтитры каждый раз для проверки в видеоплеере - временно переименуйте видеофайл, чтобы он тоже с подчерка начинался).
- На каждой строчке должен находиться только один интервал времени в обычной форме:
время_было ПРОБЕЛ время_стало
или расширенной форме:
время_сдвига ПРОБЕЛ = ПРОБЕЛ время_было ПРОБЕЛ время_стало
Если пробелов не хватает или есть лишние, то будет приходить ошибка 3.
- Время для сдвига должно быть указано либо в формате .SRT (01:23:45,670), либо в формате .SSA / .ASS (1:23:45.67), либо в сокращённой форме (см. ниже).
- Если приходит ошибка 4, то, скорее всего, форма времени интервала для сдвига неверная. Вот как будет преобразована сокращённая форма:
1 - разворачивается в 0:00:01.00;
1:2 - разворачивается в 0:01:02.00;
1:2:3 - разворачивается в 1:02:03.00;
- Если приходит ошибка 6 и формат субтитров .SSA / .ASS - скорее всего отсутствует первая секция - добавьте в начало файла строчку "[Script Info]" без кавычек.
- Даже если время для сдвига отрицательное (например -5,464 секунды), то время титра не будет указано менее 0.
- Для .SRT формата все титры заново нумеруются начиная с 1, т.е. если раньше номера шли как 1, 2, 15, 78, то теперь будут 1, 2, 3, 4.
- Для .SRT формата убираются лишние пустые строки между титров.
- Формат MicroDVD .SUB / .MDV (кадры вместо времени: {123}{456}текст|для|показа) будет автоматически переведён в .SRT, при этом все управляющие команды будут отброшены (не поддерживаются). Во время конвертирования подразумевается частота 25 кадров в секунду (25,000). Если нужна другая, например 23,976, тогда в самое начала файла с субтитрами нужно добавить строку (символ разделения дробных знаков - точка):
{1}{1}23.976
Когда расхождение субтитров по времени не фиксированное +/- N секунд, а со временем увеличивается, либо уменьшается, то такой сдвиг называется плавающим, потому что время не постоянное, а меняется - "плывёт". Определить подобное очень просто: даже после фиксированного сдвига через некоторое время титры начинают постепенно (именно что постепенно) отставать или, наоборот, уходить вперёд и отображаться раньше времени. Не нужно путать эту ситуацию с тем, когда у субтитров просто меняются время, если, скажем, в середине видео была заставка, но её вырезали.
Для работы с такими субтитрами служит специальный формат:
start ~ old_first old_last new_first new_last
Где используются следующие обозначения:
start - с какого времени начинать сдвигать титры (0 - все титры);
old_first - старое время начала первого титра диалогов (начало эпизода, после вступления)
old_last - старое время начала последнего титра диалогов (конец эпизода, до титров)
new_first - новое время начала первого титра диалогов (начало эпизода, после вступления)
new_last - новое время начала последнего титра диалогов (конец эпизода, до титров)
Иными словами задаётся два интервала first-last из которых высчитывается коэффициент изменения на единицу времени. Пример:
; плавающий сдвиг для всех титров 0 ~ 0:01:29.66 0:21:35.66 0:01:33.66 0:22:29.70
Как правило проблема плавающего сдвига возникает когда субтитры были сделаны под VHS выпуск, а используются для CD/DVD/BD ремастера или наоборот. Поэтому рекомендуется использовать время именно первого и последнего титра диалогов эпизода, потому что, как правило, каждый эпизод делится на следующие части: вступление, серия, окончание и анонс. В ремастере так может получиться, что задержки между этими частями поменяли (уменьшили или увеличили). Так что при использовании времени из диалогов, хотя бы титры эпизода встанут на место, а титры других частей (вступления, окончания и анонса) не будут увеличивать ошибку приближения из-за изменённых промежутков между частями (их, возможно, придётся подгонять отдельно, но уже фиксированным сдвигом, что гораздо проще).
Конечно же, можно указывать время для сдвига подбирая его "на глаз", однако это чревато многими неприятными моментами.
Для извлечения времени, в самом простом случае, достаточно распаковать субтитры из .MKV при помощи MKVToolNix и взять время оттуда. Пример для командной строки, где 3 - номер потока для извлечения (субтитры в различных релизах могут быть под разными номерами):
mkvextract.exe tracks "Video File 01.mkv" 3:subtitle.txt
Если файл в .AVI формате с хардсабом, то можно загрузить его в VirtualDubMod и при помощи клавиш PageUp, PageDown, стрелок влево и вправо найти время начала показа титра, после чего скопировать его.
Однако, если субтитры в .SUB/.IDX формате или в H264 кодеке, который VirualDubMod в .MKV не понимает, то придётся, конечно, сдвигать "на глаз".
Важно помнить, что время показа многих фраз рассчитано так, чтобы со сменой ракурса ушла и фраза с экрана. Так что неверно выбранное время будет либо слишком рано убирать титр с экрана, либо наоборот держать дольше чем нужно.