Конвертер LRC у JSON
Або вставте текст субтитрів
Параметри
Використовується, коли джерело не має часу завершення (простий текст, LRC). Таймлайн у результаті тут генерується, а не конвертується, тож ви отримаєте саме це число.
Що змінює ця конвертація
1 річ відкидається або потребує рішення
- Таймінг
час завершення реплік — джерело його не зберігає, тож у результаті він генеруватиметься, а не конвертуватиметься
Цей перелік походить із матриці можливостей для цих двох форматів, а не з конкретного завантаженого файлу. Певний файл може втратити більше, якщо використовує можливості, які формат дозволяє, а матриця не моделює.
Ця сторінка переписує LRC у JSON. LRC зберігає тільки початок репліки, а JSON зберігає всю модель субтитрів у структурованому вигляді. Час початку переходить із запису [00:12.34] у start: 1000, end: 3500. Слова й порядок реплік лишаються тими самими.
Втрати тут не косметичні: точний час завершення — у LRC його не записано, тож вихідні значення обчислено. Список складено з можливостей форматів, а не з вашого файлу, тому він однаковий до і після завантаження.
Файли обробляються по одному в браузері, без облікового запису й без завантаження на сервер; пакет можна скасувати посеред роботи.
Приклади
Типовий файл LRC, переписаний у JSON
Вхід
[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.Результат
{
"version": 1,
"title": "Sample Song",
"cues": [
{
"start": 12000,
"end": 15300,
"lines": [
"First line of the song."
]
},
{
"start": 15300,
"end": 18000,
"lines": [
"Second line.",
"Second line, translated."
]
},
{
"start": 18000,
"end": 21500,
"lines": [
""
]
},
{
"start": 21500,
"end": 23500,
"lines": [
"Final line."
]
}
]
}
У цьому вихідному файлі втрачено: точний час завершення. Решта збігається рядок у рядок.
Той самий перехід на неохайному файлі 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]Результат
{
"version": 1,
"cues": [
{
"start": 3000,
"end": 5500,
"lines": [
"Out of order."
]
},
{
"start": 5500,
"end": 7000,
"lines": [
"Leading zero omitted, one decimal."
]
},
{
"start": 7000,
"end": 9000,
"lines": [
"Second with no centiseconds.",
"Repeated chorus line."
]
},
{
"start": 9000,
"end": 12000,
"lines": [
"Repeated chorus line."
]
},
{
"start": 12000,
"end": 14000,
"lines": [
""
]
}
]
}
Справжні файли приходять із BOM, переводами рядків Windows, зайвим рядком перед часом або часом, який взагалі не читається. Ніщо з цього не валить обробку: нерозпізнане потрапляє у звіт, а не зникає мовчки.
Часті запитання
Чи можна потім повернути JSON назад у LRC?
Можна, але не без наслідків: у зворотному напрямку зникне час завершення реплік, усе оформлення, позиціювання на екрані, караоке-таймінги, точність до 10 мс. Тому JSON варто тримати як похідний файл, а оригінал LRC — як джерело; інакше кожен оберт додає нову втрату.
Чи збережеться порядок реплік із LRC у JSON?
Так. Конвертер сортує репліки за початком і пише їх у хронологічному порядку. LRC записує лише початок як [00:12.34], JSON записує час як start: 1000, end: 3500. Якщо у вихідному файлі порядок був іншим, він стане хронологічним, а не зникне.
У якому кодуванні буде збережено файл JSON після конвертації з LRC?
Файл JSON пишеться в UTF-8, а кодування вхідного LRC визначається автоматично, разом із BOM. Кирилиця, грецька чи емодзі не замінюються знаками питання; закінчення рядків у вихідному JSON — LF.
Які програми відкриють JSON після конвертації з LRC?
JSON підтримують власні скрипти й цей редактор. Для порівняння, LRC підтримують музичні плеєри й караоке-програми. Якщо цільовий формат потрібен для конкретної платформи, перевірте її підтримку до конвертації великого пакета.
Чим LRC відрізняється від JSON у цьому напрямку?
LRC зберігає тільки початок репліки, а JSON зберігає всю модель субтитрів у структурованому вигляді. Тому перетворення — це не зміна розширення, а переписування моделі. У LRC рядок на репліку з позначкою лише на початку; кінець виводять із наступної позначки. У JSON один об’єкт із масивом реплік; час, стилі й позиції задані полями. Саме з цієї різниці й постає список втрат над файловим полем.