Przejdź do treści
SubtitleMatrix

Konwerter napisów TXT na SMI

Konwersja formatówTranskrypcja w czystym tekście
Albo wklej tekst napisów

Opcje

Używane, gdy źródło nie ma czasów końca (zwykły tekst, LRC). Oś czasu w wyniku jest tu generowana, a nie konwertowana, więc dostajesz dokładnie tę liczbę.

Co zmienia ta konwersja

1 rzecz zostaje pominięta albo wymaga decyzji

  • Czasy

    sama oś czasu — źródło nie zapisuje czasów, więc oś wyniku jest generowana, a nie konwertowana

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 TXT 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.

Te dwa formaty nie przechowują tego samego i różnica nie jest kosmetyczna: TXT nie ma ani jednego znacznika czasu. Oś czasu w wyniku nie jest więc przepisana z pliku, tylko zbudowana tutaj: pierwszy wiersz zaczyna się od zera, każdy następny tam, gdzie skończył się poprzedni. SAMI zapisuje chwile w milisekundach jako znaczniki SYNC Start=…, więc wygenerowana oś nie jest zaokrąglana.

Jeden plik wystarczy, cały sezon też: kolejka przetwarza je po kolei, a wyniki pobierasz razem jako jeden ZIP.

Przykłady

Typowy plik TXT zamieniony na SMI

Wejście

The quick brown fox jumps over the lazy dog.

Second paragraph, first line.
Second paragraph, second line.

Wynik

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=0>
<P>The quick brown fox jumps over the lazy dog.
<SYNC Start=2000>
<P>&nbsp;
<SYNC Start=2000>
<P>Second paragraph, first line.
<SYNC Start=4000>
<P>&nbsp;
<SYNC Start=4000>
<P>Second paragraph, second line.
<SYNC Start=6000>
<P>&nbsp;
</BODY>
</SAMI>

Oś czasu w wyniku nie pochodzi z pliku — została zbudowana na tej stronie. Cała reszta zgadza się wiersz po wierszu.

Ta sama konwersja na niewygodnym wejściu

Wejście


Hello world.

Second block.

Wynik

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=0>
<P>Hello world.
<SYNC Start=2000>
<P>&nbsp;
<SYNC Start=2000>
<P>Second block.
<SYNC Start=4000>
<P>&nbsp;
</BODY>
</SAMI>

Takie uszkodzenia mają prawdziwe pliki: mieszane końce wierszy, luźne spacje, puste pola. Porównaj to z czystym przykładem powyżej, żeby zobaczyć, co parser wybacza.

Częste pytania

Skąd biorą się czasy w konwersji TXT na SMI?

Są generowane, bo wejście ich nie ma. Pierwszy wiersz zaczyna się od zera, każdy następny tam, gdzie skończył się poprzedni, a pole czasu trwania decyduje o długości każdego bloku. SAMI zapisuje te chwile w milisekundach jako SYNC Start=…, więc nic nie jest zaokrąglane.

Jak wygląda wynik, gdy TXT staje się SMI?

Jak SMI: bez numerów bloków i bez wiersza ze znacznikiem czasu — każdy blok to znacznik SYNC Start=… z tekstem w elemencie P pod nim, a zaraz po nim blok P z &nbsp;, bo SYNC zastępuje to, co było na ekranie. Każdy blok TXT staje się jednym blokiem SMI, w tej samej kolejności i z tym samym tekstem.

Czy w TXT 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 TXT 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 TXT?

Tak i ten kierunek ma własną listę: konwersja SMI na TXT gubi całą oś czasu, stylizację, pozycjonowanie oraz informację o przynależności wierszy do jednego bloku, a sekcja STYLE z nagłówka nie ma gdzie trafić. Lista różni się od powyższej, bo oba formaty przechowują co innego.

Czy wynik SMI zachowa kodowanie pliku TXT?

Nie — wynik jest w UTF-8, z uniksowymi końcami wierszy i bez BOM, niezależnie od tego, czego używał plik TXT. 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.

Powiązane narzędzia