Конвертер LRC у TTML
Або вставте текст субтитрів
Параметри
Використовується, коли джерело не має часу завершення (простий текст, LRC). Таймлайн у результаті тут генерується, а не конвертується, тож ви отримаєте саме це число.
Що змінює ця конвертація
1 річ відкидається або потребує рішення
- Таймінг
час завершення реплік — джерело його не зберігає, тож у результаті він генеруватиметься, а не конвертуватиметься
Цей перелік походить із матриці можливостей для цих двох форматів, а не з конкретного завантаженого файлу. Певний файл може втратити більше, якщо використовує можливості, які формат дозволяє, а матриця не моделює.
Ця сторінка переписує LRC у TTML. LRC зберігає тільки початок репліки, а TTML описує час і оформлення в XML. Час початку переходить із запису [00:12.34] у begin=00:00:01.250, end=00:00:03.500. Слова й порядок реплік лишаються тими самими.
Втрати тут не косметичні: точний час завершення — у LRC його не записано, тож вихідні значення обчислено. Список складено з можливостей форматів, а не з вашого файлу, тому він однаковий до і після завантаження.
Один файл чи ціла тека: черга обробляє їх по одному, а результат забирається одним архівом. Обробка йде у вашому браузері — файли нікуди не надсилаються.
Приклади
Типовий файл LRC, переписаний у TTML
Вхід
[ti:Sample Song]
[ar:Some Artist]
[length:00:41.00]
[offset:+250]
[00:12.00]First line of the song.
[00:15.30]Second line.
[00:15.30]Second line, translated.
[00:18.00]
[00:21.50]Final line.Результат
<?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:12.000" end="00:00:15.300">First line of the song.</p>
<p begin="00:00:15.300" end="00:00:18.000">Second line.<br/>Second line, translated.</p>
<p begin="00:00:18.000" end="00:00:21.500"></p>
<p begin="00:00:21.500" end="00:00:23.500">Final line.</p> </body>
</tt>
У цьому вихідному файлі втрачено: точний час завершення. Решта збігається рядок у рядок.
Той самий перехід на неохайному файлі LRC
Вхід
[ar:Some Artist]
[0:05.5]Leading zero omitted, one decimal.
[00:07]Second with no centiseconds.
[00:03.00]Out of order.
[00:07.00][00:09.00]Repeated chorus line.
[00:12.00]Результат
<?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:03.000" end="00:00:05.500">Out of order.</p>
<p begin="00:00:05.500" end="00:00:07.000">Leading zero omitted, one decimal.</p>
<p begin="00:00:07.000" end="00:00:09.000">Second with no centiseconds.<br/>Repeated chorus line.</p>
<p begin="00:00:09.000" end="00:00:12.000">Repeated chorus line.</p>
<p begin="00:00:12.000" end="00:00:14.000"></p> </body>
</tt>
Справжні файли приходять із BOM, переводами рядків Windows, зайвим рядком перед часом або часом, який взагалі не читається. Ніщо з цього не валить обробку: нерозпізнане потрапляє у звіт, а не зникає мовчки.
Часті запитання
Чи з’явиться у TTML позиціювання, якого не було в LRC?
Ні. LRC не зберігає координат, тому TTML отримає репліки в типовому положенні — вигадувати позицію за вас ніхто не буде. У TTML позиціювання задають через <region> і tts:textAlign, але це вміння нічим не заповнюється з джерела.
Що станеться з даними поза репліками (метадані [ti:], [ar:] і [offset:]) під час конвертації LRC у TTML?
Вони не переносяться: у TTML немає відповідного розділу. У LRC поза репліками: метадані [ti:], [ar:] і [offset:], а також порожні рядки; у TTML: пролог XML і блок <head> зі стилями та розміткою. Самі репліки при цьому не страждають — зникає лише те, що існувало поза ними.
Чи можна обробити пакет файлів LRC і отримати TTML?
Так, черга бере будь-яку кількість файлів LRC, переписує кожен у TTML й віддає результат одним архівом. У LRC момент записано як [00:12.34], у TTML — як begin=00:00:01.250, end=00:00:03.500; саме це переписування виконується для кожного файлу. Робота йде у браузері, тому файли не надсилаються на сервер, а пакет можна скасувати посеред обробки — уже готові файли при цьому лишаться.
Чи можна потім повернути TTML назад у LRC?
Можна, але не без наслідків: у зворотному напрямку зникне час завершення реплік, усе оформлення, позиціювання на екрані, точність до 10 мс, вміст поза репліками. Тому TTML варто тримати як похідний файл, а оригінал LRC — як джерело; інакше кожен оберт додає нову втрату.
Чи збережеться порядок реплік із LRC у TTML?
Так. Конвертер сортує репліки за початком і пише їх у хронологічному порядку. LRC записує лише початок як [00:12.34], TTML записує час як begin=00:00:01.250, end=00:00:03.500. Якщо у вихідному файлі порядок був іншим, він стане хронологічним, а не зникне.