Выровнять переносы строк в субтитрах
Или вставьте текст субтитров
Параметры
Одно поле, пять вариантов, и у каждого своя страница. «Переложить по числу колонок» укладывает каждую реплику в заданное число колонок, что может как укоротить слишком длинную строку, так и подтянуть короткую. «Разбить только длинные строки» трогает только строки длиннее лимита и оставляет остальные точно как были. «Выровнять существующие строки» сохраняет число строк в каждой реплике и перекладывает слова между ними, пока самая длинная не станет как можно короче. «Соединить» ставит каждую реплику в одну строку. «Ограничить» не трогает реплики, уже укладывающиеся в число строк. Эта страница заполняет поле вариантом, названным в её заголовке, и других не предлагает.
В какой частоте кадров считается тайминг. На страницах форматов это то, что нужно MicroDVD: он хранит время в номерах кадров. На страницах частоты кадров это частота, по которой файл был рассчитан, — версия, для которой делались субтитры, — а второе поле страницы принимает частоту видео, с которым вы будете их использовать. Обычные значения: 23,976, 24, 25, 29,97, 30, 50, 59,94 и 60. Ошибка сдвигает весь таймлайн, а на страницах частоты кадров — на коэффициент, а не на фиксированную величину.
Эта страница выравнивает уже существующие строки реплики, не меняя их числа: слова перераспределяются между строками так, чтобы самая длинная стала как можно короче. Реплика, пришедшая двумя строками в 63 и 5 столбцов, уходит двумя строками в 33 и 35, а соседняя, уже ровная, остаётся нетронутой. От страниц переноса и разбиения это отличает главное: число строк здесь не входной параметр, а факт из файла, который вы или ваш плеер уже установили, и меняется только место слов внутри него.
Строки, начинающиеся с тире, означают разных говорящих и выравниваются отдельно друг от друга; реплика из одной строки или из одного слова в каждой строке возвращается без изменений, и запуск о ней ничего не сообщает. Принимаются одиннадцать форматов с несколькими строками внутри реплики, всё считается в столбцах, и файлы не покидают браузер.
Примеры
Короткая вторая строка и длинная первая
Вход
1
00:00:01,000 --> 00:00:04,000
We could take the train and be there by six
or wait for the later one.
Выход
1
00:00:01,000 --> 00:00:04,000
We could take the train and be there
by six or wait for the later one.
Первая строка была 43 столбца, вторая — 26, поэтому страница перенесла by six с первой строки на вторую и остановилась: 36 и 33 столбца — самое близкое, что можно получить из этой пары, а дальнейший сдвиг сделал бы вторую строку длиннее первой. Строк по-прежнему две, слова те же и в том же порядке, а тайминг и номер реплики не тронуты.
Реплика, которая уже ровная
Вход
1
00:00:01,000 --> 00:00:04,000
The train leaves at six
in the evening Seven.
Выход
1
00:00:01,000 --> 00:00:04,000
The train leaves at six
in the evening Seven.
23 и 21 столбец — это самый ровный вариант для этой пары, поэтому странице нечего делать, и файл возвращается байт в байт. Отчёт тоже пуст: запуск, не нашедший работы, не является запуском, который что-то сделал. Это стоит увидеть один раз: инструмент, переписывающий строки в любом случае, рисковал бы испортить уже правильный файл, и в отчёте не было бы ничего, что предупредило бы вас.
Китайское слово против английской строки
Вход
WEBVTT
00:00:01.000 --> 00:00:04.000
你好
Good morning to you everyone
Выход
WEBVTT
00:00:01.000 --> 00:00:04.000
你好 Good morning
to you everyone
Китайская строка — два иероглифа, то есть 4 столбца, против английской строки в 28 столбцов: такую реплику не назовёшь ровной, и страница согласна. Она подтягивает Good morning наверх, и строки становятся 17 и 15 столбцов. Подсчёт символов назвал бы китайскую строку двумя единицами и почти ничего не сдвинул, оставив дисбаланс, ради которого страница и существует.
Частые вопросы
Что именно меняет выравнивание переносов в субтитрах?
Только положение слов внутри реплики. Число строк остаётся прежним, количество слов и их порядок не меняются, а время начала, время конца и номер реплики принадлежат файлу. Это страница для случая, когда число строк уже соответствует вашему плееру или редполитике, а проблема лишь в том, что одна строка намного длиннее соседней.
Почему выравнивание не равно равномерному делению слов?
Потому что слова имеют разную длину: одинаковое число слов в строке даёт неровный вид. Строка со словом I и строка со словом internationalization содержали бы по одному слову, но одна из них шириной в двадцать столбцов. Страница ищет, насколько узкими могут быть строки при данном их числе, и раскладывает текст под эту ширину, поэтому линии сходятся по мере, а не по количеству слов.
Меняется ли число строк в субтитре после выравнивания?
Нет, и в этом смысл страницы. Число строк читается из реплики и служит жёстким ограничением: две строки возвращаются двумя, три — тремя. Если нужно другое число строк, страница переноса работает по заданному числу столбцов и может дать больше или меньше строк, а страница ограничения строк работает с максимумом.
Почему строки с тире остались неровными?
Потому что тире в начале строки отмечает смену говорящего, и два блока выравниваются отдельно друг от друга, а не один против другого. Две строки в 14 и 18 столбцов так и остаются 14 и 18: перенос части слов одного человека в строку другого поставил бы две реплики в одну строку. Блок из одной строки вообще нечего двигать внутри.
Что происходит с репликой из одной строки или из одного слова в строке?
Она возвращается без изменений, и запуск ничего о ней не сообщает. У одной строки нет второй, куда можно перенести слова, а реплика, где каждая строка состоит из одного слова, уже настолько коротка, насколько это возможно при данном числе строк. В обоих случаях файл проходит насквозь, а отчёт остаётся пустым, вместо того чтобы считать реплику обработанной.
В каких форматах можно выровнять переносы строк?
В одиннадцати, где реплика может содержать больше одной строки: SRT, WebVTT, ASS, SSA, SBV, SAMI, LRC, MicroDVD, TTML, JSON и CSV. Обычный текст исключён: там одна строка текста и есть одна реплика, поэтому у каждой реплики ровно одна строка и выравнивать нечего. Форматы распознаются по содержимому, а не по расширению, и ничего не отправляется на сервер.