Konwerter napisów JSON na MicroDVD
Albo wklej tekst napisów
Opcje
W jakiej liczbie klatek na sekundę liczone są czasy. Na stronach formatów tego wymaga MicroDVD, bo zapisuje czasy jako numery klatek. Na stronach poświęconych liczbie klatek jest to stawka, według której zgrany był plik — wersja, dla której powstały napisy — a drugie pole na stronie przyjmuje liczbę klatek wideo, z którym napisy będą używane. Najczęstsze wartości to 23,976, 24, 25, 29,97, 30, 50, 59,94 i 60. Pomyłka przesuwa całą oś czasu, a na stronach poświęconych liczbie klatek przesuwa ją o współczynnik, a nie o stałą wartość.
Co zmienia ta konwersja
4 rzeczy zostają pominięte albo wymagają decyzji
- Formatowanie
całe formatowanie (pogrubienie, kursywa, kolor, obrys, cień)
- Pozycjonowanie
pozycjonowanie na ekranie (każdy blok wraca do domyślnego położenia)
- Karaoke
czasy karaoke (podświetlanie sylaba po sylabie)
- Liczba klatek
ten format zapisuje czasy jako numery klatek — czasy zależą od podanej liczby klatek na sekundę
Ta lista pochodzi z macierzy możliwości tych dwóch formatów, a nie z konkretnego wczytanego pliku. Konkretny plik może stracić więcej, jeśli używa cech, które format dopuszcza, ale macierz ich nie modeluje.
Ta strona konwertuje JSON na MicroDVD. Wrzuć plik albo wklej tekst, a dostaniesz z powrotem wersję MicroDVD. Konwersja odbywa się w całości w Twojej przeglądarce — nic nie jest wysyłane i nie potrzebujesz konta.
Te dwa formaty nie przechowują tego samego, a różnica nie jest kosmetyczna: styl, pozycjonowanie, karaoke i liczba klatek na sekundę nie mają gdzie się podziać w MicroDVD. Powyższa lista wynika z tego, co potrafi wyrazić każdy z formatów, a nie z zawartości Twojego pliku — więc odpowiedź jest taka sama, zanim cokolwiek wczytasz.
Jeden plik to żaden problem, podobnie cały sezon: kolejka przetwarza je po kolei, a wyniki pobierasz razem w jednym archiwum ZIP.
Przykłady
Typowy plik JSON po konwersji do MicroDVD
Wejście
{
"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"
}
]
}
Wynik
{1}{1}25
{0}{50}Hello world.|Second line.
{63}{100}Plain line.|Styled line.
{113}{150}Roger: I am here.
W tym wyniku przepada: styl, pozycjonowanie, karaoke i liczba klatek na sekundę. Reszta zgadza się linia w linię.
Ta sama konwersja na trudniejszym pliku
Wejście
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Wynik
{1}{1}25
{0}{25}First.
{25}{50}Second.
{50}{75}Third.
To typowe uszkodzenia prawdziwych plików — mieszane końce wierszy, zbłąkane spacje, puste pola. Porównaj z uporządkowanym przykładem powyżej, żeby zobaczyć, co parser wybacza.
Częste pytania
Co dzieje się z pogrubieniem, kursywą i kolorem przy przejściu z JSON do MicroDVD?
MicroDVD nie przechowuje formatowania, więc styl znika: i znaczniki z `tags`, i wpisy z `styles`. Każda linia jest czystym tekstem, a słowa pozostają bez zmian.
Co dzieje się z pozycją na ekranie przy konwersji JSON na MicroDVD?
MicroDVD nie opisuje położenia napisu, więc obiekt `position` z JSON-a zostaje odrzucony, a każdy blok wraca do domyślnej pozycji odtwarzacza — zwykle dolnej, wyśrodkowanej.
Co dzieje się z karaoke przy przejściu z JSON do MicroDVD?
Czas znika, słowa zostają. Znaczniki karaoke w `tags` mówią, kiedy zapala się sylaba, ale MicroDVD nie ma sposobu na zapis momentu wewnątrz linii, więc znaczniki są usuwane, a sylaby stają się zwykłym tekstem.
Jaką liczbę klatek na sekundę ustawić przy konwersji JSON na MicroDVD?
MicroDVD zapisuje napis jako parę numerów klatek, np. `{103}{175}`, więc fps zamienia milisekundy z JSON-a na klatki: przy 25 fps czwarta sekunda to klatka 100. Ustaw fps filmu, do którego napisy są przeznaczone; błędna wartość prawie nie widać na początku, ale z czasem rozjeżdża się coraz bardziej.
Jak wygląda plik MicroDVD powstały z JSON-a?
Pierwsza linia to `{1}{1}25`, czyli domyślny fps; każda następna to para numerów klatek i tekst. Każdy blok JSON daje jeden wiersz, w tej samej kolejności i z tym samym tekstem.
Jak dwuwierszowy blok JSON wygląda w MicroDVD?
Oba wpisy `lines` trafiają do jednej linii MicroDVD, rozdzielone pionową kreską `|` — tak format zapisuje złamanie wiersza. Para zostaje w jednym wierszu, więc odtwarzacz pokazuje obie linie razem.
Czy MicroDVD zachowuje kolejność bloków JSON?
Tak, po sortowaniu po czasie `start`. Wiersze idą od najwcześniejszego bloku, a plik z zaburzoną kolejnością zostaje uporządkowany; to zmiana struktury, nie treści.
Czy z MicroDVD można wrócić do JSON-a?
Tak, ale osobno: konwersja MicroDVD na JSON traci liczbę klatek na sekundę, bo JSON przechowuje milisekundy, nie klatki. Lista strat jest inna niż powyżej, bo formaty przechowują co innego.
Czy MicroDVD zachowuje kodowanie pliku JSON?
Nie. Wyjście zapisujemy w UTF-8 z końcami LF i bez BOM, a kodowanie źródłowego pliku jest rozpoznawane przy wczytaniu i odnotowywane w panelu wyniku. Plik MicroDVD wychodzi już zawsze w tej samej postaci.