Konwerter napisów MicroDVD na TTML
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
1 rzecz zostaje pominięta albo wymaga decyzji
- Liczba klatek
źródło zapisuje czasy jako numery klatek — każdy znacznik czasu zależy 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.
TTML zapisuje napisy jako elementy `p` z atrybutami `begin` i `end`, a MicroDVD liczy klatki. Konwersja dzieli więc oba numery przez liczbę klatek na sekundę i zapisuje wynik w formacie `00:00:04.000`, który rozumie TTML.
Kolejność pierwszeństwa jest stała: pole na stronie, deklaracja w pierwszej linii pliku, domyślne 25. Pionowa kreska `|` jest złamaniem wiersza MicroDVD, więc w TTML staje się `<br/>` wewnątrz jednego elementu `p`. Numerów bloków nie ma, a porządek wyznaczają czasy.
Dokument dostaje deklarację XML i przestrzenie nazw TTML, więc jest poprawnym XML-em. Jeśli wideo nie ma 25 fps, ustaw właściwą wartość przed konwersją — cała oś czasu zależy od tego jednego pola. Konwersja działa lokalnie.
Przykłady
Typowy plik MicroDVD po konwersji na TTML
Wejście
{1}{1}25
{100}{150}The quick brown fox jumps over the lazy dog.
{200}{260}Faster than|the last one.
Wynik
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:04.000" end="00:00:06.000">The quick brown fox jumps over the lazy dog.</p>
<p begin="00:00:08.000" end="00:00:10.400">Faster than<br/>the last one.</p> </body>
</tt>
W tym wyniku ginie liczba klatek: elementy p dostały czasy zegarowe, a numery klatek nie są potrzebne.
Ta sama konwersja na nierównym pliku wejściowym
Wejście
{1}{1}23.976
{0100}{0150}Leading zeros in the frame numbers.
[INFORMATION]
{300}{340}An unrecognized line above was kept in place.
{400}{450}Trailing spaces are kept.
Wynik
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:04.000" end="00:00:06.000">Leading zeros in the frame numbers.</p>
<p begin="00:00:12.000" end="00:00:13.600">An unrecognized line above was kept in place.</p>
<p begin="00:00:16.000" end="00:00:18.000">Trailing spaces are kept. </p> </body>
</tt>
Takie uszkodzenia ma wiele prawdziwych plików: mieszane końce wierszy, zbłąkane spacje, puste pola. Porównaj to z czystym przykładem powyżej, żeby zobaczyć, co parser wybacza.
Częste pytania
Jaka liczba klatek jest potrzebna, żeby zapisać MicroDVD jako TTML?
Ta, przy której napisy powstały: pole na stronie ma pierwszeństwo, potem deklaracja z pierwszej linii pliku, a na końcu 25. TTML nie przechowuje fps, więc bez tego kroku numery klatek nie zamieniłyby się w czas. Film to zwykle 23,976 lub 24, PAL to 25.
Jak wygląda TTML powstały z pliku MicroDVD?
Zaczyna się deklaracją XML, potem jest element `tt` z przestrzeniami nazw i `body` z elementami `p`. Każdy `p` ma `begin` i `end` w milisekundach oraz tekst w środku. Numery klatek nie występują, bo zostały zamienione na czas.
Jak dwuwierszowy blok MicroDVD wychodzi w TTML?
Jako jeden element `p` z dwiema liniami rozdzielonymi `<br/>`. Kreska `|` była w MicroDVD znakiem złamania wiersza, więc w TTML zastępuje ją pusty element `<br/>`. Obie linie pozostają w jednym napisie i mają wspólny przedział czasu.
Czy kolejność bloków MicroDVD zostaje w TTML?
Tak, po uporządkowaniu rosnąco według czasu rozpoczęcia. TTML przechowuje elementy w `body`, a odtwarzacze i walidatory oczekują chronologii. Jeśli plik źródłowy miał klatki poza kolejnością, wynik zostanie uporządkowany — zmienia się struktura, nie treść.
Co ginie przy powrocie z TTML do MicroDVD?
Style, pozycjonowanie, liczba klatek i konstrukcje specyficzne dla TTML, takie jak metadane dokumentu i regiony. MicroDVD nie ma na nie miejsca, a czasy trzeba ponownie przeliczyć na klatki. Zostaje tekst i momenty wyrażone w sekundach.
Jakie kodowanie ma TTML powstały z MicroDVD?
UTF-8, końce wierszy LF, brak BOM; deklaracja XML w pliku również mówi UTF-8. Plik `.sub` w UTF-16 lub w kodowaniu jednobajtowym Windows jest dekodowany przed konwersją, a panel wyniku o tym informuje. Wynik nie dziedziczy kodowania źródła.