Удалить переносы строк в субтитрах
Или вставьте текст субтитров
Параметры
Одно поле, пять вариантов, и у каждого своя страница. «Переложить по числу колонок» укладывает каждую реплику в заданное число колонок, что может как укоротить слишком длинную строку, так и подтянуть короткую. «Разбить только длинные строки» трогает только строки длиннее лимита и оставляет остальные точно как были. «Выровнять существующие строки» сохраняет число строк в каждой реплике и перекладывает слова между ними, пока самая длинная не станет как можно короче. «Соединить» ставит каждую реплику в одну строку. «Ограничить» не трогает реплики, уже укладывающиеся в число строк. Эта страница заполняет поле вариантом, названным в её заголовке, и других не предлагает.
В какой частоте кадров считается тайминг. На страницах форматов это то, что нужно MicroDVD: он хранит время в номерах кадров. На страницах частоты кадров это частота, по которой файл был рассчитан, — версия, для которой делались субтитры, — а второе поле страницы принимает частоту видео, с которым вы будете их использовать. Обычные значения: 23,976, 24, 25, 29,97, 30, 50, 59,94 и 60. Ошибка сдвигает весь таймлайн, а на страницах частоты кадров — на коэффициент, а не на фиксированную величину.
Эта страница собирает каждую реплику в одну строку: там, где было два или три переноса, текст соединяется в один поток, а на месте каждого разрыва ставится один пробел. Число реплик, их порядок, номера и таймкоды не меняются — исчезают только переносы внутри них. Строка, начинающаяся с тире, означает смену говорящего, и эта страница единственная в группе переходит такую стену: разрыв между двумя говорящими и есть перенос, а вы попросили убрать переносы, поэтому запуск сообщает, сколько границ говорящих он соединил.
Когда по обе стороны разрыва стоит китайский, японский или корейский текст, пробел не вставляется, потому что в этих письменностях нет пробелов между словами и он выглядел бы дырой посреди фразы; пустая строка внутри реплики тоже исчезает и не оставляет двойного пробела. Принимаются одиннадцать форматов с несколькими строками внутри реплики, оформление, пережившее разрыв, сохраняется, а караоке-диапазон через разрыв удаляется и считается в потерях.
Примеры
Реплика из двух строк и реплика из одной
Вход
1
00:00:01,000 --> 00:00:04,000
We could take the train
and be there by six
2
00:00:05,000 --> 00:00:08,000
A single line
Выход
1
00:00:01,000 --> 00:00:04,000
We could take the train and be there by six
2
00:00:05,000 --> 00:00:08,000
A single line
Первая реплика выходит одной строкой в 43 столбца с одним пробелом на месте разрыва, а вторая уже была одной строкой, и с ней делать было нечего. Обе сохраняют номера и таймкоды, а пустая строка между блоками относится к разметке SRT, а не к реплике, поэтому возвращается как была. Таймлайн не сдвинулся: соединённая реплика висит на экране ровно тот же отрезок.
Три говорящих на трёх строках
Вход
1
00:00:01,000 --> 00:00:04,000
- Then we walk
- All the way home
Выход
1
00:00:01,000 --> 00:00:04,000
- Then we walk - All the way home
Две строки с тире соединяются в одну вместе с тире, поэтому отметки реплик остаются в тексте там, где были. Запуск сообщает об одной соединённой границе говорящих — честное описание случившегося: файл больше не показывает на экране, что говорили двое, и выдать это могут только сами тире. Это единственная страница в группе, которая так делает, и только потому, что её название просит именно об этом.
Пустая строка и китайская реплика
Вход
[Script Info]
Title: join
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello\N\Nworld
Dialogue: 0,0:00:06.00,0:00:09.00,Default,,0,0,0,,你好世界\N再见朋友
Выход
[Script Info]
Title: join
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello world
Dialogue: 0,0:00:06.00,0:00:09.00,Default,,0,0,0,,你好世界再见朋友
Первая реплика содержит пустую строку между двумя словами — так её записывает ASS через \N\N, — и соединение даёт Hello world с одним пробелом, потому что пустая строка не добавила текста, а её пробел дал бы двойной промежуток. Вторая реплика китайская, и её половины сходятся вообще без ничего: вставленный пробел оставил бы видимую дыру посреди фразы. Сама пустая строка при этом удаляется — это единственное, что страница убирает, а не переносит.
Частые вопросы
Чем удаление переносов отличается от переноса по ширине?
Удаление соединяет всё, поэтому каждая реплика заканчивается ровно одной строкой, какой бы длинной она ни вышла. Перенос по ширине работает по числу столбцов и выдаёт столько строк, сколько нужно тексту, чтобы остаться в лимите, — вполне возможно, две или три. Одна страница заканчивает одной строкой на реплику, другая — строками не шире заданного числа.
Почему между двумя соединёнными китайскими строками нет пробела?
Потому что в китайском, японском и корейском нет пробелов между словами, и вставленный между половинами фразы пробел читатель увидел бы как дыру. Страница смотрит на символы по обе стороны разрыва: если оба относятся к этим письменностям, текст соединяется напрямую, иначе ставится один пробел. Смешанный текст вроде китайского имени и английской строки пробел всё-таки получает.
Что происходит с тире, которые отмечают смену говорящего, при соединении строк?
Они остаются в тексте, а соединение считается и попадает в отчёт. Тире в начале строки значит, что говорит другой человек, поэтому после склейки экранный признак двух говорящих исчезает: тире на месте, но уже не в начале строки. Запуск сообщает, сколько границ говорящих было соединено, чтобы вы узнали об этом, а не заметили сами.
Меняется ли число субтитров в файле после удаления переносов?
Нет. Страница работает внутри каждой реплики и никогда не соединяет две реплики вместе, поэтому реплика из двух строк и реплика из одной выходят каждая одной репликой со своими таймкодами и номером. Слияние двух реплик в одну — другая операция с другим результатом на таймлайне, и она живёт на странице объединения реплик.
Куда делась пустая строка внутри реплики?
Она удалена, потому что не несла текста, а её пробел оставил бы в соединённой строке двойной промежуток. Пустая строка внутри реплики обычно остаётся от правки, а не предназначена зрителю, поэтому её удаление ничего не теряет. Если реплика была пустой от начала до конца, она возвращается пустой репликой, а не удаляется.
В каких форматах можно убрать переносы строк?
В одиннадцати, где реплика может содержать больше одной строки: SRT, WebVTT, ASS, SSA, SBV, SAMI, LRC, MicroDVD, TTML, JSON и CSV. Обычного текста среди них нет: в нём одна строка уже является репликой, соединять нечего, и запуск вернул бы файл без изменений. Оформление, переживающее разрыв, остаётся в соединённой строке, а караоке-диапазон через разрыв удаляется и считается.