Конвертер JSON у MicroDVD
Або вставте текст субтитрів
Параметри
У якій частоті кадрів пораховано таймінги. На сторінках форматів це те, що потрібно MicroDVD, бо він зберігає час як номери кадрів. На сторінках частоти кадрів це частота, за якою файл синхронізували — версія, для якої робили субтитри, — а друге поле сторінки приймає частоту відео, з яким ви будете їх використовувати. 23,976, 24, 25, 29,97, 30, 50, 59,94 і 60 — найпоширеніші. Помилка зміщує весь таймлайн, а на сторінках частоти кадрів — на відношення, а не на фіксовану величину.
Що змінює ця конвертація
4 речі відкидаються або потребують рішення
- Оформлення
усе оформлення (жирний, курсив, колір, контур, тінь)
- Позиціювання
позиціювання на екрані (кожна репліка повертається в типову позицію)
- Караоке
караоке-таймінг (підсвічування за складами)
- Частота кадрів
цей формат зберігає час як номери кадрів — таймінги залежать від указаної вами частоти кадрів
Цей перелік походить із матриці можливостей для цих двох форматів, а не з конкретного завантаженого файлу. Певний файл може втратити більше, якщо використовує можливості, які формат дозволяє, а матриця не моделює.
Ця сторінка переписує JSON у MicroDVD. JSON зберігає всю модель субтитрів у структурованому вигляді, а MicroDVD рахує час у кадрах, а не в секундах. Час переходить із запису start: 1000, end: 3500 у {100}{150}. Слова й порядок реплік лишаються тими самими.
Втрати тут не косметичні: усе оформлення (жирний, курсив, колір, обведення й тінь); позиціювання на екрані — кожна репліка повертається до типового положення; караоке-таймінги — підсвічування складів зникає; незалежність від частоти кадрів — MicroDVD зберігає час номерами кадрів. Список складено з можливостей форматів, а не з вашого файлу, тому він однаковий до і після завантаження.
Конвертація виконується у вкладці браузера: жоден байт субтитрів не залишає пристрій, а весь пакет можна зупинити й забрати одним архівом.
Приклади
Типовий файл JSON, переписаний у MicroDVD
Вхід
{
"version": 1,
"title": "Fixture: typical",
"fps": 25,
"styles": {
"Default": {
"name": "Default",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#FFFFFF",
"bold": false,
"italic": false
}
},
"generator": "subtitlematrix fixtures",
"cues": [
{
"id": "1",
"start": 0,
"end": 2000,
"lines": [
"Hello world.",
"Second line."
],
"style": "Default",
"position": {
"x": 100,
"y": 200,
"align": "center"
}
},
{
"id": "2",
"start": 2500,
"end": 4000,
"lines": [
"Plain line.",
{
"text": "Styled line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
]
},
{
"id": "3",
"start": 4500,
"end": 6000,
"lines": [
"Roger: I am here."
],
"speaker": "Roger"
}
]
}
Результат
{1}{1}25
{0}{50}Hello world.|Second line.
{63}{100}Plain line.|Styled line.
{113}{150}Roger: I am here.
У цьому вихідному файлі втрачено: усе оформлення, позиціювання на екрані, караоке-таймінги, незалежність від частоти кадрів. Решта збігається рядок у рядок.
Той самий перехід на неохайному файлі JSON
Вхід
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Результат
{1}{1}25
{0}{25}First.
{25}{50}Second.
{50}{75}Third.
Справжні файли приходять із BOM, переводами рядків Windows, зайвим рядком перед часом або часом, який взагалі не читається. Ніщо з цього не валить обробку: нерозпізнане потрапляє у звіт, а не зникає мовчки.
Часті запитання
Що станеться з караоке-таймінгами JSON під час перетворення у MicroDVD?
Підсвічування складів зникне: JSON зберігає караоке-коди, а MicroDVD не має караоке-моделі. Слова лишаться в тексті, але ефект, який показував їх по черзі, не переноситься; у MicroDVD репліка показується одразу вся.
Що MicroDVD додасть поза репліками під час конвертації з JSON?
MicroDVD створить власну обгортку. У JSON поза репліками: нічого; у MicroDVD з’являться рядок оголошення частоти кадрів на початку файлу. Ці блоки не переносяться, а будуються заново з типовими значеннями. Зміст реплік від цього не залежить.
Яку частоту кадрів указати для конвертації JSON у MicroDVD?
Для перетворення JSON у MicroDVD частота потрібна, бо MicroDVD зберігає час номерами кадрів. Поле на сторінці має типове значення 25 fps; для кіно з 23,976 різниця за годину сягне приблизно 2,5 хвилини. Правильне значення беріть із джерела відео, а не з формату.
Чи можна обробити пакет файлів JSON і отримати MicroDVD?
Так, черга бере будь-яку кількість файлів JSON, переписує кожен у MicroDVD й віддає результат одним архівом. У JSON момент записано як start: 1000, end: 3500, у MicroDVD — як {100}{150}; саме це переписування виконується для кожного файлу. Робота йде у браузері, тому файли не надсилаються на сервер, а пакет можна скасувати посеред обробки — уже готові файли при цьому лишаться.
Чи можна потім повернути MicroDVD назад у JSON?
Можна, але не без наслідків: у зворотному напрямку зникне номери кадрів — час залежить від обраної частоти кадрів. Тому MicroDVD варто тримати як похідний файл, а оригінал JSON — як джерело; інакше кожен оберт додає нову втрату.