Вы на правильном пути, но сейчас вы создаете новые строки текста. Фактически они будут отображаться рядом друг с другом, но они будут располагаться вертикально, что не совсем то, что вам нужно.
Несколько событий с повторяющимся текстом
Чтобы добавить слова в та же строка , вам нужно остановить предыдущее событие диалога, когда должно появиться следующее слово, и повторить весь видимый текст в следующем событии диалога:
Dialogue: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,I'm
Dialogue: 0,0:00:01.00,0:00:01.50,Default,,0,0,0,,I'm a
Dialogue: 0,0:00:01.50,0:00:03.46,Default,,0,0,0,,I'm a subtitle
В случае центра- или (для языков, написанных слева направо) текст, выровненный по правому краю, или, если ваш текст слишком длинный, он автоматически оборачивается и отображается в несколько строк, вам нужно будет каждый раз указывать весь текст, чтобы вычисления выравнивания и переноса работайте одинаково для каждого события, но сделайте пока невидимую часть текста фактически невидимой, сделав его полностью прозрачным:
Dialogue: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,I'm {\alpha&HFF}a subtitle
Dialogue: 0,0:00:01.00,0:00:01.50,Default,,0,0,0,,I'm a {\alpha&HFF}subtitle
Dialogue: 0,0:00:01.50,0:00:03.46,Default,,0,0,0,,I'm a subtitle
Так обычно и делается.
Одиночное событие с тегами переопределения
В качестве альтернативы, если ваш текст не имеет рамки / контура и тени (не в вашем примере видео), вы Вы можете использовать караоке-теги ASS, установив полностью прозрачный цвет текста (SecondaryColour
):
Dialogue: 0,0:00:00.00,0:00:03.46,Default,,0,0,0,,{\2a&HFF\k100}I'm {\k50}a {\k196}subtitle
Если у вас есть рамка или тень (как в примере видео), простого караоке недостаточно, так как вы также хотите изменить цвет рамки / тени. Вы можете сделать это, используя обобщенный c тег анимации ASS \t
:
Dialogue: 0,0:00:00.00,0:00:03.46,Default,,0,0,0,,I'm {\alpha&HFF\t(1000,1000,\alpha0)}a {\alpha&HFF\t(1500,1500,\alpha0)}subtitle
Здесь для каждого слова, кроме первого, я устанавливаю все альфа-значения полностью прозрачными при запуске события, а затем мгновенно переключите его на полностью непрозрачный, когда слово должно появиться.
Предупреждение о тексте справа налево
В вопросе нет никаких указаний на то, что вы собираетесь использовать это с чем-либо, кроме левого текст справа, но это все же заслуживает предостережения. (Вы можете даже подумать, что естественно предположить, что различие не имеет значения в настоящее время. К сожалению, из-за некоторых плохих решений и привычек из прошлого, оно все еще имеет значение.)
Если вы попробуете любой из этих подходов с текст справа налево (например, арабский c или иврит), кроме первого, самого простого подхода, который не имеет переопределенных тегов, вы обнаружите, что VSFilter и libass, два основных средства визуализации ASS, отображают текст по-разному: libass будет использовать тот же порядок слов, как если бы у вас была одна строка без каких-либо тегов, но VSFilter будет разбивать текст на теги переопределения и переупорядочивать разделы так, чтобы более ранние разделы всегда находились в слева более поздних разделов.
Даже в простейшем случае без каких-либо переопределенных тегов, если ваш текст начинается или заканчивается пунктуацией (или другими символами, не зависящими от направления), они не будут соответствовать естественному направлению текста и будут отображаться в обратном порядке.
Там в настоящее время нет правильного «решения» для этого, но вы можете обойти разн Вставка двунаправленных управляющих символов Unicode вокруг тегов переопределения, чтобы libass соответствовал порядку VSFilter (который является , а не естественным порядком текста) и заставлял любую пунктуацию начала / конца строки быть справа налево.
Конечно, если вы записываете только субтитры, не намереваясь распространять файл субтитров, вам не нужно беспокоиться о том, как они выглядят в других средствах визуализации. FFmpeg использует libass. Тем не менее, возможно, что поведение libass будет скорректировано, чтобы соответствовать VSFilter в какой-то момент в будущем, поскольку VSFilter традиционно занимал самую большую долю рынка (начиная с того времени, когда libass даже не существовало) и большинство, если не все, Араби c Файлы субтитров, которые существуют на самом деле, полагаются на неправильную обработку текста справа налево и требуют, чтобы он выводил корректно.