Konwerter napisów SBV na JSON
Albo wklej tekst napisów
Co zmienia ta konwersja
W tym kierunku nic nie ginie — każda cecha formatu źródłowego ma gdzie trafić w formacie docelowym.
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 SBV na JSON. Przeciągnij plik — albo wklej tekst — i otrzymasz wersję JSON. Konwersja odbywa się w całości w przeglądarce, więc nic nie jest wysyłane i nie potrzebujesz konta.
W tym kierunku nic nie ginie. Każda możliwość SBV ma odpowiednik w JSON, więc wynik to te same napisy w innym opakowaniu — oś czasu, podziały wierszy i tekst zostają. Dotyczy to każdego pliku SBV, także takiego, który wykorzystuje wszystkie możliwości formatu.
Jeden plik wystarczy, a cały sezon też: kolejka przetwarza je po kolei, a wyniki pobierasz razem jako jeden plik ZIP.
Przykłady
Typowy plik SBV po konwersji na JSON
Wejście
0:00:01.000,0:00:03.500
The quick brown fox.
0:00:04.000,0:00:06.250
Jumps over the lazy dog.
0:00:07.000,0:00:09.000
Two lines here.
And a second one.
Wynik
{
"version": 1,
"cues": [
{
"start": 1000,
"end": 3500,
"lines": [
"The quick brown fox."
]
},
{
"start": 4000,
"end": 6250,
"lines": [
"Jumps over the lazy dog."
]
},
{
"start": 7000,
"end": 9000,
"lines": [
"Two lines here.",
"And a second one."
]
}
]
}
Nic tu nie ginie: porównaj obie strony wiersz po wierszu.
Ta sama konwersja na niechlujnym wejściu
Wejście
0:00:02.000,0:00:04.000
Carriage-return line endings.
0:00:06.000,0:00:08.000
Indented timecode, no final newline.Wynik
{
"version": 1,
"cues": [
{
"start": 2000,
"end": 4000,
"lines": [
"Carriage-return line endings."
]
},
{
"start": 6000,
"end": 8000,
"lines": [
"Indented timecode, no final newline."
]
}
]
}
Takie uszkodzenia mają prawdziwe pliki — mieszane końce wierszy, zbłąkane odstępy, puste pola. Porównaj to z czystym przykładem wyżej, żeby zobaczyć, co parser wybacza.
Częste pytania
Jak wygląda wynik, gdy SBV staje się JSON?
Jak JSON: obiekt z kluczem version i tablicą cues, w której każdy blok ma start, end i lines. Nie ma klucza title, obiektu styles ani pola id przy blokach — ten format zapisuje tylko to, co SBV naprawdę przechowuje. Każdy blok SBV staje się jednym blokiem JSON, w tej samej kolejności i z tym samym tekstem.
Czy czasy z SBV są dokładne w pliku JSON?
Tak, co do milisekundy — a to najdrobniejsza jednostka w obu formatach. SBV zapisuje moment jako 0:00:04.126, a JSON zapisuje ten sam moment jako 4126; nic nie jest zaokrąglane ani przesuwane, a blok widoczny 2,9 sekundy nadal tyle trwa.
Jak blok SBV z dwóch wierszy wygląda w JSON?
Jako dwa wpisy w tablicy lines tego bloku. Para zostaje razem — oba wiersze SBV nadal należą do jednego bloku w wyniku JSON, a odtwarzacz pokazuje je jednocześnie.
Czy bloki SBV zachowują kolejność w wyniku JSON?
Tak, po drodze są sortowane według czasu rozpoczęcia — najwcześniejszy pierwszy, tak jak oczekuje parser JSON i jak czytają je odtwarzacze. Jeśli plik SBV miał bloki poza kolejnością, wynik JSON przywraca porządek; to zmiana struktury pliku, nie treści, i jest zamierzona.
Czy mogę przekonwertować JSON z powrotem na SBV?
Tak, ale to kierunek stratny: styl, pozycjonowanie i karaoke nie mają gdzie trafić w SBV. W tę stronę nic nie ginie, więc ten koszt pojawia się tylko przy powrocie.
Czy wynik JSON zachowuje kodowanie pliku SBV?
Nie — wynik jest w UTF-8, z uniksowymi końcami wierszy i bez BOM, niezależnie od tego, czego użył plik SBV. Plik w UTF-16 albo w jednobajtowym kodowaniu Windows jest dekodowany przy wczytywaniu (panel wyniku to sygnalizuje); na wyjściu zawsze powstaje JSON w UTF-8.