Формат субтитрів TTML
Що може виразити цей формат
- Оформлення тексту
- Шрифти, колір, контур, тінь
- Позиціювання на екрані
- Так
- Караоке-таймінг
- Ні
- Переноси рядків у репліці
- Так
- Таймлайн
- Початок і кінець для кожної репліки
- Роздільність часу
- 1 мс
- Час зберігається як номери кадрів
- Ні
- Текст справа наліво
- Так
Приклади
Типовий файл TTML, і що з нього читається
Файл
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
<head>
<styling>
<style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
</layout>
</head>
<body>
<div>
<p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
</div>
</body>
</tt>
Що він містить
2 cues, 3 lines of text
00:00:01.000 → 00:00:03.500
Hello there. [italic ×1]
[region="bottom" style="s1"]
00:00:03.500 → 00:00:06.000
How are you?
Fine, thanks.
[region="bottom"]
Outside the cues:
prolog an XML declaration and the namespace bindings, kept as they came in
styling 1 × <style> — "s1", the colour and weight a paragraph points at by name
layout 1 × <region> — "bottom", the origin and extent a paragraph points at by name
resolved the head is kept as it was written and is not applied here — a paragraph's style="s1" region="bottom" stays an attribute, not a colour or a screen positionПрава колонка — не перетворений файл, а те, що сайт читає з лівої колонки й з чого починається будь-яке перетворення цього файлу.
Неохайний файл TTML, і що з нього все одно читається
Файл
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<div begin="00:00:01.000" end="00:00:05.000">
<p>Inherits its timing from the div, which we do not resolve.</p>
<p begin="00:00:06.000" end="00:00:07.000">This one has its own timing.</p>
</div>
<!-- <p begin="00:00:08.000" end="00:00:09.000">commented out</p> -->
<div>
<p begin="00:00:10.000"/>
<p begin="00:00:11.000" end="00:00:12.000">Last one.</p>
</div>
</body>
</tt>
Що він містить
3 cues, 2 lines of text
00:00:06.000 → 00:00:07.000
This one has its own timing.
00:00:10.000 → 00:00:12.000
(no text)
00:00:11.000 → 00:00:12.000
Last one.
Outside the cues:
prolog an XML declaration and the namespace bindings, kept as they came in
head none — no <styling> and no <layout>, and no paragraph points at one either
comments the commented-out <p> stays a comment, in the place it was written
divs the timings on an enclosing <div> are not pushed down onto the paragraphs inside it
Reported while reading — repaired or skipped, never silently:
1 × paragraphs with no readable begin time of their own (they were skipped — see the note about timing inherited from an enclosing div)
1 × paragraphs with neither an end time nor a duration of their own (their end times were generated)Справжні файли приходять із BOM, переводами рядків Windows, зайвим рядком перед часом або часом, який взагалі не читається. Ніщо з цього не валить обробку: нерозпізнане потрапляє у звіт, а не зникає мовчки.
Конвертувати TTML (Timed Text) в інший формат
Кожен із них працює повністю у вашому браузері. Позначки кажуть, чого коштує цей напрямок, ще до того, як ви його відкриєте.
- Точність
- Дані формату
- Оформлення
- Позиціювання
- Дані формату
- Таймінг
- Оформлення
- Позиціювання
- Точність
- Дані формату
- Оформлення
- Позиціювання
- Частота кадрів
- Дані формату
- Оформлення
- Позиціювання
- Дані формату
- Оформлення
- Дані формату
- Оформлення
- Позиціювання
- Дані формату
- Точність
- Дані формату
- Таймінг
- Оформлення
- Позиціювання
- Переноси рядків
- Дані формату
- Оформлення
- Позиціювання
- Дані формату
Конвертація в цей формат
- SubRip (SRT) → TTML (Timed Text)
- WebVTT (VTT) → TTML (Timed Text)
- Advanced SubStation Alpha (ASS) → TTML (Timed Text)
- SubStation Alpha (SSA) → TTML (Timed Text)
- YouTube SBV → TTML (Timed Text)
- SAMI (SMI) → TTML (Timed Text)
- LRC Lyrics → TTML (Timed Text)
- MicroDVD → TTML (Timed Text)
- SubtitleMatrix JSON → TTML (Timed Text)
- Plain Text (TXT) → TTML (Timed Text)
- CSV Spreadsheet → TTML (Timed Text)
TTML (Timed Text) — один із дванадцяти форматів субтитрів, з якими працює цей сайт, і ця сторінка — його довідник: що формат уміє зберегти, чого не вміє і в який формат його переписати.
TTML — XML-формат мовленнєвих платформ: репліки в <p begin=… end=…>, оформлення в <style> і атрибутах tts:*, позиціювання — через <region>. Час записано з точністю до мілісекунди.
Таблиця вище — це весь перелік можливостей, без прихованих рядків. Якщо рядок каже «ні», саме це й зникне під час конвертації з TTML, і кожна сторінка перетворення нижче попереджає про це до того, як ви відкриєте файл.
Усі ці перетворення виконуються у вашому браузері. Файли нікуди не надсилаються, обліковий запис не потрібен — це важливо для матеріалів під NDA, медичних записів і матеріалів до ефіру, які ще не вийшли.
Часті запитання
Що таке файл TTML?
TTML — XML-формат мовленнєвих платформ: репліки в <p begin=… end=…>, оформлення в <style> і атрибутах tts:*, позиціювання — через <region>. Час записано з точністю до мілісекунди. Файли TTML читають мовленнєві платформи й конвеєри на кшталт Netflix.
Чи зберігає TTML оформлення?
У TTML — повне оформлення через <style> і атрибути tts:*. Це стосується саме оформлення; позиціювання й караоке — окремі виміри, і кожен із них треба перевіряти окремо.
Чи має кожна репліка TTML і початок, і кінець?
Так, обидві межі записані явно: begin=00:00:01.250, end=00:00:03.500. Це означає, що під час конвертації в інший формат тривалість не доведеться виводити з сусідніх реплік, і саме тому TTML добре підходить як джерело для перетворення.
У які формати TTML можна конвертувати без втрат?
Жоден: TTML не містить чогось такого, що інший формат зберіг би без доповнень. Кожен перехід додає або генерує час, або втрачає частину моделі, і кожна сторінка перетворення називає свою втрату окремо.
Що TTML зберігає поза репліками?
Пролог XML і блок <head> зі стилями та розміткою. Ці дані не є субтитрами в строгому сенсі, але без них файл втрачає частину змісту: саме тому під час конвертації вони потрапляють у список втрат, а не зникають мовчки.