Видео и субтитры · Инструментарий субтитров
Объяснение смещения субтитров: почему фиксированное смещение не работает и как работает растяжение
· Как это работает
субтитры таймкоды частота кадров
Если субтитры в начале хорошие, а к концу запаздывают, проблема в скорости, а не в смещении. В этом посте объясняется, как несоответствие частоты кадров вызывает дрейф, как его диагностировать и чем математические расчеты линейного растяжения отличаются от сдвига.
Синхронизация на первой минуте, опоздание на полсекунды к тридцати минуте — скорее признак дрейфа, чем смещения.
В рассинхронизации титров есть две разные ошибки, и они требуют противоположных исправлений. Смещение постоянно: каждая строка опаздывает на одну и ту же величину, и файл в первую минуту так же неверен, как и в последнюю. Снос растет: первые стропы приземляются правильно, ошибка едва заметна за десять минут, а закрывающие смещаются на секунды. Признак, который их разделяет, заключается в том, больше ли ошибка в конце, чем ошибка в начале.
Ошибочный диагноз обходится дорого, потому что очевидные действия только усугубляют ситуацию. Выравнивание первой строки дрейфующего файла со смещением перемещает весь файл, поэтому окончание смещается на исходную величину плюс все, что было только что добавлено. Инструмент прямо документирует это как распространенную ошибку и отмечает, что перед масштабированием необходимо отменить обе операции.
Откуда берется дрейф — файл, рассчитанный на 25 кадров в секунду, воспроизводимый на фоне видео с частотой 23.976 кадров в секунду, или наоборот.
Обычной причиной является несоответствие частоты кадров между временем создания файла и видео, с которым он воспроизводится. Временные метки субтитров соответствуют времени настенных часов, но они часто определяются на основе количества кадров. Если количество кадров, созданное для материала 23.976 кадров в секунду, воспроизводится так, как если бы каждый кадр составлял двадцать пятую секунды, каждая временная метка неверна в одном и том же соотношении, а постоянное соотношение, применяемое к растущему числу, приводит к возрастающей ошибке.
Это соотношение составляет примерно 1.0427 для материала 23.976 кадров в секунду, воспроизводимого со скоростью 25 кадров в секунду, что инструмент указывает рядом с полем масштаба. Это число не является ручкой настройки, обнаруженной путем проб: это частное двух частот кадров, поэтому файл, который был правильным в одном мире, систематически растягивается или сжимается в другом. Вот почему дрейф почти всегда плавный и линейный, а не беспорядочный.
Диагностика дрейфа с помощью двух контрольных точек — измерение ошибки в начале и в конце
Диагностика дрейфа требует двух измерений, а не одного. Найдите строку диалога в начале, заголовок которой вы можете точно определить, и еще одну строку в конце, и запишите для каждой временную метку, которую требует файл, и временную метку, в которой фактически происходит диалог. Одно измерение не может различить два разлома, поскольку одна наблюдаемая ошибка соответствует как постоянному смещению, так и растяжению.
Выберите две точки настолько далеко друг от друга, насколько позволяет материал. В ходе всего расчета одна разность делится на другую, поэтому короткая базовая линия приводит к большой ошибке измерения в результате. Две точки с разницей в минуту в девяностоминутном файле дадут соотношение, уверенное с точностью, которую измерение не поддерживает.
Математика линейного растяжения — масштабирование каждого тайм-кода по соотношению, а не добавление константы.
Сдвиг — это сложение, а растяжение — умножение, и в этом вся разница. Сдвиг добавляет одну константу к каждому началу и концу; внутренне сигналы представляют собой целые миллисекунды, отсчитываемые от нуля, поэтому операция представляет собой одно сложение для каждой временной метки и не требует собственного округления. Поскольку он везде добавляет одно и то же число, он не может изменить расстояние между первой и последней репликой, что и является ошибкой дрейфа.
Растяжение умножает каждую временную метку на коэффициент, отсчитываемый от нуля. Поскольку множитель действует на большее число позже в файле, он перемещает окончание больше, чем отверстие, что необходимо для смещения формы. Временные метки после масштабирования округляются до целых миллисекунд, поэтому масштаб не является полностью обратимым, как сдвиг; масштабируйте один раз от оригинала, а не уточняйте коэффициент за несколько проходов.
Рабочий пример: вычисление соотношения на основе двух измерений — превращение двух наблюдаемых ошибок в одну поправку.
Предположим, что заголовок на двух минутах требует 00:02:00.000, а диалог находится на 00:01:59.750, а заголовок на пятьдесят восьмой минуте требует 00:58:00.000, пока диалог находится на 00:57:52.750. В миллисекундах в файле указано 120000 и 3480000; видео требует 119750 и 3472750. Ошибка выросла с 250 ms до 7250 ms, что является дрейфом, а не смещением.
Коэффициентом является соотношение двух интервалов: разделите истинный диапазон 3472750 минус 119750 или 3353000 на заявленный диапазон 3480000 минус 120000 или 3360000. Это дает примерно 0.99792. Умножение заявленного времени на него возвращает 119750 и 3472750, оба измерения, которые являются проверкой того, что коррекция является чистым растяжением без остатка смещения. Если осадок все же остался, сначала исправьте растяжение и только потом примените сдвиг к тому, что осталось.
Чего это не касается — катеров, добавленных сцен и рекламных пауз, которые создают скачки, а не плавный дрейф.
Сюда входят ошибки, которые растут плавно и пропорционально. Он не распространяется на файл, который корректен в течение двадцати минут, а затем внезапно выделяется фиксированная сумма за остаток, что является признаком редактирования: удаленной сцены, вставленной рекламной паузы или другой версии той же функции. Эта ошибка представляет собой сдвиг, примененный к части файла, и ни одно соотношение не исправляет его.
Инструмент сдвига применяется к каждому фрагменту в файле и не позволяет изменить время выбранного диапазона, поэтому файл с переходом в среднюю точку невозможно исправить за один проход. Он также не может восстановиться после фиксации: отрицательный результат обнуляется, потому что ни один из форматов не может выразить отрицательное время, а последующий сдвиг вперед не восстанавливает сигналы, которые были там закреплены. Инструмент предупреждает, когда сигнал зажимается, и документально подтвержденным решением является его отмена, а не компенсирующее смещение.
Вывод: сдвиг для смещения, масштаб для смещения — как использовать функцию изменения времени в Subtitle Toolkit для случая фиксированного смещения и где проверить список «Чего этот инструмент не будет делать», прежде чем полагаться на него при смещении
Сдвиньте для смещения, масштабируйте для смещения и измерьте, прежде чем делать то или иное. Введите смещение в миллисекундах, поскольку в поле не указаны секунды или тайм-код, а ввод 2 сдвигает файл на две миллисекунды, а не на две секунды; операция завершается успешно, файл действительно изменяется, и синхронизация выглядит так же неправильно, как и раньше. Положительное смещение задерживает субтитры, которые появляются перед диалогом.
Для дрейфа используйте масштабный коэффициент рядом со смещением, а не постоянно сдвигайте смещение. Прочтите ограничения страницы инструмента, прежде чем полагаться на него: отмена удерживает последние двадцать операций, фиксированные сигналы могут сворачиваться до нулевой продолжительности или увеличиваться, если закреплен только один конец, а проверка повторяется после каждого изменения, поэтому о таких случаях сообщается, а не отправляется автоматически.