Konwerter napisów CSV na SMI
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 zamienia CSV na SMI. Upuść plik — albo wklej tekst — a dostaniesz wersję SMI. Konwersja odbywa się w całości w Twojej przeglądarce, więc nic nie jest wysyłane i konto nie jest potrzebne.
W tym kierunku nic nie ginie. Wszystko, co wyraża CSV, wyraża też SAMI, więc wynik to te same napisy w innym opakowaniu — oś czasu, podział wierszy i tekst zostają. Czasy trafiają do znaczników SYNC Start=… w milisekundach, więc dokładność jest ta sama co w CSV.
Jeden plik wystarczy, cały sezon też: kolejka przetwarza je po kolei, a wyniki pobierasz razem jako jeden ZIP.
Przykłady
Typowy plik CSV zamieniony na SMI
Wejście
start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."
Wynik
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>The quick brown fox.
<SYNC Start=3500>
<P>
<SYNC Start=4000>
<P>Jumps over, the lazy dog.
<SYNC Start=6250>
<P>
<SYNC Start=7000>
<P>Two lines here.<br>And a second one.
<SYNC Start=9000>
<P>
</BODY>
</SAMI>
Nic tu nie ginie: porównaj obie strony wiersz po wierszu.
Ta sama konwersja na niewygodnym wejściu
Wejście
id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.
Wynik
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>Hello there, friend.
<SYNC Start=4000>
<P>
<SYNC Start=5000>
<P>Second line.
<SYNC Start=7000>
<P>
<SYNC Start=10000>
<P>End before start.
<SYNC Start=10001>
<P>
<SYNC Start=12000>
<P>Unquoted comma in text, right here.
<SYNC Start=14000>
<P>
</BODY>
</SAMI>
Tak wyglądają prawdziwe tabele: nagłówek z innymi nazwami, znacznik czasu bez cudzysłowów, pusta komórka. Porównaj z czystym przykładem powyżej, żeby zobaczyć, co parser wybacza.
Częste pytania
Jak wygląda wynik, gdy CSV staje się SMI?
Jak SMI: bez numerów bloków i bez wiersza ze znacznikiem czasu — każdy blok to SYNC Start=… z tekstem w elemencie P pod nim, a zaraz po nim P z , bo SYNC zastępuje to, co było na ekranie. Każdy blok CSV staje się jednym blokiem SMI, w tej samej kolejności i z tym samym tekstem.
Czy czasy z CSV są w SMI dokładne?
Tak, co do milisekundy — a drobniej nie zapisuje ani CSV, ani SAMI. CSV pisze chwilę jako 00:00:04.126, a SMI jako Start=4126; między nimi nic nie jest zaokrąglane ani przesuwane, więc blok widoczny przez 2,9 sekundy nadal tyle trwa.
Co dzieje się z dwuwierszowym blokiem CSV w SMI?
Staje się dwoma wierszami z <br> między nimi, bo tak SAMI zapisuje twarde przejście do nowej linii. Więź zostaje — oba wiersze z komórki CSV nadal tworzą jeden blok w wyniku SMI i odtwarzacz pokazuje je razem.
Czy w CSV na SMI bloki zachowują kolejność?
Tak, a po drodze są sortowane po czasie startu — najwcześniejsze pierwsze, tak jak oczekuje każdy format na tej stronie i jak czytają je odtwarzacze. Jeśli Twój plik CSV miał bloki w innej kolejności, wynik SMI je uporządkuje; to zmiana struktury pliku, nie treści, i jest zamierzona.
Czy mogę przekonwertować SMI z powrotem na CSV?
Tak, ale to kierunek stratny: stylizacja, pozycjonowanie i sekcja STYLE z nagłówka nie mają w CSV gdzie trafić. W tę stronę nic nie ginie, więc ten koszt pojawia się dopiero przy powrocie.
Czy wynik SMI zachowa kodowanie pliku CSV?
Nie — wynik jest w UTF-8, z uniksowymi końcami wierszy i bez BOM, niezależnie od tego, czego używał plik CSV. Plik w UTF-16 albo w windowsowym kodowaniu jednobajtowym jest dekodowany przy wejściu (panel wyniku to sygnalizuje), a na wyjściu zawsze dostajesz ten sam SMI w UTF-8.