Почему субтитры расходятся с речью всё сильнее, чем дольше смотрите

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

Обновлено

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

Задержка или расхождение: что у вас

Запомните, насколько субтитры не совпадают в начале, затем перемотайте на полчаса вперёд и посмотрите снова.

  • Разрыв в оба раза одинаковый. Это задержка. Её исправляет настройка задержки субтитров в любом плеере: выставьте её один раз — и весь фильм в порядке.
  • Во второй раз разрыв больше. Это расхождение. Настройкой задержки его не исправить: она сдвигает каждую строку на одно и то же время, а ошибка всё растёт.

Откуда берётся расхождение

Фильмы снимают с частотой 24 кадра в секунду. В обращении две версии этой частоты, а третье число появляется из-за старого европейского телевидения:

  • 23,976 (24000/1001) — так фильм идёт в видео для североамериканского телевидения, и так сегодня устроено большинство релизов.
  • 25 — частота европейского телевидения PAL. Фильм просто проигрывали на четыре процента быстрее, и двухчасовой фильм шёл примерно на пять минут короче.
  • Ровно 24 — частота кинотеатров. Большинство фильмов на Blu-ray всё равно в 23,976.

Файл субтитров — это список моментов времени. Синхронизируйте его с копией на 25 кадров/с, воспроизведите поверх копии на 23,976 кадра/с — и каждая строка после первой придёт чуть раньше: на четыре процента от того, сколько фильма прошло.

С начала фильмаСубтитры на 25 кадров/с поверх видео на 23,976 кадра/с
1 минутана 2,5 секунды раньше
10 минутна 25 секунд раньше
30 минутна 1 минуту 14 секунд раньше
60 минутна 2 минуты 27 секунд раньше
90 минутна 3 минуты 41 секунду раньше

Субтитры, синхронизированные с копией на 23,976 кадра/с и воспроизводимые поверх копии на 25, расходятся в обратную сторону — опаздывают всё сильнее на те же величины. А между 23,976 и 24 разница — десятая доля процента: около трёх с половиной секунд к концу часа, достаточно мало, чтобы остаться незамеченной до финальной сцены.

Как исправить расхождение

Лучший способ: субтитры, сделанные для вашей копии

Субтитрам, синхронизированным с тем же релизом, что и ваше видео, вообще не нужно исправлять. OpenSubtitles умеет находить такие по самому файлу, а не по его имени: он вычисляет отпечаток из размера файла и его первых и последних 64 КБ и возвращает субтитры, которые люди загрузили именно для этого файла. Если совпадения нет, ищите субтитры с тем же названием релиза и той же частотой кадров — большинство сайтов субтитров указывают её рядом с каждым файлом.

Пересчитать частоту кадров в файле

Если субтитров получше нет, растяните те, что есть. Это разовая правка, которая исправляет файл навсегда:

  • Subtitle Edit (Windows, бесплатно): Synchronization › Change frame rate, с 25 на 23,976 — или наоборот, если субтитры отстают. Его Point sync делает то же по двум строкам, которые вы сопоставляете вручную, и заодно исправляет задержку.

Или растягивать во время просмотра

  • mpv умеет растягивать время субтитров на лету с помощью --sub-speed. Для субтитров на 25 кадров/с поверх видео на 23,976 кадра/с это --sub-speed=25/23.976.
  • VLC — настройка скорости субтитров в Инструменты › Синхронизация дорожек.

Это действует только в пределах сеанса (или для всех файлов, если прописать в конфигурационный файл), поэтому пересчитать сам файл обычно надёжнее.

Как помогает Frame Player

Поиск субтитров во Frame Player: первый результат найден по самому файлу и подходит как есть; второй сделан для 25 кадров/с, и это отмечено ещё до скачивания.

  • Сначала он ищет по файлу. Панель субтитров запрашивает у OpenSubtitles субтитры, сделанные именно для вашей копии, и показывает, найден результат по этому совпадению или поиском по названию: совпадение по названию может оказаться другим релизом, и тогда тайминги стоит проверить.
  • Другая частота кадров отмечается до скачивания. Если результат сделан для частоты кадров, отличной от вашего видео, панель его помечает, чтобы вы не выбрали тот, что будет расходиться.
  • Он предлагает подогнать субтитры под ваше видео. Скачайте субтитры для другой частоты кадров, и панель спросит, растянуть ли их под видео. Она именно спрашивает, а не делает сама, потому что частота кадров на сайте субтитров — это то, что ввёл тот, кто их загрузил.
  • В меню субтитров любые субтитры можно растянуть вручную: 25 → 23,976, 23,976 → 25 или 24 → 23,976. Это покрывает и файл, который у вас уже был, и дорожку внутри видео, про которую никто не сказал, для какой частоты кадров она сделана. Работает это с текстовыми субтитрами; графические (PGS, VobSub) растянуть нельзя.
  • Заданные скорость и задержка запоминаются для этого файла — и только для него, поэтому в следующий раз субтитры останутся исправленными, а в следующую серию ничего не перетечёт.
  • Субтитры из торрента подключаются сами и подбираются к серии, которая играет.

Сначала исправьте скорость, а оставшийся разрыв уберите задержкой. Если нужно исправить сам файл субтитров для любого плеера, пересчёт в Subtitle Edit по-прежнему сделает это навсегда.

Вопросы

Почему в начале субтитры совпадают, а потом нет?

Потому что их синхронизировали с копией фильма, которая идёт с другой скоростью. Чаще всего это субтитры для релиза на 25 кадров/с поверх релиза на 23,976 кадра/с. Они начинаются вместе и расходятся примерно на четыре процента от прошедшего времени — к концу часа это две с половиной минуты.

Поможет ли настройка задержки субтитров?

Только если расхождение одинаково на всём протяжении. Задержка сдвигает каждую строку на одно и то же время, поэтому против плавного расхождения она лишь переносит точку, где субтитры совпадают, из начала фильма куда-то в середину.

Что значит 23,976?

Кино снимают с частотой 24 кадра в секунду. Видео для североамериканского телевидения воспроизводит его с частотой 24000/1001, примерно 23,976, и большинство современных релизов сохраняют эту частоту. Европейское телевидение PAL показывало фильмы на 25 кадрах — на четыре процента быстрее, — и субтитры, сделанные для таких релизов, несут эту скорость с собой.

В начале субтитры опаздывают, а в конце спешат. Что делать?

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

Откройте что-нибудь.Плеер запомнит, где вы остановились.

$ brew install --cask risenxxx/tap/frame-player

Версия 1.38.1macOS-сборки нотаризованыWindows-сборки без подписи: SmartScreen спросит один раз