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

Розтягнути субтитри під відео

ТаймінгМасштабування всього таймлайну
Або вставте текст субтитрів

Параметри

Скільки триває відео, записане в мілісекундах, секундах або таймкодом (1500, 24m, 00:24:00,000 — усе працює). Відношення обчислюється з самого файлу: вимірюється останній момент, коли якась репліка на екрані, і саме він розтягується або стискається до цієї довжини. Корисно, коли ви знаєте тривалість версії, до якої підганяєте, а не відношення.

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

Заповніть Цільова довжина, щоб запустити.

Введіть, скільки триває відео, і сторінка сама порахує коефіцієнт. Довжина файлу субтитрів міряється з самого файлу — найбільший час закінчення будь-де в ньому, — і кожен таймкод множиться на цільову довжину, поділену на цю величину. Жодних відсотків для обчислення, і останній субтитр лягає на кінець відео, а не туди, де він випадково спинився.

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

Поле цілі приймає довжину в будь-якій формі, у якій вона у вас є: мілісекунди, секунди й хвилини із суфіксом s чи m або повний таймкод. Останній варіант — це довжина, а не мить на шкалі, тому саме тривалість ви вводите тут, а не час початку.

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

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,000 --> 00:00:08,000
Second line.

Результат

1
00:00:01,250 --> 00:00:03,750
Hello there.

2
00:00:06,250 --> 00:00:10,000
Second line.

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

Файл, задовгий для свого відео

Вхід

1
00:00:00,000 --> 00:00:10,000
A long opening line.

2
00:00:02,000 --> 00:00:03,000
Short.

3
00:00:04,000 --> 00:00:05,000
Also short.

Результат

1
00:00:00,000 --> 00:00:06,000
A long opening line.

2
00:00:01,200 --> 00:00:01,800
Short.

3
00:00:02,400 --> 00:00:03,000
Also short.

Ціль 6s проти десятисекундного файлу, тому це напрямок стиснення й коефіцієнт 0,6. Файл десятисекундний тому, що там закінчується перша репліка, а не через останню написану, чий кінець лише за п’ять секунд від нуля: вимірювання нею дало б коефіцієнт 1 і повернуло б файл незмінним. Стиснення підтягує кожну репліку, тому швидкість читання зростає, а слова не змінилися.

Вступ теж рухається

Вхід

1
00:01:00,000 --> 00:01:02,000
Lead-in ends, speech starts.

2
00:02:00,000 --> 00:02:02,000
One minute in.

Результат

1
00:01:30,000 --> 00:01:33,000
Lead-in ends, speech starts.

2
00:03:00,000 --> 00:03:03,000
One minute in.

Ціль 3m3s проти файлу, чий найдовший кінець — 2m2s, тому коефіцієнт 1,5. Поле приймає хвилини, а також 183000 чи 00:03:03,000 — усі три означають те саме. Зверніть увагу, що перша репліка відкривалася на першій хвилині, а тепер — на півтори: усе міряється від початку шкали, тому німий вступ розтягнувся разом із діалогом.

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

Як дізнатися, скільки триває мій файл субтитрів?

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

Що, якщо цільова довжина коротша за ту, що вже є у файлі?

Файл стискається, а не розтягується, і перемикати режим не потрібно. Десятихвилинний файл із шестихвилинною ціллю множиться на 0,6, тому кожна репліка зберігає 60 відсотків екранного часу. Це підвищує швидкість читання кожного рядка, і перед здачею стисненого файлу мовнику варто перевірити його на сторінці швидкості читання.

Чому перший субтитр зрушив, якщо я хотів вирівняти лише кінець?

Бо коефіцієнт застосовується до відстані від нуля. Файл, чий перший рядок відкривається на першій хвилині, після розтягу в 1,5 раза відкривається на півтори хвилини, тобто німий вступ розтягнувся разом із діалогом. Якщо початкові титри фіксовані й неправильний лише хвіст, це не проблема коефіцієнта: беріть сталий зсув або синхронізацію за двома точками, яка тримає вибрану мить на місці.

Чи можна ввести цільову довжину в хвилинах замість таймкоду?

Так. Поле приймає голе число мілісекунд, тривалість на кшталт 90s, 24m чи 1h2m і повний таймкод, як-от 00:24:00,000 — усі чотири означають те саме, і жоден не правильніший за інший. Беріть форму, яку показує ваш відеоінструмент, бо саме перенабирання числа в іншу форму породжує помилки перенесення.

Субтитри все ще не збігаються після розтягування. Що ще може бути не так?

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

Що буде, якщо залишити цільову довжину порожньою?

Прогін не почнеться, і сторінка скаже, що бракує обов’язкового поля. Це навмисно: будь-яке типове значення було б справжньою довжиною, тому файл, кинутий і запущений без читання поля, повернувся б тихо розтягнутим до чогось, чого ніхто не вибирав, і у виході не було б про це ані слова. Поруч із кнопкою сторінка також показує довжину, яку виміряла у файлі, щоб ви могли порівняти перед запуском.

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