Робота з форматами SRT та WebVTT
Синхронізація субтитрів із відеорядом є критично важливою для сприйняття медіавмісту. Навіть незначна затримка або випередження тексту руйнує зв’язок між аудіодоріжкою та візуальними репліками. Для коригування таймінгу найчастіше використовуються два текстові формати: SRT (SubRip Subtitle) та WebVTT (Web Video Text Tracks).
Формат SRT є одним із найпростіших і найпоширеніших. Структура файлу складається з послідовних пронумерованих блоків, де кожен блок містить порядковий номер репліки, часовий діапазон показу у форматі години:хвилини:секунди,мілісекунди та безпосередньо текст субтитрів.
Формат WebVTT розроблений для використання у веб-середовищі та підтримується сучасними браузерами через HTML5-елемент <track>. Файли WebVTT обов’язково починаються з текстового маркера WEBVTT у першому рядку. Окрім часових міток у форматі години:хвилини:секунди.мілісекунди (де роздільником мілісекунд є крапка, а не кома), цей стандарт підтримує додаткові метадані: стилі, налаштування позиціонування тексту на екрані, примітки та регіони.
При зміні таймінгу важливо зберегти цілісність структури файлу. Інструмент зсуву часу субтитрів повністю зберігає ідентифікатори, налаштування, примітки, стилі, регіони, закінчення рядків і текст субтитрів без змін, коригуючи виключно часові мітки.
Способи коригування часу: секунди та таймкоди
Для точного налаштування синхронізації інструмент пропонує два режими введення величини зсуву:
- Секунди: Значення вводиться у вигляді десяткових чисел. Цей режим зручний для швидкого коригування, коли відома точна тривалість затримки у секундах (наприклад,
2.5або-0.75). - Таймкод: Значення вводиться у форматі
H:MM:SS.mmm(години:хвилини:секунди.мілісекунди). Цей варіант підходить для випадків, коли зсув визначається за специфічним кадром монтажної лінійки відеоредактора (наприклад,-00:00:02.500).
Напрямок зсуву визначається математичним знаком перед числом:
- Додатні значення додають час до кожної мітки, затримуючи появу реплік на екрані.
- Від’ємні значення віднімають час від кожної мітки, змушуючи субтитри з’являтися раніше.
Правила валідації та обробка помилок
Процес зсуву часу супроводжується суворою перевіркою структури файлу та хронологічного порядку часових міток. Інструмент аналізує вхідні дані за такими правилами:
- Хронологічний порядок реплік: Кожна наступна репліка повинна починатися не раніше, ніж попередня. Якщо це правило порушено, виводиться повідомлення: "Репліка
‹number›починається раніше за попередню репліку.". - Тривалість репліки: Час закінчення показу субтитру обов’язково має бути більшим за час його початку. У разі виявлення помилки з’явиться попередження: "Репліка
‹number›має закінчуватися пізніше, ніж починається.". - Коректність міток: Будь-які синтаксичні помилки у часових кодах викликають помилку: "Репліка
‹number›має недійсну часову позначку в рядку‹line›.". - Вбудовані мітки WebVTT: Якщо файл містить внутрішньорядкові часові позначки VTT, вони мають розташовуватися в межах своєї репліки та йти у зростаючому порядку. Інакше інструмент покаже помилку: "Вбудована позначка часу VTT у репліці
‹number›перебуває поза її межами або порушує порядок.". - Обмеження нульової позначки: Час початку жодної репліки не може стати меншим за
00:00:00.000. Якщо від’ємний зсув призводить до виходу за межі нуля, процес зупиняється з помилкою: "За такого зсуву репліка‹number›опиниться до нульової позначки. Використайте‹minimum›або пізніший зсув.".
Обмеження та технічні вимоги
Для успішної обробки файлів необхідно дотримуватися таких технічних параметрів:
| Параметр | Граничне значення / Вимога |
|---|---|
| Максимальний розмір файлу | 2 MB |
| Кодування тексту | UTF-8 |
| Формат файлу | .srt або .vtt |
| Структура SRT | Стандартні пронумеровані блоки |
| Структура VTT | Обов’язковий заголовок WEBVTT на початку |
Якщо завантажений файл не відповідає вимогам кодування, інструмент видасть помилку: "Цей файл не містить дійсного тексту UTF-8. Збережіть його в UTF-8 і повторіть спробу.". При перевищенні ліміту розміру файлу відображається повідомлення: "Виберіть файл субтитрів розміром не більше ‹max›.". Якщо обсяг вставленого вручну тексту перевищує внутрішній ліміт символів, користувач побачить попередження: "Текст субтитрів завеликий для обробки тут. Обмежте його розмір до ‹max› символів.".
Конфіденційність обробки даних
При роботі з інтелектуальною власністю, перекладами фільмів чи конфіденційними навчальними матеріалами безпека даних є пріоритетом. Текст і файли субтитрів залишаються у вашому браузері. BroBroGo нічого не надсилає на сервер і не зберігає. Уся обробка, валідація та зсув часових міток виконуються локально на вашому пристрої за допомогою потужностей веб-браузера.
Часті запитання
Які файли SRT і VTT підтримуються?
Використовуйте файли SRT у UTF-8 з пронумерованими блоками або файли WebVTT, що починаються з WEBVTT. Ідентифікатори, налаштування, примітки, стилі, регіони, закінчення рядків і текст субтитрів зберігаються без змін.
Що станеться, якщо від’ємний зсув перенесе час до нульової позначки?
Зсув буде зупинено, а репліки не буде обрізано чи видалено. Так тривалість кожної репліки та заданий зсув залишаться точними. Укажіть менше випередження й повторіть спробу.
Чи можна сталим зсувом виправити субтитри, які дедалі більше розходяться зі звуком?
Ні. Сталий зсув виправляє однакову затримку або випередження в усьому файлі. Якщо розбіжність зростає під час відтворення, потрібно інакше змінити швидкість таймінгу або окремі репліки.