Конвертер CSV у TTML
Або вставте текст субтитрів
Що змінює ця конвертація
У цьому напрямку нічого не втрачається — кожна можливість вихідного формату має куди подітися в цільовому.
Цей перелік походить із матриці можливостей для цих двох форматів, а не з конкретного завантаженого файлу. Певний файл може втратити більше, якщо використовує можливості, які формат дозволяє, а матриця не моделює.
Ця сторінка переписує CSV у TTML. CSV тримає таблицю з початком, кінцем і текстом, а TTML описує час і оформлення в XML. Час переходить із запису 1000,3500,текст у begin=00:00:01.250, end=00:00:03.500. Слова й порядок реплік лишаються тими самими.
У цьому напрямку нічого не втрачається: TTML покриває всі виміри, які є в CSV, зокрема повне оформлення через <style> і атрибути tts:*. CSV не містить нічого, чого TTML не вміє зберегти, тож вихідний файл — це ті самі репліки в іншій обгортці.
Файли обробляються по одному в браузері, без облікового запису й без завантаження на сервер; пакет можна скасувати посеред роботи.
Приклади
Типовий файл CSV, переписаний у TTML
Вхід
start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."
Результат
<?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>
<p begin="00:00:01.000" end="00:00:03.500">The quick brown fox.</p>
<p begin="00:00:04.000" end="00:00:06.250">Jumps over, the lazy dog.</p>
<p begin="00:00:07.000" end="00:00:09.000">Two lines here.<br/>And a second one.</p> </body>
</tt>
Обидві колонки збігаються рядок у рядок: переписується лише синтаксис, а текст і час лишаються тими самими.
Той самий перехід на неохайному файлі CSV
Вхід
id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.
Результат
<?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>
<p begin="00:00:01.000" end="00:00:04.000">Hello there, friend.</p>
<p begin="00:00:05.000" end="00:00:07.000">Second line.</p>
<p begin="00:00:10.000" end="00:00:10.001">End before start.</p>
<p begin="00:00:12.000" end="00:00:14.000">Unquoted comma in text, right here.</p> </body>
</tt>
Справжні файли приходять із BOM, переводами рядків Windows, зайвим рядком перед часом або часом, який взагалі не читається. Ніщо з цього не валить обробку: нерозпізнане потрапляє у звіт, а не зникає мовчки.
Часті запитання
Чи збережеться порядок реплік із CSV у TTML?
Так. Конвертер сортує репліки за початком і пише їх у хронологічному порядку. CSV записує час як 1000,3500,текст, TTML записує час як begin=00:00:01.250, end=00:00:03.500. Якщо у вихідному файлі порядок був іншим, він стане хронологічним, а не зникне.
У якому кодуванні буде збережено файл TTML після конвертації з CSV?
Файл TTML пишеться в UTF-8, а кодування вхідного CSV визначається автоматично, разом із BOM. Кирилиця, грецька чи емодзі не замінюються знаками питання; закінчення рядків у вихідному TTML — LF.
Які програми відкриють TTML після конвертації з CSV?
TTML підтримують мовленнєві платформи й конвеєри на кшталт Netflix. Для порівняння, CSV підтримують Excel, Google Sheets і скрипти. Якщо цільовий формат потрібен для конкретної платформи, перевірте її підтримку до конвертації великого пакета.
Чим CSV відрізняється від TTML у цьому напрямку?
CSV тримає таблицю з початком, кінцем і текстом, а TTML описує час і оформлення в XML. Тому перетворення — це не зміна розширення, а переписування моделі. У CSV таблиця із заголовком start, end, text і рядком на репліку. У TTML XML-документ із репліками <p begin=… end=…> і заголовком <head>. Саме з цієї різниці й постає список втрат над файловим полем.
Як перевірити, що конвертація CSV у TTML нічого не зіпсувала?
Порівняйте кількість реплік, час першої та останньої і список втрат, який сайт показує до завантаження. CSV записує час як 1000,3500,текст, TTML записує час як begin=00:00:01.250, end=00:00:03.500; якщо кількість і межі збігаються, а перелік втрат вас влаштовує, файл готовий.