Перейти к основному содержимому
SubtitleMatrix

Разбить длинные строки субтитров

Текст и оформлениеПереформатирование строк
Или вставьте текст субтитров

Параметры

Одно поле, пять вариантов, и у каждого своя страница. «Переложить по числу колонок» укладывает каждую реплику в заданное число колонок, что может как укоротить слишком длинную строку, так и подтянуть короткую. «Разбить только длинные строки» трогает только строки длиннее лимита и оставляет остальные точно как были. «Выровнять существующие строки» сохраняет число строк в каждой реплике и перекладывает слова между ними, пока самая длинная не станет как можно короче. «Соединить» ставит каждую реплику в одну строку. «Ограничить» не трогает реплики, уже укладывающиеся в число строк. Эта страница заполняет поле вариантом, названным в её заголовке, и других не предлагает.

Считается в колонках, а не символах: китайский или японский иероглиф занимает две, латинская буква с диакритикой — одну. 42 — обычное число для субтитров латиницей. Уменьшите — строки станут короче, но их будет больше; ничего никогда не обрезается.

В какой частоте кадров считается тайминг. На страницах форматов это то, что нужно MicroDVD: он хранит время в номерах кадров. На страницах частоты кадров это частота, по которой файл был рассчитан, — версия, для которой делались субтитры, — а второе поле страницы принимает частоту видео, с которым вы будете их использовать. Обычные значения: 23,976, 24, 25, 29,97, 30, 50, 59,94 и 60. Ошибка сдвигает весь таймлайн, а на страницах частоты кадров — на коэффициент, а не на фиксированную величину.

Эта страница делает одно: ломает строки, которые длиннее заданного числа столбцов, и не трогает остальные — даже строки, стоящие рядом с разбитыми, возвращаются байт в байт. Число считается в столбцах: латинская буква занимает один, китайский или японский иероглиф — два, поэтому лимит 42 вмещает сорок две латинские буквы или двадцать один иероглиф, и это значение по умолчанию.

Разрыв ставится на границе между словами и никогда внутри слова; слово длиннее самого лимита, например URL или длинное немецкое сложное слово, получает отдельную строку и остаётся сверх предела, а запуск сообщает, сколько таких строк ещё слишком широки. Страница не соединяет: реплика из двух строк по 12 столбцов остаётся двумя строками, потому что сведение строк — это переразбиение, а не разбиение, и для него есть отдельная страница. Принимаются одиннадцать форматов с несколькими строками внутри реплики, оформление, перекрывающее разрыв, сохраняется на обеих половинах, и файлы не загружаются на сервер.

Примеры

Одна убежавшая строка рядом с нормальной

Вход

1
00:00:01,000 --> 00:00:04,000
I told you we would miss the last train if we stayed any longer
Short line

Выход

1
00:00:01,000 --> 00:00:04,000
I told you we would miss the last train if
we stayed any longer
Short line

Первая строка занимает 63 столбца при лимите 42, поэтому ломается после последнего помещающегося слова и заканчивается ровно на 42. Вторая строка в 10 столбцов возвращается нетронутой, байт в байт, на том же месте: её не измеряют заново и не рассматривают для соединения. Эта вторая половина и есть вся разница со страницей переноса: та переразбила бы обе строки и вполне могла бы перенести короткую в другое место.

Слово длиннее всей строки

Вход

1
00:00:01,000 --> 00:00:04,000
Say it: pneumonoultramicroscopicsilicovolcanoconiosis

Выход

1
00:00:01,000 --> 00:00:04,000
Say it:
pneumonoultramicroscopicsilicovolcanoconiosis

Слово в 45 столбцов нельзя уложить в лимит 42 никаким разрывом, сохраняющим его целым, поэтому оно получает отдельную строку и остаётся сверх предела, а запуск сообщает об одной слишком широкой строке. Два слова перед ним переходят на первую строку. Разрезание слова пополам дало бы нечитаемое, да и было бы правкой диалога, а не вёрстки, чего эта страница делать не просила.

Короткая строка и китайская строка под одним лимитом

Вход

WEBVTT

00:00:01.000 --> 00:00:04.000
Good.
你好世界今天天气很好我们出去玩吧顺便买点东西回来

Выход

WEBVTT

00:00:01.000 --> 00:00:04.000
Good.
你好世界今天天气很好我们出去玩吧顺便买点东
西回来

В реплике две строки, и только одна выходит за лимит. Good. занимает 5 столбцов и не двигается; китайская строка — двадцать четыре иероглифа, то есть 48 столбцов, — ломается после двадцать первого. Пробелов в китайском нет, поэтому точкой разрыва служит каждый иероглиф и разрыв попадает внутрь фразы: для этой письменности это норма, и поэтому счёт идёт по экранной ширине. Заголовок WEBVTT и строка тайминга возвращаются точно такими, какими пришли.

Частые вопросы

Чем разбиение длинных строк отличается от переноса всех строк по ширине?

Перенос переразбивает каждую реплику заново, поэтому короткая строка рядом с длинной может подтянуться наверх, и все прежние переносы способны сдвинуться. Эта страница трогает только строки сверх лимита. Обе используют одно и то же число столбцов и могут дать одинаковый файл для реплики, которая уже сама выходит за предел, но на каждой нормальной реплике ведут себя по-разному.

Почему строки, которые уже были короткими, не изменились ни на байт?

Потому что с ними нечего было делать. Страница измеряет каждую строку, ломает те, что выходят за лимит, а остальные пропускает, не переписывая с заново измеренной копии. Это не просто утверждение о том, что вывод выглядит так же: строки в пределах лимита приходят теми же данными, что лежали в файле, поэтому страницу безопасно запускать там, где переносы уже поправлены вручную.

Меняются ли время начала или конца при разбиении длинной строки?

Нет. Обе строки разбитой реплики видны на экране одновременно, ровно тот отрезок, который у реплики уже был. Таймлайн не меняется, а номера реплик принадлежат файлу. Если нужно, чтобы половины показывались одна за другой, это другая задача: страница разделения длинного субтитра на две реплики делит и время, а это заметное изменение тайминга фильма, а не вёрстки.

Где именно ставится разрыв в длинной строке субтитра?

На пробеле или на границе символов в письменности без пробелов. Разрыв внутри слова не делается никогда: слово пришлось бы разрезать пополам, а это меняет то, что читает зритель. В китайском и японском тексте пробелов нет, поэтому границей служит каждый иероглиф и разрыв может попасть в любое место фразы; именно поэтому лимит считается в экранных столбцах, а не в символах.

Что показывает отчёт после разбиения длинных строк?

Сколько реплик получили разбитую строку и сколько строк всё ещё выходят за лимит после запуска. Второе число важнее: это строки, которые не удалось уложить в предел, и обычная причина — слово длиннее лимита. Реплики, уже укладывавшиеся в лимит, не считаются вовсе, поэтому отчёт об одной реплике означает, что изменилась действительно одна.

В каких форматах можно разбить длинные строки субтитров?

В одиннадцати, где реплика может содержать больше одной строки: SRT, WebVTT, ASS, SSA, SBV, SAMI, LRC, MicroDVD, TTML, JSON и CSV. Обычный текст исключён: в нём одна строка текста равна одной реплике, поэтому внутри реплики нет строки, которую можно сломать, и запуск вернул бы файл без изменений. Оформление, перекрывающее разрыв, сохраняется на обеих половинах.

Похожие инструменты