Перейти до основного вмісту
SubtitleMatrix

Зсунути субтитри за таймкодом

ТаймінгЗсув на фіксоване значення
Або вставте текст субтитрів

Параметри

Запишіть величину зсуву як значення годинника: 00:00:02,500 — на дві з половиною секунди пізніше, -00:00:02,500 — на дві з половиною секунди раніше. Це швидше зчитати з референсного відео, ніж рахувати мілісекунди. Залиште порожнім на сторінках, де просять мілісекунди.

У якій частоті кадрів пораховано таймінги. На сторінках форматів це те, що потрібно MicroDVD, бо він зберігає час як номери кадрів. На сторінках частоти кадрів це частота, за якою файл синхронізували — версія, для якої робили субтитри, — а друге поле сторінки приймає частоту відео, з яким ви будете їх використовувати. 23,976, 24, 25, 29,97, 30, 50, 59,94 і 60 — найпоширеніші. Помилка зміщує весь таймлайн, а на сторінках частоти кадрів — на відношення, а не на фіксовану величину.

Ця сторінка зсуває файл субтитрів на таймкод, а не на кількість мілісекунд. Введіть 00:00:02,500 — і кожна репліка рушиться на дві з половиною секунди пізніше; введіть -00:00:01,000 — і кожна рушиться на секунду раніше. Обидві межі кожної репліки рухаються на однакову величину, тому кожна зберігає довжину; різниця між цією сторінкою та мілісекундною лише в тому, як ви називаєте зсув.

Вона існує через те, звідки береться число. Коли ви звіряєте файл субтитрів із зразком — нова заставка, вставлена реклама, інша шкала, з якої можна зчитати позицію, — у руках у вас пара моментів, а зсув — це їхня різниця. Записати цю різницю таймкодом на крок коротше, ніж перераховувати її в мілісекунди в голові, і саме в перерахунку живуть помилки: 00:01:30,000 — це дев’яносто тисяч мілісекунд, а не дев’ять тисяч.

Зсув читається як значення годинника й застосовується до шкали як до цілого. Репліка, відсунута за початок файлу, отримує початок, прив’язаний до 00:00:00, а кінець продовжує рухатися, тож ця репліка виходить коротшою; репліка, кінець якої припав на нуль або раніше, вилучається. Файл із нульовим зсувом або зі зсувом, який не вдалося прочитати, повертається байт у байт.

SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON і CSV читаються як те, чим вони насправді є, а не як підказує розширення. Звичайний текст і LRC не приймаються, бо жоден не зберігає часу закінчення і зсуву не було б чого рухати. Нічого не залишає вашої машини, а цілий сезон проходить через чергу за один прохід.

Приклади

Відсунути файл на дві з половиною секунди пізніше

Вхід

1
00:00:01,000 --> 00:00:03,000
Hello there.

2
00:00:05,500 --> 00:00:08,000
Second line.

Результат

1
00:00:03,500 --> 00:00:05,500
Hello there.

2
00:00:08,000 --> 00:00:10,500
Second line.

Точно той самий результат, що й зсув 2500 на мілісекундній сторінці: обидві межі кожної репліки рухаються, і жодна не змінює довжини.

Потягнути файл раніше за допомогою мінуса

Вхід

1
00:00:01,000 --> 00:00:02,000
The first one starts too early.

2
00:00:05,000 --> 00:00:08,000
This one is fine.

Результат

1
00:00:00,000 --> 00:00:00,500
The first one starts too early.

2
00:00:03,500 --> 00:00:06,500
This one is fine.

Перша репліка почалася б на −500 мс, тому її початок прив’язано до нуля, і змінюється лише ця межа: репліка виходить завдовжки 500 мс замість 1000.

Таймкод у стилі WebVTT із крапкою

Вхід

1
00:00:01,000 --> 00:00:02,000
Dot instead of comma.

Результат

1
00:00:03,500 --> 00:00:04,500
Dot instead of comma.

0:00:02.500 читається так само, як 00:00:02,500. Приймаються обидва роздільники й однозначний годинник, бо таймкоди приходять із програм, які розходяться в усьому цьому.

Часті запитання

Як записати зсув, що рухає субтитри раніше?

Поставте мінус перед таймкодом: -00:00:02,500 означає дві з половиною секунди раніше. Без мінуса ті самі цифри відсувають файл пізніше, тому знак — це вся різниця між напрямками, окремого перемикача немає.

Чому тут поле таймкоду, а не мілісекунд?

Бо зсув зазвичай походить із двох зчитаних моментів, а не з числа, яке хтось виміряв. Якщо ви звіряєте файл із зразком, у вас є пара моментів, і зсув — їхня різниця, тобто таймкод. Мілісекундна сторінка лишається для випадку, коли число вже є; для однакового зсуву обидві сторінки дають ідентичний результат.

Чи можна поставити крапку замість коми перед мілісекундами?

Так, і ще можна писати однозначний годинник. 00:00:02,500, 00:00:02.500 і 0:00:02.50 дають ті самі 2500 мілісекунд, бо формати субтитрів розходяться в роздільнику, і немає причини змушувати вас перекладати перед введенням. Дріб читається за кількістю цифр, тому .5 і .500 — обидва половина секунди.

Що станеться, якщо ввести те, що не читається як таймкод?

Зсув ігнорується, і файл повертається без змін. Це обережна половина поведінки — нічого не вгадується й не підставляється довільне число, — але вона й тиха, тому довідка біля поля перелічує прийнятні форми, а не залишає вас їх відкривати. Голе число на кшталт 2500 таймкодом не є і належить мілісекундній сторінці.

Чи рухає зсув таймкодом обидві межі кожної репліки?

Так. Кожен початок і кожен кінець рухаються на однакову величину, тому жодна репліка не змінює ні тривалості, ні положення відносно інших. Якщо треба змінити, скільки субтитри стоять на екрані, беріть сторінки для окремого руху початку й кінця.

Чи впливає формат файлу на те, як застосовується таймкод?

Зсув рахується в мілісекундах, а потім кожен формат записує його своїм синтаксисом, тому дрібність результату залежить від формату. SRT і WebVTT зберігають мілісекунди, ASS і SSA — соти секунди, MicroDVD — цілі кадри; на останніх двох зсув округлюється до їхньої сітки, і саме тому на сторінці є поле частоти кадрів.

Споріднені інструменти